Add SlimRom OpenPdroid; Hide folders+rearrange for ApG
[auto-patcher.git] / patches / openpdroid / 4.2 / .aosp-slim / 20130109 / framework.patch
blob2c9babd9cd2ab37e162bfc5e621460be4955281a
1 diff -Npru stock-framework/smali/android/app/ContextImpl$10.smali opd-framework/smali/android/app/ContextImpl$10.smali
2 --- stock-framework/smali/android/app/ContextImpl$10.smali 2013-01-21 12:55:57.030001493 -0600
3 +++ opd-framework/smali/android/app/ContextImpl$10.smali 2013-01-20 23:05:44.007721366 -0600
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, "ApplicationContext"
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 opd-framework/smali/android/app/ContextImpl$22.smali
44 --- stock-framework/smali/android/app/ContextImpl$22.smali 2013-01-21 12:55:57.033999442 -0600
45 +++ opd-framework/smali/android/app/ContextImpl$22.smali 2013-01-20 23:05:44.015721264 -0600
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, "ApplicationContext"
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 opd-framework/smali/android/app/ContextImpl$31.smali
82 --- stock-framework/smali/android/app/ContextImpl$31.smali 2013-01-21 12:55:57.037997391 -0600
83 +++ opd-framework/smali/android/app/ContextImpl$31.smali 2013-01-20 23:05:44.023721164 -0600
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, "ApplicationContext"
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$37.smali opd-framework/smali/android/app/ContextImpl$37.smali
107 --- stock-framework/smali/android/app/ContextImpl$37.smali 2013-01-21 12:55:57.037997391 -0600
108 +++ opd-framework/smali/android/app/ContextImpl$37.smali 2013-01-20 23:05:44.023721164 -0600
109 @@ -38,13 +38,19 @@
111 move-result-object v1
113 - new-instance v2, Landroid/net/wifi/WifiManager;
114 + const-string v2, "ApplicationContext"
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$39.smali opd-framework/smali/android/app/ContextImpl$39.smali
132 --- stock-framework/smali/android/app/ContextImpl$39.smali 2013-01-21 12:55:57.037997391 -0600
133 +++ opd-framework/smali/android/app/ContextImpl$39.smali 2013-01-20 23:05:44.027721114 -0600
134 @@ -1,5 +1,5 @@
135 .class final Landroid/app/ContextImpl$39;
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, "ApplicationContext"
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$3.smali opd-framework/smali/android/app/ContextImpl$3.smali
202 --- stock-framework/smali/android/app/ContextImpl$3.smali 2013-01-21 12:55:57.037997391 -0600
203 +++ opd-framework/smali/android/app/ContextImpl$3.smali 2013-01-20 23:05:44.027721114 -0600
204 @@ -26,7 +26,7 @@
206 # virtual methods
207 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
208 - .registers 5
209 + .registers 6
211 const-string v2, "account"
213 @@ -38,9 +38,15 @@
215 move-result-object v1
217 - new-instance v2, Landroid/accounts/AccountManager;
218 + const-string v2, "ApplicationContext"
220 - invoke-direct {v2, p1, v1}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
221 + const-string v3, "PDroid:ContextImpl: returning PrivacyAccountManager rather than AccountManager"
223 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
225 + new-instance v2, Landroid/privacy/surrogate/PrivacyAccountManager;
227 + invoke-direct {v2, p1, v1}, Landroid/privacy/surrogate/PrivacyAccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
229 return-object v2
230 .end method
231 diff -Npru stock-framework/smali/android/app/ContextImpl$40.smali opd-framework/smali/android/app/ContextImpl$40.smali
232 --- stock-framework/smali/android/app/ContextImpl$40.smali 2013-01-21 12:55:57.037997391 -0600
233 +++ opd-framework/smali/android/app/ContextImpl$40.smali 2013-01-20 23:05:44.027721114 -0600
234 @@ -26,21 +26,37 @@
236 # virtual methods
237 .method public getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
238 - .registers 5
239 + .registers 6
241 - const-string/jumbo v2, "user"
243 - invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
244 + #getter for: Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
245 + invoke-static {p1}, Landroid/app/ContextImpl;->access$100(Landroid/app/ContextImpl;)Landroid/view/Display;
247 move-result-object v0
249 - invoke-static {v0}, Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
250 + if-nez v0, :cond_17
252 + invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
254 + move-result-object v2
256 + const-string v3, "display"
258 + invoke-virtual {v2, v3}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
260 move-result-object v1
262 - new-instance v2, Landroid/os/UserManager;
263 + check-cast v1, Landroid/hardware/display/DisplayManager;
265 + const/4 v2, 0x0
267 + invoke-virtual {v1, v2}, Landroid/hardware/display/DisplayManager;->getDisplay(I)Landroid/view/Display;
269 + move-result-object v0
271 + :cond_17
272 + new-instance v2, Landroid/view/WindowManagerImpl;
274 - invoke-direct {v2, p1, v1}, Landroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
275 + invoke-direct {v2, v0}, Landroid/view/WindowManagerImpl;-><init>(Landroid/view/Display;)V
277 return-object v2
278 .end method
279 diff -Npru stock-framework/smali/android/app/ContextImpl$41.smali opd-framework/smali/android/app/ContextImpl$41.smali
280 --- stock-framework/smali/android/app/ContextImpl$41.smali 2013-01-21 12:55:57.041995340 -0600
281 +++ opd-framework/smali/android/app/ContextImpl$41.smali 2013-01-20 23:05:44.027721114 -0600
282 @@ -25,22 +25,22 @@
285 # virtual methods
286 -.method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
287 +.method public getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
288 .registers 5
290 - invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
291 + const-string/jumbo v2, "user"
293 - move-result-object v0
294 + invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
296 - new-instance v1, Landroid/app/ProfileManager;
297 + move-result-object v0
299 - iget-object v2, p1, Landroid/app/ContextImpl;->mMainThread:Landroid/app/ActivityThread;
300 + invoke-static {v0}, Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
302 - invoke-virtual {v2}, Landroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
303 + move-result-object v1
305 - move-result-object v2
306 + new-instance v2, Landroid/os/UserManager;
308 - invoke-direct {v1, v0, v2}, Landroid/app/ProfileManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
309 + invoke-direct {v2, p1, v1}, Landroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
311 - return-object v1
312 + return-object v2
313 .end method
314 diff -Npru stock-framework/smali/android/app/ContextImpl$42.smali opd-framework/smali/android/app/ContextImpl$42.smali
315 --- stock-framework/smali/android/app/ContextImpl$42.smali 2013-01-21 12:55:57.041995340 -0600
316 +++ opd-framework/smali/android/app/ContextImpl$42.smali 2013-01-20 23:05:44.027721114 -0600
317 @@ -26,17 +26,21 @@
319 # virtual methods
320 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
321 - .registers 3
322 + .registers 5
324 - iget-object v0, p1, Landroid/app/ContextImpl;->mMainThread:Landroid/app/ActivityThread;
326 - invoke-virtual {v0}, Landroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
327 + invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
329 move-result-object v0
331 - invoke-static {p1, v0}, Landroid/net/wimax/WimaxHelper;->createWimaxService(Landroid/content/Context;Landroid/os/Handler;)Ljava/lang/Object;
332 + new-instance v1, Landroid/app/ProfileManager;
334 - move-result-object v0
335 + iget-object v2, p1, Landroid/app/ContextImpl;->mMainThread:Landroid/app/ActivityThread;
337 + invoke-virtual {v2}, Landroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
339 + move-result-object v2
341 + invoke-direct {v1, v0, v2}, Landroid/app/ProfileManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
343 - return-object v0
344 + return-object v1
345 .end method
346 diff -Npru stock-framework/smali/android/app/ContextImpl$43.smali opd-framework/smali/android/app/ContextImpl$43.smali
347 --- stock-framework/smali/android/app/ContextImpl$43.smali 1969-12-31 18:00:00.000000000 -0600
348 +++ opd-framework/smali/android/app/ContextImpl$43.smali 2013-01-20 23:05:44.027721114 -0600
349 @@ -0,0 +1,42 @@
350 +.class final Landroid/app/ContextImpl$43;
351 +.super Landroid/app/ContextImpl$ServiceFetcher;
352 +.source "ContextImpl.java"
355 +# annotations
356 +.annotation system Ldalvik/annotation/EnclosingClass;
357 + value = Landroid/app/ContextImpl;
358 +.end annotation
360 +.annotation system Ldalvik/annotation/InnerClass;
361 + accessFlags = 0x8
362 + name = null
363 +.end annotation
366 +# direct methods
367 +.method constructor <init>()V
368 + .registers 1
370 + invoke-direct {p0}, Landroid/app/ContextImpl$ServiceFetcher;-><init>()V
372 + return-void
373 +.end method
376 +# virtual methods
377 +.method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
378 + .registers 3
380 + iget-object v0, p1, Landroid/app/ContextImpl;->mMainThread:Landroid/app/ActivityThread;
382 + invoke-virtual {v0}, Landroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
384 + move-result-object v0
386 + invoke-static {p1, v0}, Landroid/net/wimax/WimaxHelper;->createWimaxService(Landroid/content/Context;Landroid/os/Handler;)Ljava/lang/Object;
388 + move-result-object v0
390 + return-object v0
391 +.end method
392 diff -Npru stock-framework/smali/android/app/ContextImpl.smali opd-framework/smali/android/app/ContextImpl.smali
393 --- stock-framework/smali/android/app/ContextImpl.smali 2013-01-21 12:55:57.061985089 -0600
394 +++ opd-framework/smali/android/app/ContextImpl.smali 2013-01-20 23:05:44.059720712 -0600
395 @@ -36,6 +36,8 @@
397 .field private static sNextPerContextServiceCacheIndex:I
399 +.field private static sOuterContext:Landroid/content/Context;
401 .field private static final sSharedPrefs:Ljava/util/HashMap;
402 .annotation system Ldalvik/annotation/Signature;
403 value = {
404 @@ -118,6 +120,10 @@
406 sput-object v0, Landroid/app/ContextImpl;->sSharedPrefs:Ljava/util/HashMap;
408 + const/4 v0, 0x0
410 + sput-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
412 new-array v0, v1, [Ljava/lang/String;
414 sput-object v0, Landroid/app/ContextImpl;->EMPTY_FILE_LIST:[Ljava/lang/String;
415 @@ -438,7 +444,7 @@
417 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
419 - const-string/jumbo v0, "window"
420 + const-string/jumbo v0, "privacy"
422 new-instance v1, Landroid/app/ContextImpl$39;
424 @@ -446,7 +452,7 @@
426 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
428 - const-string/jumbo v0, "user"
429 + const-string/jumbo v0, "window"
431 new-instance v1, Landroid/app/ContextImpl$40;
433 @@ -454,7 +460,7 @@
435 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
437 - const-string/jumbo v0, "profile"
438 + const-string/jumbo v0, "user"
440 new-instance v1, Landroid/app/ContextImpl$41;
442 @@ -462,7 +468,7 @@
444 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
446 - const-string v0, "WiMax"
447 + const-string/jumbo v0, "profile"
449 new-instance v1, Landroid/app/ContextImpl$42;
451 @@ -470,6 +476,14 @@
453 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
455 + const-string v0, "WiMax"
457 + new-instance v1, Landroid/app/ContextImpl$43;
459 + invoke-direct {v1}, Landroid/app/ContextImpl$43;-><init>()V
461 + invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
463 return-void
464 .end method
466 @@ -502,8 +516,21 @@
468 iput-object v0, p0, Landroid/app/ContextImpl;->mServiceCache:Ljava/util/ArrayList;
470 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
472 + if-eqz v0, :cond_26
474 + const-string v0, "ApplicationContext"
476 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
478 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
480 + :cond_26
481 iput-object p0, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
483 + sput-object p0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
485 return-void
486 .end method
488 @@ -564,8 +591,21 @@
490 iput-object v0, p0, Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
492 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
494 + if-eqz v0, :cond_42
496 + const-string v0, "ApplicationContext"
498 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
500 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
502 + :cond_42
503 iput-object p0, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
505 + sput-object p0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
507 return-void
508 .end method
510 @@ -1069,6 +1109,14 @@
511 throw v0
512 .end method
514 +.method static final getStaticOuterContext()Landroid/content/Context;
515 + .registers 1
517 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
519 + return-object v0
520 +.end method
522 .method private getWallpaperManager()Landroid/app/WallpaperManager;
523 .registers 2
525 @@ -5110,10 +5158,23 @@
526 .end method
528 .method final setOuterContext(Landroid/content/Context;)V
529 - .registers 2
530 + .registers 4
532 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
534 + if-eqz v0, :cond_b
536 + const-string v0, "ApplicationContext"
538 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
540 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
542 + :cond_b
543 iput-object p1, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
545 + sput-object p1, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
547 return-void
548 .end method
550 diff -Npru stock-framework/smali/android/app/Fragment.smali opd-framework/smali/android/app/Fragment.smali
551 --- stock-framework/smali/android/app/Fragment.smali 2013-01-21 12:55:57.065983039 -0600
552 +++ opd-framework/smali/android/app/Fragment.smali 2013-01-20 23:05:44.067720611 -0600
553 @@ -397,7 +397,7 @@
555 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
557 - const-string v0, "mState="
558 + const-string/jumbo v0, "mState="
560 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
562 @@ -533,7 +533,7 @@
564 iget-object v0, p0, Landroid/app/Fragment;->mFragmentManager:Landroid/app/FragmentManagerImpl;
566 - if-eqz v0, :cond_e6
567 + if-eqz v0, :cond_e7
569 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
571 @@ -545,10 +545,10 @@
573 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
575 - :cond_e6
576 + :cond_e7
577 iget-object v0, p0, Landroid/app/Fragment;->mActivity:Landroid/app/Activity;
579 - if-eqz v0, :cond_f7
580 + if-eqz v0, :cond_f8
582 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
584 @@ -560,10 +560,10 @@
586 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
588 - :cond_f7
589 + :cond_f8
590 iget-object v0, p0, Landroid/app/Fragment;->mParentFragment:Landroid/app/Fragment;
592 - if-eqz v0, :cond_108
593 + if-eqz v0, :cond_109
595 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
597 @@ -575,10 +575,10 @@
599 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
601 - :cond_108
602 + :cond_109
603 iget-object v0, p0, Landroid/app/Fragment;->mArguments:Landroid/os/Bundle;
605 - if-eqz v0, :cond_119
606 + if-eqz v0, :cond_11a
608 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
610 @@ -590,10 +590,10 @@
612 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
614 - :cond_119
615 + :cond_11a
616 iget-object v0, p0, Landroid/app/Fragment;->mSavedFragmentState:Landroid/os/Bundle;
618 - if-eqz v0, :cond_12a
619 + if-eqz v0, :cond_12b
621 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
623 @@ -605,10 +605,10 @@
625 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
627 - :cond_12a
628 + :cond_12b
629 iget-object v0, p0, Landroid/app/Fragment;->mSavedViewState:Landroid/util/SparseArray;
631 - if-eqz v0, :cond_13b
632 + if-eqz v0, :cond_13c
634 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
636 @@ -620,14 +620,14 @@
638 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
640 - :cond_13b
641 + :cond_13c
642 iget-object v0, p0, Landroid/app/Fragment;->mTarget:Landroid/app/Fragment;
644 - if-eqz v0, :cond_156
645 + if-eqz v0, :cond_158
647 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
649 - const-string v0, "mTarget="
650 + const-string/jumbo v0, "mTarget="
652 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
654 @@ -643,10 +643,10 @@
656 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(I)V
658 - :cond_156
659 + :cond_158
660 iget v0, p0, Landroid/app/Fragment;->mNextAnim:I
662 - if-eqz v0, :cond_167
663 + if-eqz v0, :cond_169
665 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
667 @@ -658,10 +658,10 @@
669 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(I)V
671 - :cond_167
672 + :cond_169
673 iget-object v0, p0, Landroid/app/Fragment;->mContainer:Landroid/view/ViewGroup;
675 - if-eqz v0, :cond_178
676 + if-eqz v0, :cond_17a
678 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
680 @@ -673,10 +673,10 @@
682 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
684 - :cond_178
685 + :cond_17a
686 iget-object v0, p0, Landroid/app/Fragment;->mView:Landroid/view/View;
688 - if-eqz v0, :cond_18a
689 + if-eqz v0, :cond_18c
691 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
693 @@ -688,10 +688,10 @@
695 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
697 - :cond_18a
698 + :cond_18c
699 iget-object v0, p0, Landroid/app/Fragment;->mAnimatingAway:Landroid/animation/Animator;
701 - if-eqz v0, :cond_1a8
702 + if-eqz v0, :cond_1ab
704 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
706 @@ -705,7 +705,7 @@
708 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
710 - const-string v0, "mStateAfterAnimating="
711 + const-string/jumbo v0, "mStateAfterAnimating="
713 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
715 @@ -713,10 +713,10 @@
717 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(I)V
719 - :cond_1a8
720 + :cond_1ab
721 iget-object v0, p0, Landroid/app/Fragment;->mLoaderManager:Landroid/app/LoaderManagerImpl;
723 - if-eqz v0, :cond_1cc
724 + if-eqz v0, :cond_1cf
726 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
728 @@ -746,10 +746,10 @@
730 invoke-virtual {v0, v1, p2, p3, p4}, Landroid/app/LoaderManagerImpl;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
732 - :cond_1cc
733 + :cond_1cf
734 iget-object v0, p0, Landroid/app/Fragment;->mChildFragmentManager:Landroid/app/FragmentManagerImpl;
736 - if-eqz v0, :cond_209
737 + if-eqz v0, :cond_20c
739 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
741 @@ -803,7 +803,7 @@
743 invoke-virtual {v0, v1, p2, p3, p4}, Landroid/app/FragmentManagerImpl;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
745 - :cond_209
746 + :cond_20c
747 return-void
748 .end method
750 diff -Npru stock-framework/smali/android/app/Instrumentation$1.smali opd-framework/smali/android/app/Instrumentation$1.smali
751 --- stock-framework/smali/android/app/Instrumentation$1.smali 2013-01-21 12:55:57.205911278 -0600
752 +++ opd-framework/smali/android/app/Instrumentation$1.smali 2013-01-20 23:05:44.287717845 -0600
753 @@ -1,14 +1,96 @@
754 -.class synthetic Landroid/app/Instrumentation$1;
755 +.class Landroid/app/Instrumentation$1;
756 .super Ljava/lang/Object;
757 .source "Instrumentation.java"
759 +# interfaces
760 +.implements Ljava/lang/Runnable;
763 # annotations
764 -.annotation system Ldalvik/annotation/EnclosingClass;
765 - value = Landroid/app/Instrumentation;
766 +.annotation system Ldalvik/annotation/EnclosingMethod;
767 + 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;
768 .end annotation
770 .annotation system Ldalvik/annotation/InnerClass;
771 - accessFlags = 0x1008
772 + accessFlags = 0x0
773 name = null
774 .end annotation
777 +# instance fields
778 +.field final synthetic this$0:Landroid/app/Instrumentation;
780 +.field final synthetic val$tmp:Landroid/content/Context;
783 +# direct methods
784 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
785 + .registers 3
787 + iput-object p1, p0, Landroid/app/Instrumentation$1;->this$0:Landroid/app/Instrumentation;
789 + iput-object p2, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
791 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
793 + return-void
794 +.end method
797 +# virtual methods
798 +.method public run()V
799 + .registers 5
801 + const-wide/16 v2, 0x3e8
803 + :try_start_2
804 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
805 + :try_end_5
806 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
808 + :goto_5
809 + new-instance v1, Landroid/content/Intent;
811 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
813 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
815 + new-instance v0, Landroid/os/Bundle;
817 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
819 + const-string/jumbo v2, "packageName"
821 + iget-object v3, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
823 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
825 + move-result-object v3
827 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
829 + const-string/jumbo v2, "phoneState"
831 + const/4 v3, 0x0
833 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
835 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
837 + iget-object v2, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
839 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
841 + const-string v2, "PrivacyContext"
843 + const-string/jumbo v3, "sent privacy intent"
845 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
847 + return-void
849 + :catch_35
850 + move-exception v2
852 + goto :goto_5
853 +.end method
854 diff -Npru stock-framework/smali/android/app/Instrumentation$2.smali opd-framework/smali/android/app/Instrumentation$2.smali
855 --- stock-framework/smali/android/app/Instrumentation$2.smali 1969-12-31 18:00:00.000000000 -0600
856 +++ opd-framework/smali/android/app/Instrumentation$2.smali 2013-01-20 23:05:44.287717845 -0600
857 @@ -0,0 +1,96 @@
858 +.class Landroid/app/Instrumentation$2;
859 +.super Ljava/lang/Object;
860 +.source "Instrumentation.java"
862 +# interfaces
863 +.implements Ljava/lang/Runnable;
866 +# annotations
867 +.annotation system Ldalvik/annotation/EnclosingMethod;
868 + 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
869 +.end annotation
871 +.annotation system Ldalvik/annotation/InnerClass;
872 + accessFlags = 0x0
873 + name = null
874 +.end annotation
877 +# instance fields
878 +.field final synthetic this$0:Landroid/app/Instrumentation;
880 +.field final synthetic val$tmp:Landroid/content/Context;
883 +# direct methods
884 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
885 + .registers 3
887 + iput-object p1, p0, Landroid/app/Instrumentation$2;->this$0:Landroid/app/Instrumentation;
889 + iput-object p2, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
891 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
893 + return-void
894 +.end method
897 +# virtual methods
898 +.method public run()V
899 + .registers 5
901 + const-wide/16 v2, 0x3e8
903 + :try_start_2
904 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
905 + :try_end_5
906 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
908 + :goto_5
909 + new-instance v1, Landroid/content/Intent;
911 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
913 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
915 + new-instance v0, Landroid/os/Bundle;
917 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
919 + const-string/jumbo v2, "packageName"
921 + iget-object v3, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
923 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
925 + move-result-object v3
927 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
929 + const-string/jumbo v2, "phoneState"
931 + const/4 v3, 0x0
933 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
935 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
937 + iget-object v2, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
939 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
941 + const-string v2, "PrivacyContext"
943 + const-string/jumbo v3, "sent privacy intent"
945 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
947 + return-void
949 + :catch_35
950 + move-exception v2
952 + goto :goto_5
953 +.end method
954 diff -Npru stock-framework/smali/android/app/Instrumentation$3.smali opd-framework/smali/android/app/Instrumentation$3.smali
955 --- stock-framework/smali/android/app/Instrumentation$3.smali 1969-12-31 18:00:00.000000000 -0600
956 +++ opd-framework/smali/android/app/Instrumentation$3.smali 2013-01-20 23:05:44.287717845 -0600
957 @@ -0,0 +1,96 @@
958 +.class Landroid/app/Instrumentation$3;
959 +.super Ljava/lang/Object;
960 +.source "Instrumentation.java"
962 +# interfaces
963 +.implements Ljava/lang/Runnable;
966 +# annotations
967 +.annotation system Ldalvik/annotation/EnclosingMethod;
968 + 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;
969 +.end annotation
971 +.annotation system Ldalvik/annotation/InnerClass;
972 + accessFlags = 0x0
973 + name = null
974 +.end annotation
977 +# instance fields
978 +.field final synthetic this$0:Landroid/app/Instrumentation;
980 +.field final synthetic val$tmp:Landroid/content/Context;
983 +# direct methods
984 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
985 + .registers 3
987 + iput-object p1, p0, Landroid/app/Instrumentation$3;->this$0:Landroid/app/Instrumentation;
989 + iput-object p2, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
991 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
993 + return-void
994 +.end method
997 +# virtual methods
998 +.method public run()V
999 + .registers 5
1001 + const-wide/16 v2, 0x3e8
1003 + :try_start_2
1004 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1005 + :try_end_5
1006 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1008 + :goto_5
1009 + new-instance v1, Landroid/content/Intent;
1011 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1013 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1015 + new-instance v0, Landroid/os/Bundle;
1017 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1019 + const-string/jumbo v2, "packageName"
1021 + iget-object v3, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
1023 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1025 + move-result-object v3
1027 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1029 + const-string/jumbo v2, "phoneState"
1031 + const/4 v3, 0x0
1033 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1035 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1037 + iget-object v2, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
1039 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1041 + const-string v2, "PrivacyContext"
1043 + const-string/jumbo v3, "sent privacy intent"
1045 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1047 + return-void
1049 + :catch_35
1050 + move-exception v2
1052 + goto :goto_5
1053 +.end method
1054 diff -Npru stock-framework/smali/android/app/Instrumentation$4.smali opd-framework/smali/android/app/Instrumentation$4.smali
1055 --- stock-framework/smali/android/app/Instrumentation$4.smali 1969-12-31 18:00:00.000000000 -0600
1056 +++ opd-framework/smali/android/app/Instrumentation$4.smali 2013-01-20 23:05:44.287717845 -0600
1057 @@ -0,0 +1,96 @@
1058 +.class Landroid/app/Instrumentation$4;
1059 +.super Ljava/lang/Object;
1060 +.source "Instrumentation.java"
1062 +# interfaces
1063 +.implements Ljava/lang/Runnable;
1066 +# annotations
1067 +.annotation system Ldalvik/annotation/EnclosingMethod;
1068 + value = Landroid/app/Instrumentation;->execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/Instrumentation$ActivityResult;
1069 +.end annotation
1071 +.annotation system Ldalvik/annotation/InnerClass;
1072 + accessFlags = 0x0
1073 + name = null
1074 +.end annotation
1077 +# instance fields
1078 +.field final synthetic this$0:Landroid/app/Instrumentation;
1080 +.field final synthetic val$tmp:Landroid/content/Context;
1083 +# direct methods
1084 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
1085 + .registers 3
1087 + iput-object p1, p0, Landroid/app/Instrumentation$4;->this$0:Landroid/app/Instrumentation;
1089 + iput-object p2, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1091 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
1093 + return-void
1094 +.end method
1097 +# virtual methods
1098 +.method public run()V
1099 + .registers 5
1101 + const-wide/16 v2, 0x3e8
1103 + :try_start_2
1104 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1105 + :try_end_5
1106 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1108 + :goto_5
1109 + new-instance v1, Landroid/content/Intent;
1111 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1113 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1115 + new-instance v0, Landroid/os/Bundle;
1117 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1119 + const-string/jumbo v2, "packageName"
1121 + iget-object v3, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1123 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1125 + move-result-object v3
1127 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1129 + const-string/jumbo v2, "phoneState"
1131 + const/4 v3, 0x0
1133 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1135 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1137 + iget-object v2, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1139 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1141 + const-string v2, "PrivacyContext"
1143 + const-string/jumbo v3, "sent privacy intent"
1145 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1147 + return-void
1149 + :catch_35
1150 + move-exception v2
1152 + goto :goto_5
1153 +.end method
1154 diff -Npru stock-framework/smali/android/app/Instrumentation.smali opd-framework/smali/android/app/Instrumentation.smali
1155 --- stock-framework/smali/android/app/Instrumentation.smali 2013-01-21 12:55:57.205911279 -0600
1156 +++ opd-framework/smali/android/app/Instrumentation.smali 2013-01-20 23:05:44.303717645 -0600
1157 @@ -6,7 +6,6 @@
1158 # annotations
1159 .annotation system Ldalvik/annotation/MemberClasses;
1160 value = {
1161 - Landroid/app/Instrumentation$1;,
1162 Landroid/app/Instrumentation$Idler;,
1163 Landroid/app/Instrumentation$ActivityGoing;,
1164 Landroid/app/Instrumentation$ActivityWaiter;,
1165 @@ -53,6 +52,8 @@
1167 .field private mPerformanceCollector:Landroid/os/PerformanceCollector;
1169 +.field private mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1171 .field private mRunner:Ljava/lang/Thread;
1173 .field private final mSync:Ljava/lang/Object;
1174 @@ -891,176 +892,131 @@
1175 .end method
1177 .method public execStartActivitiesAsUser(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;[Landroid/content/Intent;Landroid/os/Bundle;I)V
1178 - .registers 20
1180 - move-object v2, p2
1182 - check-cast v2, Landroid/app/IApplicationThread;
1184 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1186 - if-eqz v1, :cond_37
1188 - iget-object v3, p0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1190 - monitor-enter v3
1192 - :try_start_a
1193 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1195 - invoke-interface {v1}, Ljava/util/List;->size()I
1197 - move-result v8
1199 - const/4 v10, 0x0
1201 - :goto_11
1202 - if-ge v10, v8, :cond_36
1203 + .registers 31
1205 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1207 - invoke-interface {v1, v10}, Ljava/util/List;->get(I)Ljava/lang/Object;
1209 - move-result-object v9
1211 - check-cast v9, Landroid/app/Instrumentation$ActivityMonitor;
1213 - const/4 v1, 0x0
1214 + move-object/from16 v3, p2
1216 - const/4 v5, 0x0
1217 + check-cast v3, Landroid/app/IApplicationThread;
1219 - aget-object v5, p5, v5
1220 + const-string v2, "Instrumentation"
1222 - invoke-virtual {v9, p1, v1, v5}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1223 + new-instance v4, Ljava/lang/StringBuilder;
1225 - move-result v1
1226 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1228 - if-eqz v1, :cond_33
1229 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: execStartActivitiesAsUser for "
1231 - iget v1, v9, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1232 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1234 - add-int/lit8 v1, v1, 0x1
1235 + move-result-object v4
1237 - iput v1, v9, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1238 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1240 - invoke-virtual {v9}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1241 + move-result-object v6
1243 - move-result v1
1244 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1246 - if-eqz v1, :cond_36
1247 + move-result-object v4
1249 - monitor-exit v3
1250 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1252 - :goto_32
1253 - return-void
1254 + move-result-object v4
1256 - :cond_33
1257 - add-int/lit8 v10, v10, 0x1
1258 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1260 - goto :goto_11
1261 + if-eqz p5, :cond_6f
1263 - :cond_36
1264 - monitor-exit v3
1265 - :try_end_37
1266 - .catchall {:try_start_a .. :try_end_37} :catchall_57
1267 + const/4 v13, 0x0
1269 - :cond_37
1270 - :try_start_37
1271 - move-object/from16 v0, p5
1272 + move-object/from16 v12, p5
1274 - array-length v1, v0
1275 + array-length v0, v12
1277 - new-array v4, v1, [Ljava/lang/String;
1278 + move/from16 v19, v0
1280 - const/4 v10, 0x0
1281 + const/16 v17, 0x0
1283 - :goto_3d
1284 - move-object/from16 v0, p5
1285 + :goto_2a
1286 + move/from16 v0, v17
1288 - array-length v1, v0
1289 + move/from16 v1, v19
1291 - if-ge v10, v1, :cond_5a
1292 + if-ge v0, v1, :cond_51
1294 - aget-object v1, p5, v10
1295 + aget-object v18, v12, v17
1297 - const/4 v3, 0x0
1298 + :try_start_32
1299 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1301 - invoke-virtual {v1, v3}, Landroid/content/Intent;->setAllowFds(Z)V
1302 + move-result-object v2
1304 - aget-object v1, p5, v10
1305 + if-eqz v2, :cond_cc
1307 - invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1308 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1310 - move-result-object v3
1311 + move-result-object v2
1313 - invoke-virtual {v1, v3}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1314 + const-string v4, "android.intent.action.CALL"
1316 - move-result-object v1
1317 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1319 - aput-object v1, v4, v10
1320 - :try_end_54
1321 - .catch Landroid/os/RemoteException; {:try_start_37 .. :try_end_54} :catch_70
1322 + move-result v2
1324 - add-int/lit8 v10, v10, 0x1
1325 + if-nez v2, :cond_50
1327 - goto :goto_3d
1328 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1330 - :catchall_57
1331 - move-exception v1
1332 + move-result-object v2
1334 - :try_start_58
1335 - monitor-exit v3
1336 - :try_end_59
1337 - .catchall {:try_start_58 .. :try_end_59} :catchall_57
1338 + const-string v4, "android.intent.action.DIAL"
1340 - throw v1
1341 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1342 + :try_end_4d
1343 + .catch Ljava/lang/Exception; {:try_start_32 .. :try_end_4d} :catch_ae
1345 - :cond_5a
1346 - :try_start_5a
1347 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1348 + move-result v2
1350 - move-result-object v1
1351 + if-eqz v2, :cond_cc
1353 - move-object/from16 v3, p5
1354 + :cond_50
1355 + const/4 v13, 0x1
1357 - move-object v5, p3
1358 + :cond_51
1359 + if-nez v13, :cond_d0
1361 - move-object/from16 v6, p6
1362 + const-string v2, "Instrumentation"
1364 - move/from16 v7, p7
1365 + new-instance v4, Ljava/lang/StringBuilder;
1367 - invoke-interface/range {v1 .. v7}, Landroid/app/IActivityManager;->startActivities(Landroid/app/IApplicationThread;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
1368 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1370 - move-result v11
1371 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: No provided intents triggered checking for "
1373 - const/4 v1, 0x0
1374 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1376 - aget-object v1, p5, v1
1377 + move-result-object v4
1379 - invoke-static {v11, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1380 - :try_end_6f
1381 - .catch Landroid/os/RemoteException; {:try_start_5a .. :try_end_6f} :catch_70
1382 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1384 - goto :goto_32
1385 + move-result-object v6
1387 - :catch_70
1388 - move-exception v1
1389 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1391 - goto :goto_32
1392 -.end method
1393 + move-result-object v4
1395 -.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;
1396 - .registers 25
1397 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1399 - move-object/from16 v3, p2
1400 + move-result-object v4
1402 - check-cast v3, Landroid/app/IApplicationThread;
1403 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1405 + :cond_6f
1406 + :goto_6f
1407 move-object/from16 v0, p0
1409 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1411 - if-eqz v2, :cond_49
1412 + if-eqz v2, :cond_283
1414 move-object/from16 v0, p0
1416 @@ -1068,524 +1024,2595 @@
1418 monitor-enter v4
1420 - :try_start_f
1421 + :try_start_7a
1422 move-object/from16 v0, p0
1424 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1426 invoke-interface {v2}, Ljava/util/List;->size()I
1428 - move-result v13
1429 + move-result v9
1431 + const/16 v16, 0x0
1433 - const/4 v15, 0x0
1434 + :goto_84
1435 + move/from16 v0, v16
1437 - :goto_18
1438 - if-ge v15, v13, :cond_48
1439 + if-ge v0, v9, :cond_282
1441 move-object/from16 v0, p0
1443 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1445 - invoke-interface {v2, v15}, Ljava/util/List;->get(I)Ljava/lang/Object;
1446 + move/from16 v0, v16
1448 + invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
1450 - move-result-object v14
1451 + move-result-object v11
1453 - check-cast v14, Landroid/app/Instrumentation$ActivityMonitor;
1454 + check-cast v11, Landroid/app/Instrumentation$ActivityMonitor;
1456 const/4 v2, 0x0
1458 - move-object/from16 v0, p1
1459 + const/4 v6, 0x0
1461 - move-object/from16 v1, p5
1462 + aget-object v6, p5, v6
1464 + move-object/from16 v0, p1
1466 - invoke-virtual {v14, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1467 + invoke-virtual {v11, v0, v2, v6}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1469 move-result v2
1471 - if-eqz v2, :cond_45
1472 + if-eqz v2, :cond_27e
1474 - iget v2, v14, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1475 + iget v2, v11, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1477 add-int/lit8 v2, v2, 0x1
1479 - iput v2, v14, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1480 + iput v2, v11, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1482 - invoke-virtual {v14}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1483 + invoke-virtual {v11}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1485 move-result v2
1487 - if-eqz v2, :cond_48
1488 + if-eqz v2, :cond_282
1490 - if-ltz p6, :cond_43
1492 - invoke-virtual {v14}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
1494 - move-result-object v2
1496 - :goto_41
1497 monitor-exit v4
1498 + :try_end_ad
1499 + .catchall {:try_start_7a .. :try_end_ad} :catchall_2a6
1501 - :goto_42
1502 - return-object v2
1503 + :goto_ad
1504 + return-void
1506 - :cond_43
1507 - const/4 v2, 0x0
1508 + :catch_ae
1509 + move-exception v14
1511 - goto :goto_41
1512 + const-string v2, "Instrumentation"
1514 - :cond_45
1515 - add-int/lit8 v15, v15, 0x1
1516 + new-instance v4, Ljava/lang/StringBuilder;
1518 - goto :goto_18
1519 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1521 - :cond_48
1522 - monitor-exit v4
1523 - :try_end_49
1524 - .catchall {:try_start_f .. :try_end_49} :catchall_7e
1525 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Exception occurred when checking intents for "
1527 - :cond_49
1528 - const/4 v2, 0x0
1529 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1531 - :try_start_4a
1532 - move-object/from16 v0, p5
1533 + move-result-object v4
1535 - invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
1536 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1538 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1539 + move-result-object v6
1541 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1542 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1544 - move-result-object v2
1545 + move-result-object v4
1547 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1548 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1550 move-result-object v4
1552 - move-object/from16 v0, p5
1553 + invoke-static {v2, v4, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
1555 - invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1556 + const/4 v13, 0x1
1558 - move-result-object v5
1559 + :cond_cc
1560 + add-int/lit8 v17, v17, 0x1
1562 - if-eqz p4, :cond_81
1563 + goto/16 :goto_2a
1565 - move-object/from16 v0, p4
1566 + :cond_d0
1567 + const-string v2, "Instrumentation"
1569 - iget-object v7, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
1570 + new-instance v4, Ljava/lang/StringBuilder;
1572 - :goto_66
1573 - const/4 v9, 0x0
1574 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1576 - const/4 v10, 0x0
1577 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: One or more intents triggered checking for "
1579 - const/4 v11, 0x0
1580 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1582 - move-object/from16 v4, p5
1583 + move-result-object v4
1585 - move-object/from16 v6, p3
1586 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1588 - move/from16 v8, p6
1589 + move-result-object v6
1591 - move-object/from16 v12, p7
1592 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1594 - invoke-interface/range {v2 .. v12}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
1595 + move-result-object v4
1597 - move-result v16
1598 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1600 - move/from16 v0, v16
1601 + move-result-object v4
1603 - move-object/from16 v1, p5
1604 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1606 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1607 - :try_end_7c
1608 - .catch Landroid/os/RemoteException; {:try_start_4a .. :try_end_7c} :catch_83
1609 + move-object/from16 v0, p0
1611 - :goto_7c
1612 - const/4 v2, 0x0
1613 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1615 - goto :goto_42
1616 + if-eqz v2, :cond_fc
1618 - :catchall_7e
1619 - move-exception v2
1620 + move-object/from16 v0, p0
1622 - :try_start_7f
1623 - monitor-exit v4
1624 - :try_end_80
1625 - .catchall {:try_start_7f .. :try_end_80} :catchall_7e
1626 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1628 - throw v2
1629 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
1631 - :cond_81
1632 - const/4 v7, 0x0
1633 + move-result v2
1635 - goto :goto_66
1636 + if-nez v2, :cond_18f
1638 - :catch_83
1639 - move-exception v2
1640 + :cond_fc
1641 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
1643 - goto :goto_7c
1644 -.end method
1645 + const-string/jumbo v4, "privacy"
1647 -.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;
1648 - .registers 27
1649 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
1651 - move-object/from16 v3, p2
1652 + move-result-object v4
1654 - check-cast v3, Landroid/app/IApplicationThread;
1655 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
1657 - move-object/from16 v0, p0
1658 + move-result-object v4
1660 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1661 + move-object/from16 v0, p1
1663 - if-eqz v2, :cond_4e
1664 + invoke-direct {v2, v0, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
1666 move-object/from16 v0, p0
1668 - iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1670 - monitor-enter v4
1671 + iput-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1673 - :try_start_f
1674 move-object/from16 v0, p0
1676 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1677 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1679 - invoke-interface {v2}, Ljava/util/List;->size()I
1680 + if-eqz v2, :cond_187
1682 - move-result v14
1683 + const-string v2, "Instrumentation"
1685 - const/16 v16, 0x0
1686 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Obtained privacy service"
1688 - :goto_19
1689 - move/from16 v0, v16
1690 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1692 - if-ge v0, v14, :cond_4d
1693 + :goto_11f
1694 + const/4 v10, 0x0
1696 move-object/from16 v0, p0
1698 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1699 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1701 - move/from16 v0, v16
1702 + if-eqz v2, :cond_130
1704 - invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
1705 + move-object/from16 v0, p0
1707 - move-result-object v15
1708 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1710 - check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
1711 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
1713 - const/4 v2, 0x0
1714 + move-result v2
1716 - move-object/from16 v0, p1
1717 + if-nez v2, :cond_197
1719 - move-object/from16 v1, p5
1720 + :cond_130
1721 + const-string v2, "Instrumentation"
1723 - invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1724 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Privacy service not available - assuming permission denied"
1726 - move-result v2
1727 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1729 - if-eqz v2, :cond_4a
1730 + const/4 v10, 0x0
1732 - iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1733 + move-object/from16 v0, p0
1735 - add-int/lit8 v2, v2, 0x1
1736 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1738 - iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1739 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1741 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1742 + move-result-object v4
1744 - move-result v2
1745 + const/4 v6, 0x1
1747 - if-eqz v2, :cond_4d
1748 + const-string/jumbo v7, "phoneCall"
1750 - if-ltz p6, :cond_48
1751 + const/4 v8, 0x0
1753 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
1754 + invoke-virtual {v2, v4, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
1756 - move-result-object v2
1757 + :goto_148
1758 + if-nez v10, :cond_6f
1760 - :goto_46
1761 - monitor-exit v4
1762 + new-instance v15, Ljava/util/ArrayList;
1764 - :goto_47
1765 - return-object v2
1766 + move-object/from16 v0, p5
1768 - :cond_48
1769 - const/4 v2, 0x0
1770 + array-length v2, v0
1772 - goto :goto_46
1773 + invoke-direct {v15, v2}, Ljava/util/ArrayList;-><init>(I)V
1775 - :cond_4a
1776 - add-int/lit8 v16, v16, 0x1
1777 + move-object/from16 v12, p5
1779 - goto :goto_19
1780 + array-length v0, v12
1782 - :cond_4d
1783 - monitor-exit v4
1784 - :try_end_4e
1785 - .catchall {:try_start_f .. :try_end_4e} :catchall_87
1786 + move/from16 v19, v0
1788 - :cond_4e
1789 - const/4 v2, 0x0
1790 + const/16 v17, 0x0
1792 - :try_start_4f
1793 - move-object/from16 v0, p5
1794 + :goto_159
1795 + move/from16 v0, v17
1797 - invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
1798 + move/from16 v1, v19
1800 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1801 + if-ge v0, v1, :cond_25d
1803 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1804 + aget-object v18, v12, v17
1806 + :try_start_161
1807 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1809 move-result-object v2
1811 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1812 + if-eqz v2, :cond_17f
1814 - move-result-object v4
1815 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1817 - move-object/from16 v0, p5
1818 + move-result-object v2
1820 - invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1821 + const-string v4, "android.intent.action.CALL"
1823 - move-result-object v5
1824 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1826 - if-eqz p4, :cond_8a
1827 + move-result v2
1829 - move-object/from16 v0, p4
1830 + if-nez v2, :cond_184
1832 - iget-object v7, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
1833 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1835 - :goto_6b
1836 - const/4 v9, 0x0
1837 + move-result-object v2
1839 - const/4 v10, 0x0
1840 + const-string v4, "android.intent.action.DIAL"
1842 - const/4 v11, 0x0
1843 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1845 - invoke-virtual/range {p8 .. p8}, Landroid/os/UserHandle;->getIdentifier()I
1846 + move-result v2
1848 - move-result v13
1849 + if-nez v2, :cond_184
1851 - move-object/from16 v4, p5
1852 + :cond_17f
1853 + move-object/from16 v0, v18
1855 - move-object/from16 v6, p3
1856 + invoke-interface {v15, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
1857 + :try_end_184
1858 + .catch Ljava/lang/Exception; {:try_start_161 .. :try_end_184} :catch_23e
1860 - move/from16 v8, p6
1861 + :cond_184
1862 + :goto_184
1863 + add-int/lit8 v17, v17, 0x1
1865 - move-object/from16 v12, p7
1866 + goto :goto_159
1868 - invoke-interface/range {v2 .. v13}, Landroid/app/IActivityManager;->startActivityAsUser(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;I)I
1869 + :cond_187
1870 + const-string v2, "Instrumentation"
1872 - move-result v17
1873 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Privacy service not obtained"
1875 - move/from16 v0, v17
1876 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1878 - move-object/from16 v1, p5
1879 + goto :goto_11f
1881 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1882 - :try_end_85
1883 - .catch Landroid/os/RemoteException; {:try_start_4f .. :try_end_85} :catch_8c
1884 + :cond_18f
1885 + const-string v2, "Instrumentation"
1887 - :goto_85
1888 - const/4 v2, 0x0
1889 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Already had privacy service"
1891 - goto :goto_47
1892 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1894 - :catchall_87
1895 - move-exception v2
1896 + goto :goto_11f
1898 - :try_start_88
1899 - monitor-exit v4
1900 - :try_end_89
1901 - .catchall {:try_start_88 .. :try_end_89} :catchall_87
1902 + :cond_197
1903 + move-object/from16 v0, p0
1905 - throw v2
1906 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1908 - :cond_8a
1909 - const/4 v7, 0x0
1910 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1912 - goto :goto_6b
1913 + move-result-object v4
1915 - :catch_8c
1916 - move-exception v2
1917 + invoke-virtual {v2, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
1919 - goto :goto_85
1920 -.end method
1921 + move-result-object v20
1923 -.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;
1924 - .registers 25
1925 + if-nez v20, :cond_1d4
1927 - move-object/from16 v3, p2
1928 + const-string v2, "Instrumentation"
1930 - check-cast v3, Landroid/app/IApplicationThread;
1931 + new-instance v4, Ljava/lang/StringBuilder;
1933 - move-object/from16 v0, p0
1934 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1936 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1937 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents allowed: No settings for package: "
1939 - if-eqz v2, :cond_49
1940 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1942 - move-object/from16 v0, p0
1943 + move-result-object v4
1945 - iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1946 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1948 - monitor-enter v4
1949 + move-result-object v6
1951 - :try_start_f
1952 - move-object/from16 v0, p0
1953 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1955 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1956 + move-result-object v4
1958 - invoke-interface {v2}, Ljava/util/List;->size()I
1959 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1961 - move-result v13
1962 + move-result-object v4
1964 - const/4 v15, 0x0
1965 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1967 - :goto_18
1968 - if-ge v15, v13, :cond_48
1969 + const/4 v10, 0x1
1971 move-object/from16 v0, p0
1973 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1974 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1976 - invoke-interface {v2, v15}, Ljava/util/List;->get(I)Ljava/lang/Object;
1977 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1979 - move-result-object v14
1980 + move-result-object v4
1982 - check-cast v14, Landroid/app/Instrumentation$ActivityMonitor;
1983 + const/4 v6, 0x1
1985 - const/4 v2, 0x0
1986 + const-string/jumbo v7, "phoneCall"
1988 - move-object/from16 v0, p1
1989 + const/4 v8, 0x0
1991 - move-object/from16 v1, p5
1992 + invoke-virtual {v2, v4, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
1994 - invoke-virtual {v14, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1995 + goto/16 :goto_148
1997 + :cond_1d4
1998 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2000 move-result v2
2002 - if-eqz v2, :cond_45
2003 + if-nez v2, :cond_20c
2005 - iget v2, v14, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2006 + const-string v2, "Instrumentation"
2008 - add-int/lit8 v2, v2, 0x1
2009 + new-instance v4, Ljava/lang/StringBuilder;
2011 - iput v2, v14, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2012 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2014 - invoke-virtual {v14}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
2015 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents allowed: Settings permit "
2017 - move-result v2
2018 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2020 - if-eqz v2, :cond_48
2021 + move-result-object v4
2023 - if-ltz p6, :cond_43
2024 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2026 - invoke-virtual {v14}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
2027 + move-result-object v6
2029 - move-result-object v2
2030 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2032 - :goto_41
2033 - monitor-exit v4
2034 + move-result-object v4
2036 - :goto_42
2037 - return-object v2
2038 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2040 - :cond_43
2041 - const/4 v2, 0x0
2042 + move-result-object v4
2044 - goto :goto_41
2045 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2047 - :cond_45
2048 - add-int/lit8 v15, v15, 0x1
2049 + const/4 v10, 0x1
2051 - goto :goto_18
2052 + move-object/from16 v0, p0
2054 - :cond_48
2055 - monitor-exit v4
2056 - :try_end_49
2057 - .catchall {:try_start_f .. :try_end_49} :catchall_7e
2058 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2060 - :cond_49
2061 - const/4 v2, 0x0
2062 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2064 - :try_start_4a
2065 - move-object/from16 v0, p5
2066 + move-result-object v4
2068 - invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
2069 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2071 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
2072 + move-result v6
2074 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2075 + const-string/jumbo v7, "phoneCall"
2077 - move-result-object v2
2078 + const/4 v8, 0x0
2080 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2081 + invoke-virtual {v2, v4, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2083 - move-result-object v4
2084 + goto/16 :goto_148
2086 - move-object/from16 v0, p5
2087 + :cond_20c
2088 + const-string v2, "Instrumentation"
2090 - invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2091 + new-instance v4, Ljava/lang/StringBuilder;
2093 - move-result-object v5
2094 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2096 - if-eqz p4, :cond_81
2097 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents denied: Settings deny "
2099 - move-object/from16 v0, p4
2100 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2102 - iget-object v7, v0, Landroid/app/Fragment;->mWho:Ljava/lang/String;
2103 + move-result-object v4
2105 - :goto_66
2106 - const/4 v9, 0x0
2107 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2109 - const/4 v10, 0x0
2110 + move-result-object v6
2112 - const/4 v11, 0x0
2113 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2115 - move-object/from16 v4, p5
2116 + move-result-object v4
2118 - move-object/from16 v6, p3
2119 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2121 - move/from16 v8, p6
2122 + move-result-object v4
2124 - move-object/from16 v12, p7
2125 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2127 - invoke-interface/range {v2 .. v12}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
2128 + const/4 v10, 0x0
2130 - move-result v16
2131 + move-object/from16 v0, p0
2133 - move/from16 v0, v16
2134 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2136 - move-object/from16 v1, p5
2137 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2139 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2140 - :try_end_7c
2141 - .catch Landroid/os/RemoteException; {:try_start_4a .. :try_end_7c} :catch_83
2142 + move-result-object v4
2144 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2146 + move-result v6
2148 + const-string/jumbo v7, "phoneCall"
2150 + const/4 v8, 0x0
2152 + invoke-virtual {v2, v4, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2154 + goto/16 :goto_148
2156 + :catch_23e
2157 + move-exception v14
2159 + const-string v2, "Instrumentation"
2161 + new-instance v4, Ljava/lang/StringBuilder;
2163 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2165 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Exception occurred when checking intent for "
2167 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2169 + move-result-object v4
2171 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2173 + move-result-object v6
2175 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2177 + move-result-object v4
2179 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2181 + move-result-object v4
2183 + invoke-static {v2, v4, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2185 + goto/16 :goto_184
2187 + :cond_25d
2188 + invoke-interface {v15}, Ljava/util/List;->size()I
2190 + move-result v2
2192 + new-array v2, v2, [Landroid/content/Intent;
2194 + invoke-interface {v15, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
2196 + move-result-object p5
2198 + check-cast p5, [Landroid/content/Intent;
2200 + move-object/from16 v22, p1
2202 + new-instance v2, Ljava/lang/Thread;
2204 + new-instance v4, Landroid/app/Instrumentation$2;
2206 + move-object/from16 v0, p0
2208 + move-object/from16 v1, v22
2210 + invoke-direct {v4, v0, v1}, Landroid/app/Instrumentation$2;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
2212 + invoke-direct {v2, v4}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
2214 + invoke-virtual {v2}, Ljava/lang/Thread;->start()V
2216 + goto/16 :goto_6f
2218 + :cond_27e
2219 + add-int/lit8 v16, v16, 0x1
2221 + goto/16 :goto_84
2223 + :cond_282
2224 + :try_start_282
2225 + monitor-exit v4
2226 + :try_end_283
2227 + .catchall {:try_start_282 .. :try_end_283} :catchall_2a6
2229 + :cond_283
2230 + :try_start_283
2231 + move-object/from16 v0, p5
2233 + array-length v2, v0
2235 + new-array v5, v2, [Ljava/lang/String;
2237 + const/16 v16, 0x0
2239 + :goto_28a
2240 + move-object/from16 v0, p5
2242 + array-length v2, v0
2244 + move/from16 v0, v16
2246 + if-ge v0, v2, :cond_2a9
2248 + aget-object v2, p5, v16
2250 + const/4 v4, 0x0
2252 + invoke-virtual {v2, v4}, Landroid/content/Intent;->setAllowFds(Z)V
2254 + aget-object v2, p5, v16
2256 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2258 + move-result-object v4
2260 + invoke-virtual {v2, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2262 + move-result-object v2
2264 + aput-object v2, v5, v16
2265 + :try_end_2a3
2266 + .catch Landroid/os/RemoteException; {:try_start_283 .. :try_end_2a3} :catch_2c3
2268 + add-int/lit8 v16, v16, 0x1
2270 + goto :goto_28a
2272 + :catchall_2a6
2273 + move-exception v2
2275 + :try_start_2a7
2276 + monitor-exit v4
2277 + :try_end_2a8
2278 + .catchall {:try_start_2a7 .. :try_end_2a8} :catchall_2a6
2280 + throw v2
2282 + :cond_2a9
2283 + :try_start_2a9
2284 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2286 + move-result-object v2
2288 + move-object/from16 v4, p5
2290 + move-object/from16 v6, p3
2292 + move-object/from16 v7, p6
2294 + move/from16 v8, p7
2296 + invoke-interface/range {v2 .. v8}, Landroid/app/IActivityManager;->startActivities(Landroid/app/IApplicationThread;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
2298 + move-result v21
2300 + const/4 v2, 0x0
2302 + aget-object v2, p5, v2
2304 + move/from16 v0, v21
2306 + invoke-static {v0, v2}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2307 + :try_end_2c1
2308 + .catch Landroid/os/RemoteException; {:try_start_2a9 .. :try_end_2c1} :catch_2c3
2310 + goto/16 :goto_ad
2312 + :catch_2c3
2313 + move-exception v2
2315 + goto/16 :goto_ad
2316 +.end method
2318 +.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;
2319 + .registers 29
2321 + move-object/from16 v3, p2
2323 + check-cast v3, Landroid/app/IApplicationThread;
2325 + const/4 v14, 0x1
2327 + :try_start_5
2328 + const-string v2, "Instrumentation"
2330 + new-instance v4, Ljava/lang/StringBuilder;
2332 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2334 + const-string v5, "PDroid:Instrumentation:execStartActivity: execStartActivity for "
2336 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2338 + move-result-object v4
2340 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2342 + move-result-object v5
2344 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2346 + move-result-object v4
2348 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2350 + move-result-object v4
2352 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2354 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2356 + move-result-object v2
2358 + if-eqz v2, :cond_b7
2360 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2362 + move-result-object v2
2364 + const-string v4, "android.intent.action.CALL"
2366 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2368 + move-result v2
2370 + if-nez v2, :cond_3f
2372 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2374 + move-result-object v2
2376 + const-string v4, "android.intent.action.DIAL"
2378 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2380 + move-result v2
2382 + if-eqz v2, :cond_b7
2384 + :cond_3f
2385 + const/4 v14, 0x0
2387 + const-string v2, "Instrumentation"
2389 + new-instance v4, Ljava/lang/StringBuilder;
2391 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2393 + const-string v5, "PDroid:Instrumentation:execStartActivity: Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
2395 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2397 + move-result-object v4
2399 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2401 + move-result-object v5
2403 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2405 + move-result-object v4
2407 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2409 + move-result-object v4
2411 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2413 + move-object/from16 v0, p0
2415 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2417 + if-eqz v2, :cond_6c
2419 + move-object/from16 v0, p0
2421 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2423 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
2425 + move-result v2
2427 + if-nez v2, :cond_125
2429 + :cond_6c
2430 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
2432 + const-string/jumbo v4, "privacy"
2434 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
2436 + move-result-object v4
2438 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
2440 + move-result-object v4
2442 + move-object/from16 v0, p1
2444 + invoke-direct {v2, v0, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
2446 + move-object/from16 v0, p0
2448 + iput-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2450 + move-object/from16 v0, p0
2452 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2454 + if-eqz v2, :cond_fb
2456 + const-string v2, "Instrumentation"
2458 + const-string v4, "PDroid:Instrumentation:execStartActivity: Obtained privacy service"
2460 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2462 + :goto_8f
2463 + move-object/from16 v0, p0
2465 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2467 + if-eqz v2, :cond_9f
2469 + move-object/from16 v0, p0
2471 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2473 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
2475 + move-result v2
2477 + if-nez v2, :cond_12e
2479 + :cond_9f
2480 + const-string v2, "Instrumentation"
2482 + const-string v4, "PDroid:Instrumentation:execStartActivity: Privacy service not available: rejecting call attempt"
2484 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2486 + const/4 v14, 0x0
2488 + move-object/from16 v0, p0
2490 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2492 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2494 + move-result-object v4
2496 + const/4 v5, 0x1
2498 + const-string/jumbo v6, "phoneCall"
2500 + const/4 v7, 0x0
2502 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2503 + :try_end_b7
2504 + .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_b7} :catch_103
2506 + :cond_b7
2507 + :goto_b7
2508 + move-object/from16 v0, p0
2510 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2512 + if-eqz v2, :cond_1fb
2514 + move-object/from16 v0, p0
2516 + iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
2518 + monitor-enter v4
2520 + :try_start_c2
2521 + move-object/from16 v0, p0
2523 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2525 + invoke-interface {v2}, Ljava/util/List;->size()I
2527 + move-result v13
2529 + const/16 v17, 0x0
2531 + :goto_cc
2532 + move/from16 v0, v17
2534 + if-ge v0, v13, :cond_1fa
2536 + move-object/from16 v0, p0
2538 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2540 + move/from16 v0, v17
2542 + invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
2544 + move-result-object v15
2546 + check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
2548 + const/4 v2, 0x0
2550 + move-object/from16 v0, p1
2552 + move-object/from16 v1, p5
2554 + invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
2556 + move-result v2
2558 + if-eqz v2, :cond_1f6
2560 + iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2562 + add-int/lit8 v2, v2, 0x1
2564 + iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2566 + invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
2568 + move-result v2
2570 + if-eqz v2, :cond_1fa
2572 + if-ltz p6, :cond_1f3
2574 + invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
2576 + move-result-object v2
2578 + :goto_f9
2579 + monitor-exit v4
2580 + :try_end_fa
2581 + .catchall {:try_start_c2 .. :try_end_fa} :catchall_215
2583 + :goto_fa
2584 + return-object v2
2586 + :cond_fb
2587 + :try_start_fb
2588 + const-string v2, "Instrumentation"
2590 + const-string v4, "PDroid:Instrumentation:execStartActivity: Privacy service not obtained"
2592 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2593 + :try_end_102
2594 + .catch Ljava/lang/Exception; {:try_start_fb .. :try_end_102} :catch_103
2596 + goto :goto_8f
2598 + :catch_103
2599 + move-exception v16
2601 + if-eqz p1, :cond_1e8
2603 + const-string v2, "Instrumentation"
2605 + new-instance v4, Ljava/lang/StringBuilder;
2607 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2609 + const-string v5, "PDroid:Instrumentation:execStartActivity: Exception occurred handling intent for "
2611 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2613 + move-result-object v4
2615 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2617 + move-result-object v5
2619 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2621 + move-result-object v4
2623 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2625 + move-result-object v4
2627 + move-object/from16 v0, v16
2629 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2631 + goto :goto_b7
2633 + :cond_125
2634 + :try_start_125
2635 + const-string v2, "Instrumentation"
2637 + const-string v4, "PDroid:Instrumentation:execStartActivity: Already had privacy service"
2639 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2641 + goto/16 :goto_8f
2643 + :cond_12e
2644 + move-object/from16 v0, p0
2646 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2648 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2650 + move-result-object v4
2652 + invoke-virtual {v2, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
2654 + move-result-object v18
2656 + if-nez v18, :cond_16b
2658 + const-string v2, "Instrumentation"
2660 + new-instance v4, Ljava/lang/StringBuilder;
2662 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2664 + const-string v5, "PDroid:Instrumentation:execStartActivity: Call allowed: No settings for package: "
2666 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2668 + move-result-object v4
2670 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2672 + move-result-object v5
2674 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2676 + move-result-object v4
2678 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2680 + move-result-object v4
2682 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2684 + const/4 v14, 0x1
2686 + move-object/from16 v0, p0
2688 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2690 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2692 + move-result-object v4
2694 + const/4 v5, 0x0
2696 + const-string/jumbo v6, "phoneCall"
2698 + const/4 v7, 0x0
2700 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2702 + goto/16 :goto_b7
2704 + :cond_16b
2705 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2707 + move-result v2
2709 + if-nez v2, :cond_1a3
2711 + const-string v2, "Instrumentation"
2713 + new-instance v4, Ljava/lang/StringBuilder;
2715 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2717 + const-string v5, "PDroid:Instrumentation:execStartActivity: Call allowed: Settings permit "
2719 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2721 + move-result-object v4
2723 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2725 + move-result-object v5
2727 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2729 + move-result-object v4
2731 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2733 + move-result-object v4
2735 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2737 + const/4 v14, 0x1
2739 + move-object/from16 v0, p0
2741 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2743 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2745 + move-result-object v4
2747 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2749 + move-result v5
2751 + const-string/jumbo v6, "phoneCall"
2753 + const/4 v7, 0x0
2755 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2757 + goto/16 :goto_b7
2759 + :cond_1a3
2760 + const-string v2, "Instrumentation"
2762 + new-instance v4, Ljava/lang/StringBuilder;
2764 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2766 + const-string v5, "PDroid:Instrumentation:execStartActivity: Call denied: Settings deny "
2768 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2770 + move-result-object v4
2772 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2774 + move-result-object v5
2776 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2778 + move-result-object v4
2780 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2782 + move-result-object v4
2784 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2786 + const/4 v14, 0x0
2788 + move-object/from16 v20, p1
2790 + new-instance v2, Ljava/lang/Thread;
2792 + new-instance v4, Landroid/app/Instrumentation$1;
2794 + move-object/from16 v0, p0
2796 + move-object/from16 v1, v20
2798 + invoke-direct {v4, v0, v1}, Landroid/app/Instrumentation$1;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
2800 + invoke-direct {v2, v4}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
2802 + invoke-virtual {v2}, Ljava/lang/Thread;->start()V
2804 + move-object/from16 v0, p0
2806 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2808 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2810 + move-result-object v4
2812 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2814 + move-result v5
2816 + const-string/jumbo v6, "phoneCall"
2818 + const/4 v7, 0x0
2820 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2821 + :try_end_1e6
2822 + .catch Ljava/lang/Exception; {:try_start_125 .. :try_end_1e6} :catch_103
2824 + goto/16 :goto_b7
2826 + :cond_1e8
2827 + const-string v2, "Instrumentation"
2829 + const-string v4, "PDroid:Instrumentation:execStartActivity: Exception occurred handling intent for unknown package"
2831 + move-object/from16 v0, v16
2833 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2835 + goto/16 :goto_b7
2837 + :cond_1f3
2838 + const/4 v2, 0x0
2840 + goto/16 :goto_f9
2842 + :cond_1f6
2843 + add-int/lit8 v17, v17, 0x1
2845 + goto/16 :goto_cc
2847 + :cond_1fa
2848 + :try_start_1fa
2849 + monitor-exit v4
2850 + :try_end_1fb
2851 + .catchall {:try_start_1fa .. :try_end_1fb} :catchall_215
2853 + :cond_1fb
2854 + if-nez v14, :cond_218
2856 + :try_start_1fd
2857 + new-instance v2, Landroid/app/Instrumentation$ActivityResult;
2859 + move/from16 v0, p6
2861 + move-object/from16 v1, p5
2863 + invoke-direct {v2, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
2864 + :try_end_206
2865 + .catch Ljava/lang/Exception; {:try_start_1fd .. :try_end_206} :catch_208
2867 + goto/16 :goto_fa
2869 + :catch_208
2870 + move-exception v16
2872 + const-string v2, "Instrumentation"
2874 + const-string v4, "PDroid:Instrumentation:execStartActivity: Exception occurred while trying to create ActivityResult"
2876 + move-object/from16 v0, v16
2878 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2880 + const/4 v2, 0x0
2882 + goto/16 :goto_fa
2884 + :catchall_215
2885 + move-exception v2
2887 + :try_start_216
2888 + monitor-exit v4
2889 + :try_end_217
2890 + .catchall {:try_start_216 .. :try_end_217} :catchall_215
2892 + throw v2
2894 + :cond_218
2895 + const/4 v2, 0x0
2897 + :try_start_219
2898 + move-object/from16 v0, p5
2900 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
2902 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
2904 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2906 + move-result-object v2
2908 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2910 + move-result-object v4
2912 + move-object/from16 v0, p5
2914 + invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2916 + move-result-object v5
2918 + if-eqz p4, :cond_24e
2920 + move-object/from16 v0, p4
2922 + iget-object v7, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
2924 + :goto_235
2925 + const/4 v9, 0x0
2927 + const/4 v10, 0x0
2929 + const/4 v11, 0x0
2931 + move-object/from16 v4, p5
2933 + move-object/from16 v6, p3
2935 + move/from16 v8, p6
2937 + move-object/from16 v12, p7
2939 + invoke-interface/range {v2 .. v12}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
2941 + move-result v19
2943 + move/from16 v0, v19
2945 + move-object/from16 v1, p5
2947 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2948 + :try_end_24b
2949 + .catch Landroid/os/RemoteException; {:try_start_219 .. :try_end_24b} :catch_250
2951 + :goto_24b
2952 + const/4 v2, 0x0
2954 + goto/16 :goto_fa
2956 + :cond_24e
2957 + const/4 v7, 0x0
2959 + goto :goto_235
2961 + :catch_250
2962 + move-exception v2
2964 + goto :goto_24b
2965 +.end method
2967 +.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;
2968 + .registers 32
2970 + move-object/from16 v4, p2
2972 + check-cast v4, Landroid/app/IApplicationThread;
2974 + const/16 v16, 0x1
2976 + :try_start_6
2977 + const-string v3, "Instrumentation"
2979 + new-instance v5, Ljava/lang/StringBuilder;
2981 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2983 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): execStartActivity for "
2985 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2987 + move-result-object v5
2989 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2991 + move-result-object v6
2993 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2995 + move-result-object v5
2997 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2999 + move-result-object v5
3001 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3003 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3005 + move-result-object v3
3007 + if-eqz v3, :cond_ba
3009 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3011 + move-result-object v3
3013 + const-string v5, "android.intent.action.CALL"
3015 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3017 + move-result v3
3019 + if-nez v3, :cond_40
3021 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3023 + move-result-object v3
3025 + const-string v5, "android.intent.action.DIAL"
3027 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3029 + move-result v3
3031 + if-eqz v3, :cond_ba
3033 + :cond_40
3034 + const/16 v16, 0x0
3036 + const-string v3, "Instrumentation"
3038 + new-instance v5, Ljava/lang/StringBuilder;
3040 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3042 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
3044 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3046 + move-result-object v5
3048 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3050 + move-result-object v6
3052 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3054 + move-result-object v5
3056 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3058 + move-result-object v5
3060 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3062 + move-object/from16 v0, p0
3064 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3066 + if-eqz v3, :cond_6e
3068 + move-object/from16 v0, p0
3070 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3072 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3074 + move-result v3
3076 + if-nez v3, :cond_12e
3078 + :cond_6e
3079 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
3081 + const-string/jumbo v5, "privacy"
3083 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
3085 + move-result-object v5
3087 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
3089 + move-result-object v5
3091 + move-object/from16 v0, p1
3093 + invoke-direct {v3, v0, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
3095 + move-object/from16 v0, p0
3097 + iput-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3099 + move-object/from16 v0, p0
3101 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3103 + if-eqz v3, :cond_104
3105 + const-string v3, "Instrumentation"
3107 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Obtained privacy service"
3109 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3111 + :goto_91
3112 + move-object/from16 v0, p0
3114 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3116 + if-eqz v3, :cond_a1
3118 + move-object/from16 v0, p0
3120 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3122 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3124 + move-result v3
3126 + if-nez v3, :cond_137
3128 + :cond_a1
3129 + const-string v3, "Instrumentation"
3131 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Privacy service not available: rejecting call attempt"
3133 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3135 + const/16 v16, 0x0
3137 + move-object/from16 v0, p0
3139 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3141 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3143 + move-result-object v5
3145 + const/4 v6, 0x1
3147 + const-string/jumbo v7, "phoneCall"
3149 + const/4 v8, 0x0
3151 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3152 + :try_end_ba
3153 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_ba} :catch_10c
3155 + :cond_ba
3156 + :goto_ba
3157 + move-object/from16 v0, p0
3159 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3161 + if-eqz v3, :cond_207
3163 + move-object/from16 v0, p0
3165 + iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
3167 + monitor-enter v5
3169 + :try_start_c5
3170 + move-object/from16 v0, p0
3172 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3174 + invoke-interface {v3}, Ljava/util/List;->size()I
3176 + move-result v15
3178 + const/16 v19, 0x0
3180 + :goto_cf
3181 + move/from16 v0, v19
3183 + if-ge v0, v15, :cond_206
3185 + move-object/from16 v0, p0
3187 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3189 + move/from16 v0, v19
3191 + invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
3193 + move-result-object v17
3195 + check-cast v17, Landroid/app/Instrumentation$ActivityMonitor;
3197 + const/4 v3, 0x0
3199 + move-object/from16 v0, v17
3201 + move-object/from16 v1, p1
3203 + move-object/from16 v2, p5
3205 + invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
3207 + move-result v3
3209 + if-eqz v3, :cond_202
3211 + move-object/from16 v0, v17
3213 + iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3215 + add-int/lit8 v3, v3, 0x1
3217 + move-object/from16 v0, v17
3219 + iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3221 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
3223 + move-result v3
3225 + if-eqz v3, :cond_206
3227 + if-ltz p6, :cond_1ff
3229 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
3231 + move-result-object v3
3233 + :goto_102
3234 + monitor-exit v5
3235 + :try_end_103
3236 + .catchall {:try_start_c5 .. :try_end_103} :catchall_221
3238 + :goto_103
3239 + return-object v3
3241 + :cond_104
3242 + :try_start_104
3243 + const-string v3, "Instrumentation"
3245 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Privacy service not obtained"
3247 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3248 + :try_end_10b
3249 + .catch Ljava/lang/Exception; {:try_start_104 .. :try_end_10b} :catch_10c
3251 + goto :goto_91
3253 + :catch_10c
3254 + move-exception v18
3256 + if-eqz p1, :cond_1f4
3258 + const-string v3, "Instrumentation"
3260 + new-instance v5, Ljava/lang/StringBuilder;
3262 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3264 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred handling intent for "
3266 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3268 + move-result-object v5
3270 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3272 + move-result-object v6
3274 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3276 + move-result-object v5
3278 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3280 + move-result-object v5
3282 + move-object/from16 v0, v18
3284 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3286 + goto :goto_ba
3288 + :cond_12e
3289 + :try_start_12e
3290 + const-string v3, "Instrumentation"
3292 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Already had privacy service"
3294 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3296 + goto/16 :goto_91
3298 + :cond_137
3299 + move-object/from16 v0, p0
3301 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3303 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3305 + move-result-object v5
3307 + invoke-virtual {v3, v5}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
3309 + move-result-object v20
3311 + if-nez v20, :cond_175
3313 + const-string v3, "Instrumentation"
3315 + new-instance v5, Ljava/lang/StringBuilder;
3317 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3319 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call allowed: No settings for package: "
3321 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3323 + move-result-object v5
3325 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3327 + move-result-object v6
3329 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3331 + move-result-object v5
3333 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3335 + move-result-object v5
3337 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3339 + const/16 v16, 0x1
3341 + move-object/from16 v0, p0
3343 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3345 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3347 + move-result-object v5
3349 + const/4 v6, 0x0
3351 + const-string/jumbo v7, "phoneCall"
3353 + const/4 v8, 0x0
3355 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3357 + goto/16 :goto_ba
3359 + :cond_175
3360 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3362 + move-result v3
3364 + if-nez v3, :cond_1ae
3366 + const-string v3, "Instrumentation"
3368 + new-instance v5, Ljava/lang/StringBuilder;
3370 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3372 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call allowed: Settings permit "
3374 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3376 + move-result-object v5
3378 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3380 + move-result-object v6
3382 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3384 + move-result-object v5
3386 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3388 + move-result-object v5
3390 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3392 + const/16 v16, 0x1
3394 + move-object/from16 v0, p0
3396 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3398 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3400 + move-result-object v5
3402 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3404 + move-result v6
3406 + const-string/jumbo v7, "phoneCall"
3408 + const/4 v8, 0x0
3410 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3412 + goto/16 :goto_ba
3414 + :cond_1ae
3415 + const-string v3, "Instrumentation"
3417 + new-instance v5, Ljava/lang/StringBuilder;
3419 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3421 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call denied: Settings deny "
3423 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3425 + move-result-object v5
3427 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3429 + move-result-object v6
3431 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3433 + move-result-object v5
3435 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3437 + move-result-object v5
3439 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3441 + move-object/from16 v22, p1
3443 + const/16 v16, 0x0
3445 + new-instance v3, Ljava/lang/Thread;
3447 + new-instance v5, Landroid/app/Instrumentation$4;
3449 + move-object/from16 v0, p0
3451 + move-object/from16 v1, v22
3453 + invoke-direct {v5, v0, v1}, Landroid/app/Instrumentation$4;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
3455 + invoke-direct {v3, v5}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
3457 + invoke-virtual {v3}, Ljava/lang/Thread;->start()V
3459 + move-object/from16 v0, p0
3461 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3463 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3465 + move-result-object v5
3467 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3469 + move-result v6
3471 + const-string/jumbo v7, "phoneCall"
3473 + const/4 v8, 0x0
3475 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3476 + :try_end_1f2
3477 + .catch Ljava/lang/Exception; {:try_start_12e .. :try_end_1f2} :catch_10c
3479 + goto/16 :goto_ba
3481 + :cond_1f4
3482 + const-string v3, "Instrumentation"
3484 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred handling intent for unknown package"
3486 + move-object/from16 v0, v18
3488 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3490 + goto/16 :goto_ba
3492 + :cond_1ff
3493 + const/4 v3, 0x0
3495 + goto/16 :goto_102
3497 + :cond_202
3498 + add-int/lit8 v19, v19, 0x1
3500 + goto/16 :goto_cf
3502 + :cond_206
3503 + :try_start_206
3504 + monitor-exit v5
3505 + :try_end_207
3506 + .catchall {:try_start_206 .. :try_end_207} :catchall_221
3508 + :cond_207
3509 + if-nez v16, :cond_224
3511 + :try_start_209
3512 + new-instance v3, Landroid/app/Instrumentation$ActivityResult;
3514 + move/from16 v0, p6
3516 + move-object/from16 v1, p5
3518 + invoke-direct {v3, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
3519 + :try_end_212
3520 + .catch Ljava/lang/Exception; {:try_start_209 .. :try_end_212} :catch_214
3522 + goto/16 :goto_103
3524 + :catch_214
3525 + move-exception v18
3527 + const-string v3, "Instrumentation"
3529 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred while trying to create ActivityResult"
3531 + move-object/from16 v0, v18
3533 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3535 + const/4 v3, 0x0
3537 + goto/16 :goto_103
3539 + :catchall_221
3540 + move-exception v3
3542 + :try_start_222
3543 + monitor-exit v5
3544 + :try_end_223
3545 + .catchall {:try_start_222 .. :try_end_223} :catchall_221
3547 + throw v3
3549 + :cond_224
3550 + const/4 v3, 0x0
3552 + :try_start_225
3553 + move-object/from16 v0, p5
3555 + invoke-virtual {v0, v3}, Landroid/content/Intent;->setAllowFds(Z)V
3557 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
3559 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
3561 + move-result-object v3
3563 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
3565 + move-result-object v5
3567 + move-object/from16 v0, p5
3569 + invoke-virtual {v0, v5}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
3571 + move-result-object v6
3573 + if-eqz p4, :cond_25e
3575 + move-object/from16 v0, p4
3577 + iget-object v8, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
3579 + :goto_241
3580 + const/4 v10, 0x0
3582 + const/4 v11, 0x0
3584 + const/4 v12, 0x0
3586 + invoke-virtual/range {p8 .. p8}, Landroid/os/UserHandle;->getIdentifier()I
3588 + move-result v14
3590 + move-object/from16 v5, p5
3592 + move-object/from16 v7, p3
3594 + move/from16 v9, p6
3596 + move-object/from16 v13, p7
3598 + invoke-interface/range {v3 .. v14}, Landroid/app/IActivityManager;->startActivityAsUser(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;I)I
3600 + move-result v21
3602 + move/from16 v0, v21
3604 + move-object/from16 v1, p5
3606 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
3607 + :try_end_25b
3608 + .catch Landroid/os/RemoteException; {:try_start_225 .. :try_end_25b} :catch_260
3610 + :goto_25b
3611 + const/4 v3, 0x0
3613 + goto/16 :goto_103
3615 + :cond_25e
3616 + const/4 v8, 0x0
3618 + goto :goto_241
3620 + :catch_260
3621 + move-exception v3
3623 + goto :goto_25b
3624 +.end method
3626 +.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;
3627 + .registers 29
3629 + move-object/from16 v3, p2
3631 + check-cast v3, Landroid/app/IApplicationThread;
3633 + const/4 v14, 0x1
3635 + :try_start_5
3636 + const-string v2, "Instrumentation"
3638 + new-instance v4, Ljava/lang/StringBuilder;
3640 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
3642 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): execStartActivity for "
3644 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3646 + move-result-object v4
3648 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3650 + move-result-object v5
3652 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3654 + move-result-object v4
3656 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3658 + move-result-object v4
3660 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3662 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3664 + move-result-object v2
3666 + if-eqz v2, :cond_b7
3668 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3670 + move-result-object v2
3672 + const-string v4, "android.intent.action.CALL"
3674 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3676 + move-result v2
3678 + if-nez v2, :cond_3f
3680 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3682 + move-result-object v2
3684 + const-string v4, "android.intent.action.DIAL"
3686 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3688 + move-result v2
3690 + if-eqz v2, :cond_b7
3692 + :cond_3f
3693 + const/4 v14, 0x0
3695 + const-string v2, "Instrumentation"
3697 + new-instance v4, Ljava/lang/StringBuilder;
3699 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
3701 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
3703 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3705 + move-result-object v4
3707 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3709 + move-result-object v5
3711 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3713 + move-result-object v4
3715 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3717 + move-result-object v4
3719 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3721 + move-object/from16 v0, p0
3723 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3725 + if-eqz v2, :cond_6c
3727 + move-object/from16 v0, p0
3729 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3731 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3733 + move-result v2
3735 + if-nez v2, :cond_125
3737 + :cond_6c
3738 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
3740 + const-string/jumbo v4, "privacy"
3742 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
3744 + move-result-object v4
3746 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
3748 + move-result-object v4
3750 + move-object/from16 v0, p1
3752 + invoke-direct {v2, v0, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
3754 + move-object/from16 v0, p0
3756 + iput-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3758 + move-object/from16 v0, p0
3760 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3762 + if-eqz v2, :cond_fb
3764 + const-string v2, "Instrumentation"
3766 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Obtained privacy service"
3768 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3770 + :goto_8f
3771 + move-object/from16 v0, p0
3773 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3775 + if-eqz v2, :cond_9f
3777 + move-object/from16 v0, p0
3779 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3781 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3783 + move-result v2
3785 + if-nez v2, :cond_12e
3787 + :cond_9f
3788 + const-string v2, "Instrumentation"
3790 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Privacy service not available: rejecting call attempt"
3792 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3794 + const/4 v14, 0x0
3796 + move-object/from16 v0, p0
3798 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3800 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3802 + move-result-object v4
3804 + const/4 v5, 0x1
3806 + const-string/jumbo v6, "phoneCall"
3808 + const/4 v7, 0x0
3810 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3811 + :try_end_b7
3812 + .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_b7} :catch_103
3814 + :cond_b7
3815 + :goto_b7
3816 + move-object/from16 v0, p0
3818 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3820 + if-eqz v2, :cond_1fb
3822 + move-object/from16 v0, p0
3824 + iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
3826 + monitor-enter v4
3828 + :try_start_c2
3829 + move-object/from16 v0, p0
3831 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3833 + invoke-interface {v2}, Ljava/util/List;->size()I
3835 + move-result v13
3837 + const/16 v17, 0x0
3839 + :goto_cc
3840 + move/from16 v0, v17
3842 + if-ge v0, v13, :cond_1fa
3844 + move-object/from16 v0, p0
3846 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3848 + move/from16 v0, v17
3850 + invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
3852 + move-result-object v15
3854 + check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
3856 + const/4 v2, 0x0
3858 + move-object/from16 v0, p1
3860 + move-object/from16 v1, p5
3862 + invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
3864 + move-result v2
3866 + if-eqz v2, :cond_1f6
3868 + iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3870 + add-int/lit8 v2, v2, 0x1
3872 + iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3874 + invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
3876 + move-result v2
3878 + if-eqz v2, :cond_1fa
3880 + if-ltz p6, :cond_1f3
3882 + invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
3884 + move-result-object v2
3886 + :goto_f9
3887 + monitor-exit v4
3888 + :try_end_fa
3889 + .catchall {:try_start_c2 .. :try_end_fa} :catchall_215
3891 + :goto_fa
3892 + return-object v2
3894 + :cond_fb
3895 + :try_start_fb
3896 + const-string v2, "Instrumentation"
3898 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Privacy service not obtained"
3900 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3901 + :try_end_102
3902 + .catch Ljava/lang/Exception; {:try_start_fb .. :try_end_102} :catch_103
3904 + goto :goto_8f
3906 + :catch_103
3907 + move-exception v16
3909 + if-eqz p1, :cond_1e8
3911 + const-string v2, "Instrumentation"
3913 + new-instance v4, Ljava/lang/StringBuilder;
3915 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
3917 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred handling intent for "
3919 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3921 + move-result-object v4
3923 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3925 + move-result-object v5
3927 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3929 + move-result-object v4
3931 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3933 + move-result-object v4
3935 + move-object/from16 v0, v16
3937 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3939 + goto :goto_b7
3941 + :cond_125
3942 + :try_start_125
3943 + const-string v2, "Instrumentation"
3945 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Already had privacy service"
3947 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3949 + goto/16 :goto_8f
3951 + :cond_12e
3952 + move-object/from16 v0, p0
3954 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3956 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3958 + move-result-object v4
3960 + invoke-virtual {v2, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
3962 + move-result-object v18
3964 + if-nez v18, :cond_16b
3966 + const-string v2, "Instrumentation"
3968 + new-instance v4, Ljava/lang/StringBuilder;
3970 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
3972 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Call allowed: No settings for package: "
3974 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3976 + move-result-object v4
3978 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3980 + move-result-object v5
3982 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3984 + move-result-object v4
3986 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3988 + move-result-object v4
3990 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3992 + const/4 v14, 0x1
3994 + move-object/from16 v0, p0
3996 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3998 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4000 + move-result-object v4
4002 + const/4 v5, 0x0
4004 + const-string/jumbo v6, "phoneCall"
4006 + const/4 v7, 0x0
4008 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4010 + goto/16 :goto_b7
4012 + :cond_16b
4013 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4015 + move-result v2
4017 + if-nez v2, :cond_1a3
4019 + const-string v2, "Instrumentation"
4021 + new-instance v4, Ljava/lang/StringBuilder;
4023 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4025 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Call allowed: Settings permit "
4027 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4029 + move-result-object v4
4031 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4033 + move-result-object v5
4035 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4037 + move-result-object v4
4039 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4041 + move-result-object v4
4043 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4045 + const/4 v14, 0x1
4047 + move-object/from16 v0, p0
4049 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4051 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4053 + move-result-object v4
4055 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4057 + move-result v5
4059 + const-string/jumbo v6, "phoneCall"
4061 + const/4 v7, 0x0
4063 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4065 + goto/16 :goto_b7
4067 + :cond_1a3
4068 + const-string v2, "Instrumentation"
4070 + new-instance v4, Ljava/lang/StringBuilder;
4072 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4074 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Call denied: Settings deny "
4076 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4078 + move-result-object v4
4080 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4082 + move-result-object v5
4084 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4086 + move-result-object v4
4088 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4090 + move-result-object v4
4092 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4094 + move-object/from16 v20, p1
4096 + const/4 v14, 0x0
4098 + new-instance v2, Ljava/lang/Thread;
4100 + new-instance v4, Landroid/app/Instrumentation$3;
4102 + move-object/from16 v0, p0
4104 + move-object/from16 v1, v20
4106 + invoke-direct {v4, v0, v1}, Landroid/app/Instrumentation$3;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
4108 + invoke-direct {v2, v4}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
4110 + invoke-virtual {v2}, Ljava/lang/Thread;->start()V
4112 + move-object/from16 v0, p0
4114 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4116 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4118 + move-result-object v4
4120 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4122 + move-result v5
4124 + const-string/jumbo v6, "phoneCall"
4126 + const/4 v7, 0x0
4128 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4129 + :try_end_1e6
4130 + .catch Ljava/lang/Exception; {:try_start_125 .. :try_end_1e6} :catch_103
4132 + goto/16 :goto_b7
4134 + :cond_1e8
4135 + const-string v2, "Instrumentation"
4137 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred handling intent for unknown package"
4139 + move-object/from16 v0, v16
4141 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4143 + goto/16 :goto_b7
4145 + :cond_1f3
4146 + const/4 v2, 0x0
4148 + goto/16 :goto_f9
4150 + :cond_1f6
4151 + add-int/lit8 v17, v17, 0x1
4153 + goto/16 :goto_cc
4155 + :cond_1fa
4156 + :try_start_1fa
4157 + monitor-exit v4
4158 + :try_end_1fb
4159 + .catchall {:try_start_1fa .. :try_end_1fb} :catchall_215
4161 + :cond_1fb
4162 + if-nez v14, :cond_218
4164 + :try_start_1fd
4165 + new-instance v2, Landroid/app/Instrumentation$ActivityResult;
4167 + move/from16 v0, p6
4169 + move-object/from16 v1, p5
4171 + invoke-direct {v2, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
4172 + :try_end_206
4173 + .catch Ljava/lang/Exception; {:try_start_1fd .. :try_end_206} :catch_208
4175 + goto/16 :goto_fa
4177 + :catch_208
4178 + move-exception v16
4180 + const-string v2, "Instrumentation"
4182 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred while trying to create ActivityResult"
4184 + move-object/from16 v0, v16
4186 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4188 - :goto_7c
4189 const/4 v2, 0x0
4191 - goto :goto_42
4192 + goto/16 :goto_fa
4194 - :catchall_7e
4195 + :catchall_215
4196 move-exception v2
4198 - :try_start_7f
4199 + :try_start_216
4200 monitor-exit v4
4201 - :try_end_80
4202 - .catchall {:try_start_7f .. :try_end_80} :catchall_7e
4203 + :try_end_217
4204 + .catchall {:try_start_216 .. :try_end_217} :catchall_215
4206 throw v2
4208 - :cond_81
4209 + :cond_218
4210 + const/4 v2, 0x0
4212 + :try_start_219
4213 + move-object/from16 v0, p5
4215 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
4217 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
4219 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
4221 + move-result-object v2
4223 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
4225 + move-result-object v4
4227 + move-object/from16 v0, p5
4229 + invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
4231 + move-result-object v5
4233 + if-eqz p4, :cond_24e
4235 + move-object/from16 v0, p4
4237 + iget-object v7, v0, Landroid/app/Fragment;->mWho:Ljava/lang/String;
4239 + :goto_235
4240 + const/4 v9, 0x0
4242 + const/4 v10, 0x0
4244 + const/4 v11, 0x0
4246 + move-object/from16 v4, p5
4248 + move-object/from16 v6, p3
4250 + move/from16 v8, p6
4252 + move-object/from16 v12, p7
4254 + invoke-interface/range {v2 .. v12}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
4256 + move-result v19
4258 + move/from16 v0, v19
4260 + move-object/from16 v1, p5
4262 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
4263 + :try_end_24b
4264 + .catch Landroid/os/RemoteException; {:try_start_219 .. :try_end_24b} :catch_250
4266 + :goto_24b
4267 + const/4 v2, 0x0
4269 + goto/16 :goto_fa
4271 + :cond_24e
4272 const/4 v7, 0x0
4274 - goto :goto_66
4275 + goto :goto_235
4277 - :catch_83
4278 + :catch_250
4279 move-exception v2
4281 - goto :goto_7c
4282 + goto :goto_24b
4283 .end method
4285 .method public finish(ILandroid/os/Bundle;)V
4286 diff -Npru stock-framework/smali/android/app/LoaderManagerImpl$LoaderInfo.smali opd-framework/smali/android/app/LoaderManagerImpl$LoaderInfo.smali
4287 --- stock-framework/smali/android/app/LoaderManagerImpl$LoaderInfo.smali 2013-01-21 12:55:57.225901028 -0600
4288 +++ opd-framework/smali/android/app/LoaderManagerImpl$LoaderInfo.smali 2013-01-20 23:05:44.339717192 -0600
4289 @@ -609,7 +609,7 @@
4290 :cond_79
4291 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4293 - const-string v0, "mStarted="
4294 + const-string/jumbo v0, "mStarted="
4296 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4298 @@ -661,7 +661,7 @@
4300 iget-object v0, p0, Landroid/app/LoaderManagerImpl$LoaderInfo;->mPendingLoader:Landroid/app/LoaderManagerImpl$LoaderInfo;
4302 - if-eqz v0, :cond_e9
4303 + if-eqz v0, :cond_ea
4305 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4307 @@ -699,7 +699,7 @@
4309 invoke-virtual {v0, v1, p2, p3, p4}, Landroid/app/LoaderManagerImpl$LoaderInfo;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
4311 - :cond_e9
4312 + :cond_ea
4313 return-void
4314 .end method
4316 diff -Npru stock-framework/smali/android/content/AsyncTaskLoader.smali opd-framework/smali/android/content/AsyncTaskLoader.smali
4317 --- stock-framework/smali/android/content/AsyncTaskLoader.smali 2013-01-21 12:55:57.417802614 -0600
4318 +++ opd-framework/smali/android/content/AsyncTaskLoader.smali 2013-01-20 23:05:44.587714074 -0600
4319 @@ -167,11 +167,11 @@
4321 iget-object v0, p0, Landroid/content/AsyncTaskLoader;->mTask:Landroid/content/AsyncTaskLoader$LoadTask;
4323 - if-eqz v0, :cond_20
4324 + if-eqz v0, :cond_21
4326 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4328 - const-string v0, "mTask="
4329 + const-string/jumbo v0, "mTask="
4331 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4333 @@ -189,10 +189,10 @@
4335 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Z)V
4337 - :cond_20
4338 + :cond_21
4339 iget-object v0, p0, Landroid/content/AsyncTaskLoader;->mCancellingTask:Landroid/content/AsyncTaskLoader$LoadTask;
4341 - if-eqz v0, :cond_3d
4342 + if-eqz v0, :cond_3e
4344 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4346 @@ -214,14 +214,14 @@
4348 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Z)V
4350 - :cond_3d
4351 + :cond_3e
4352 iget-wide v0, p0, Landroid/content/AsyncTaskLoader;->mUpdateThrottle:J
4354 const-wide/16 v2, 0x0
4356 cmp-long v0, v0, v2
4358 - if-eqz v0, :cond_64
4359 + if-eqz v0, :cond_65
4361 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4363 @@ -247,7 +247,7 @@
4365 invoke-virtual {p3}, Ljava/io/PrintWriter;->println()V
4367 - :cond_64
4368 + :cond_65
4369 return-void
4370 .end method
4372 diff -Npru stock-framework/smali/android/content/ContentResolver.smali opd-framework/smali/android/content/ContentResolver.smali
4373 --- stock-framework/smali/android/content/ContentResolver.smali 2013-01-21 12:55:57.049991239 -0600
4374 +++ opd-framework/smali/android/content/ContentResolver.smali 2013-01-20 23:05:44.043720912 -0600
4375 @@ -3541,8 +3541,8 @@
4377 invoke-virtual {v0, v9}, Landroid/os/CancellationSignal;->setRemote(Landroid/os/ICancellationSignal;)V
4378 :try_end_1d
4379 - .catchall {:try_start_a .. :try_end_1d} :catchall_b9
4380 - .catch Landroid/os/RemoteException; {:try_start_a .. :try_end_1d} :catch_a6
4381 + .catchall {:try_start_a .. :try_end_1d} :catchall_d5
4382 + .catch Landroid/os/RemoteException; {:try_start_a .. :try_end_1d} :catch_c2
4384 :cond_1d
4385 move-object/from16 v4, p1
4386 @@ -3557,25 +3557,39 @@
4388 :try_start_27
4389 invoke-interface/range {v3 .. v9}, Landroid/content/IContentProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;
4390 - :try_end_2a
4391 - .catchall {:try_start_27 .. :try_end_2a} :catchall_b9
4392 - .catch Landroid/os/DeadObjectException; {:try_start_27 .. :try_end_2a} :catch_3e
4393 - .catch Landroid/os/RemoteException; {:try_start_27 .. :try_end_2a} :catch_a6
4395 move-result-object v19
4397 - :goto_2b
4398 - if-nez v19, :cond_6c
4399 + move-object/from16 v0, p0
4401 + iget-object v4, v0, Landroid/content/ContentResolver;->mContext:Landroid/content/Context;
4403 + move-object/from16 v0, p1
4405 + move-object/from16 v1, p2
4407 + move-object/from16 v2, v19
4409 + 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;
4410 + :try_end_38
4411 + .catchall {:try_start_27 .. :try_end_38} :catchall_d5
4412 + .catch Landroid/os/DeadObjectException; {:try_start_27 .. :try_end_38} :catch_4c
4413 + .catch Landroid/os/RemoteException; {:try_start_27 .. :try_end_38} :catch_c2
4415 + move-result-object v19
4417 + :goto_39
4418 + if-nez v19, :cond_88
4420 const/16 v22, 0x0
4422 - if-eqz v3, :cond_36
4423 + if-eqz v3, :cond_44
4425 move-object/from16 v0, p0
4427 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4429 - :cond_36
4430 + :cond_44
4431 if-eqz v10, :cond_8
4433 move-object/from16 v0, p0
4434 @@ -3584,32 +3598,32 @@
4436 goto :goto_8
4438 - :catch_3e
4439 + :catch_4c
4440 move-exception v18
4442 - :try_start_3f
4443 + :try_start_4d
4444 move-object/from16 v0, p0
4446 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->unstableProviderDied(Landroid/content/IContentProvider;)V
4448 invoke-virtual/range {p0 .. p1}, Landroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
4449 - :try_end_47
4450 - .catchall {:try_start_3f .. :try_end_47} :catchall_b9
4451 - .catch Landroid/os/RemoteException; {:try_start_3f .. :try_end_47} :catch_a6
4452 + :try_end_55
4453 + .catchall {:try_start_4d .. :try_end_55} :catchall_d5
4454 + .catch Landroid/os/RemoteException; {:try_start_4d .. :try_end_55} :catch_c2
4456 move-result-object v10
4458 - if-nez v10, :cond_5b
4459 + if-nez v10, :cond_69
4461 const/16 v22, 0x0
4463 - if-eqz v3, :cond_53
4464 + if-eqz v3, :cond_61
4466 move-object/from16 v0, p0
4468 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4470 - :cond_53
4471 + :cond_61
4472 if-eqz v10, :cond_8
4474 move-object/from16 v0, p0
4475 @@ -3618,7 +3632,7 @@
4477 goto :goto_8
4479 - :cond_5b
4480 + :cond_69
4481 move-object/from16 v11, p1
4483 move-object/from16 v12, p2
4484 @@ -3631,14 +3645,28 @@
4486 move-object/from16 v16, v9
4488 - :try_start_67
4489 + :try_start_75
4490 invoke-interface/range {v10 .. v16}, Landroid/content/IContentProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;
4492 move-result-object v19
4494 - goto :goto_2b
4495 + move-object/from16 v0, p0
4497 + iget-object v4, v0, Landroid/content/ContentResolver;->mContext:Landroid/content/Context;
4499 + move-object/from16 v0, p1
4501 + move-object/from16 v1, p2
4503 + move-object/from16 v2, v19
4505 + 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;
4507 + move-result-object v19
4509 + goto :goto_39
4511 - :cond_6c
4512 + :cond_88
4513 invoke-interface/range {v19 .. v19}, Landroid/database/Cursor;->getCount()I
4515 invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
4516 @@ -3661,11 +3689,11 @@
4518 new-instance v22, Landroid/content/ContentResolver$CursorWrapperInner;
4520 - if-eqz v10, :cond_a1
4521 + if-eqz v10, :cond_bd
4523 move-object v4, v10
4525 - :goto_87
4526 + :goto_a3
4527 move-object/from16 v0, v22
4529 move-object/from16 v1, p0
4530 @@ -3673,19 +3701,19 @@
4531 move-object/from16 v2, v19
4533 invoke-direct {v0, v1, v2, v4}, Landroid/content/ContentResolver$CursorWrapperInner;-><init>(Landroid/content/ContentResolver;Landroid/database/Cursor;Landroid/content/IContentProvider;)V
4534 - :try_end_90
4535 - .catchall {:try_start_67 .. :try_end_90} :catchall_b9
4536 - .catch Landroid/os/RemoteException; {:try_start_67 .. :try_end_90} :catch_a6
4537 + :try_end_ac
4538 + .catchall {:try_start_75 .. :try_end_ac} :catchall_d5
4539 + .catch Landroid/os/RemoteException; {:try_start_75 .. :try_end_ac} :catch_c2
4541 const/4 v10, 0x0
4543 - if-eqz v3, :cond_98
4544 + if-eqz v3, :cond_b4
4546 move-object/from16 v0, p0
4548 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4550 - :cond_98
4551 + :cond_b4
4552 if-eqz v10, :cond_8
4554 move-object/from16 v0, p0
4555 @@ -3694,29 +3722,29 @@
4557 goto/16 :goto_8
4559 - :cond_a1
4560 - :try_start_a1
4561 + :cond_bd
4562 + :try_start_bd
4563 invoke-virtual/range {p0 .. p1}, Landroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
4564 - :try_end_a4
4565 - .catchall {:try_start_a1 .. :try_end_a4} :catchall_b9
4566 - .catch Landroid/os/RemoteException; {:try_start_a1 .. :try_end_a4} :catch_a6
4567 + :try_end_c0
4568 + .catchall {:try_start_bd .. :try_end_c0} :catchall_d5
4569 + .catch Landroid/os/RemoteException; {:try_start_bd .. :try_end_c0} :catch_c2
4571 move-result-object v4
4573 - goto :goto_87
4574 + goto :goto_a3
4576 - :catch_a6
4577 + :catch_c2
4578 move-exception v18
4580 const/16 v22, 0x0
4582 - if-eqz v3, :cond_b0
4583 + if-eqz v3, :cond_cc
4585 move-object/from16 v0, p0
4587 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4589 - :cond_b0
4590 + :cond_cc
4591 if-eqz v10, :cond_8
4593 move-object/from16 v0, p0
4594 @@ -3725,23 +3753,23 @@
4596 goto/16 :goto_8
4598 - :catchall_b9
4599 + :catchall_d5
4600 move-exception v4
4602 - if-eqz v3, :cond_c1
4603 + if-eqz v3, :cond_dd
4605 move-object/from16 v0, p0
4607 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4609 - :cond_c1
4610 - if-eqz v10, :cond_c8
4611 + :cond_dd
4612 + if-eqz v10, :cond_e4
4614 move-object/from16 v0, p0
4616 invoke-virtual {v0, v10}, Landroid/content/ContentResolver;->releaseProvider(Landroid/content/IContentProvider;)Z
4618 - :cond_c8
4619 + :cond_e4
4620 throw v4
4621 .end method
4623 diff -Npru stock-framework/smali/android/content/CursorLoader.smali opd-framework/smali/android/content/CursorLoader.smali
4624 --- stock-framework/smali/android/content/CursorLoader.smali 2013-01-21 12:55:57.449786212 -0600
4625 +++ opd-framework/smali/android/content/CursorLoader.smali 2013-01-20 23:05:44.627713571 -0600
4626 @@ -225,7 +225,7 @@
4628 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4630 - const-string v0, "mSortOrder="
4631 + const-string/jumbo v0, "mSortOrder="
4633 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4635 diff -Npru stock-framework/smali/android/content/Loader.smali opd-framework/smali/android/content/Loader.smali
4636 --- stock-framework/smali/android/content/Loader.smali 2013-01-21 12:55:57.417802614 -0600
4637 +++ opd-framework/smali/android/content/Loader.smali 2013-01-20 23:05:44.587714074 -0600
4638 @@ -191,7 +191,7 @@
4640 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4642 - const-string v0, "mStarted="
4643 + const-string/jumbo v0, "mStarted="
4645 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4647 diff -Npru stock-framework/smali/android/hardware/Camera$EventHandler.smali opd-framework/smali/android/hardware/Camera$EventHandler.smali
4648 --- stock-framework/smali/android/hardware/Camera$EventHandler.smali 2013-01-21 12:55:57.941534026 -0600
4649 +++ opd-framework/smali/android/hardware/Camera$EventHandler.smali 2013-01-20 23:05:45.143707084 -0600
4650 @@ -36,418 +36,644 @@
4652 # virtual methods
4653 .method public handleMessage(Landroid/os/Message;)V
4654 - .registers 9
4655 + .registers 16
4657 - const/4 v3, 0x1
4658 + const/4 v7, 0x1
4660 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4662 + #getter for: Landroid/hardware/Camera;->privacyMode:Z
4663 + invoke-static {v0}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Z
4665 + move-result v0
4667 + if-nez v0, :cond_e
4669 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4671 + #calls: Landroid/hardware/Camera;->initiate()V
4672 + invoke-static {v0}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)V
4674 + :cond_e
4675 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4677 + #calls: Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
4678 + invoke-static {v0}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)[Ljava/lang/String;
4680 + move-result-object v10
4682 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4684 + #calls: Landroid/hardware/Camera;->checkIfPackagesAllowed()I
4685 + invoke-static {v0}, Landroid/hardware/Camera;->access$300(Landroid/hardware/Camera;)I
4687 + move-result v0
4689 + const/4 v1, -0x2
4691 + if-ne v0, v1, :cond_68
4693 + const/4 v7, 0x0
4695 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4697 + const/4 v1, 0x0
4699 + #calls: Landroid/hardware/Camera;->dataAccess(Z)V
4700 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;Z)V
4702 + if-eqz v10, :cond_48
4704 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4706 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4707 + invoke-static {v0}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4709 + move-result-object v0
4711 + const/4 v1, 0x0
4713 + aget-object v1, v10, v1
4715 const/4 v2, 0x0
4717 - iget v4, p1, Landroid/os/Message;->what:I
4718 + const/4 v3, 0x1
4720 + const-string v4, "camera"
4722 + const/4 v5, 0x0
4724 + iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4726 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4727 + invoke-static {v6}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4729 + move-result-object v6
4731 + const/4 v12, 0x0
4733 + aget-object v12, v10, v12
4735 + invoke-static {}, Landroid/os/Process;->myUid()I
4737 + move-result v13
4739 + invoke-virtual {v6, v12, v13}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
4741 - sparse-switch v4, :sswitch_data_158
4742 + move-result-object v6
4744 - const-string v3, "Camera"
4745 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
4747 - new-instance v4, Ljava/lang/StringBuilder;
4748 + :cond_48
4749 + :goto_48
4750 + iget v0, p1, Landroid/os/Message;->what:I
4752 - invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4753 + sparse-switch v0, :sswitch_data_218
4755 - const-string v5, "Unknown message type "
4756 + const-string v0, "Camera"
4758 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4759 + new-instance v1, Ljava/lang/StringBuilder;
4761 - move-result-object v4
4762 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
4764 - iget v5, p1, Landroid/os/Message;->what:I
4765 + const-string v2, "Unknown message type "
4767 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4768 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4770 - move-result-object v4
4771 + move-result-object v1
4773 + iget v2, p1, Landroid/os/Message;->what:I
4775 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4777 + move-result-object v1
4779 - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4780 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4782 - move-result-object v4
4783 + move-result-object v1
4785 - invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
4786 + invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
4788 - :cond_21
4789 - :goto_21
4790 + :cond_67
4791 + :goto_67
4792 return-void
4794 - :sswitch_22
4795 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4796 + :cond_68
4797 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4799 + const/4 v1, 0x1
4801 + #calls: Landroid/hardware/Camera;->dataAccess(Z)V
4802 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;Z)V
4804 + if-eqz v10, :cond_48
4806 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4808 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4809 + invoke-static {v0}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4811 + move-result-object v0
4813 + const/4 v1, 0x0
4815 + aget-object v1, v10, v1
4817 + const/4 v2, 0x0
4819 + const/4 v3, 0x0
4821 + const-string v4, "camera"
4823 + const/4 v5, 0x0
4825 + iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4827 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4828 + invoke-static {v6}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4830 + move-result-object v6
4832 + const/4 v12, 0x0
4834 + aget-object v12, v10, v12
4836 + invoke-static {}, Landroid/os/Process;->myUid()I
4838 + move-result v13
4840 + invoke-virtual {v6, v12, v13}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
4842 + move-result-object v6
4844 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
4846 + goto :goto_48
4848 + :sswitch_93
4849 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4851 #getter for: Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
4852 - invoke-static {v3}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4853 + invoke-static {v0}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4855 - move-result-object v3
4856 + move-result-object v0
4858 - if-eqz v3, :cond_21
4859 + if-eqz v0, :cond_67
4861 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4862 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4864 #getter for: Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
4865 - invoke-static {v3}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4866 + invoke-static {v0}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4868 - move-result-object v3
4869 + move-result-object v0
4871 - invoke-interface {v3}, Landroid/hardware/Camera$ShutterCallback;->onShutter()V
4872 + invoke-interface {v0}, Landroid/hardware/Camera$ShutterCallback;->onShutter()V
4874 - goto :goto_21
4875 + goto :goto_67
4877 - :sswitch_34
4878 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4879 + :sswitch_a5
4880 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4882 #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
4883 - invoke-static {v3}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4884 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4886 + move-result-object v0
4888 - move-result-object v3
4889 + if-eqz v0, :cond_67
4891 - if-eqz v3, :cond_21
4892 + if-eqz v7, :cond_c1
4894 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4895 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4897 #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
4898 - invoke-static {v3}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4899 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4901 - move-result-object v4
4902 + move-result-object v1
4904 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4905 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4907 - check-cast v3, [B
4908 + check-cast v0, [B
4910 - check-cast v3, [B
4911 + check-cast v0, [B
4913 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4914 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4916 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4917 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4919 - goto :goto_21
4920 + goto :goto_67
4922 - :sswitch_4e
4923 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4924 + :cond_c1
4925 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4927 + #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
4928 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4930 + move-result-object v0
4932 + const/4 v1, 0x0
4934 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4936 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4938 + goto :goto_67
4940 + :sswitch_ce
4941 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4943 #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
4944 - invoke-static {v3}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4945 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4947 - move-result-object v3
4948 + move-result-object v0
4950 - if-eqz v3, :cond_21
4951 + if-eqz v0, :cond_67
4953 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4954 + if-eqz v7, :cond_eb
4956 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4958 #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
4959 - invoke-static {v3}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4960 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4962 - move-result-object v4
4963 + move-result-object v1
4965 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4966 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4968 - check-cast v3, [B
4969 + check-cast v0, [B
4971 - check-cast v3, [B
4972 + check-cast v0, [B
4974 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4975 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4977 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4978 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4980 - goto :goto_21
4981 + goto/16 :goto_67
4983 - :sswitch_68
4984 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4985 + :cond_eb
4986 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4988 - #getter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
4989 - invoke-static {v4}, Landroid/hardware/Camera;->access$300(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
4990 + #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
4991 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4993 + move-result-object v0
4995 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4997 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
4998 + invoke-static {v1}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5000 move-result-object v1
5002 - if-eqz v1, :cond_21
5003 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5005 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5007 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5008 + goto/16 :goto_67
5010 + :sswitch_fe
5011 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5013 + #getter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5014 + invoke-static {v0}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5016 + move-result-object v9
5018 + if-eqz v9, :cond_67
5020 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5022 #getter for: Landroid/hardware/Camera;->mOneShot:Z
5023 - invoke-static {v4}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;)Z
5024 + invoke-static {v0}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Z
5026 - move-result v4
5027 + move-result v0
5029 - if-eqz v4, :cond_8a
5030 + if-eqz v0, :cond_123
5032 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5033 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5035 - const/4 v4, 0x0
5036 + const/4 v1, 0x0
5038 #setter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5039 - invoke-static {v3, v4}, Landroid/hardware/Camera;->access$302(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5040 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$1002(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5042 + :cond_114
5043 + :goto_114
5044 + if-eqz v7, :cond_133
5046 - :cond_7e
5047 - :goto_7e
5048 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5049 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5051 - check-cast v3, [B
5052 + check-cast v0, [B
5054 - check-cast v3, [B
5055 + check-cast v0, [B
5057 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5058 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5060 - invoke-interface {v1, v3, v4}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5061 + invoke-interface {v9, v0, v1}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5063 - goto :goto_21
5064 + goto/16 :goto_67
5066 - :cond_8a
5067 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5068 + :cond_123
5069 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5071 #getter for: Landroid/hardware/Camera;->mWithBuffer:Z
5072 - invoke-static {v4}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Z
5073 + invoke-static {v0}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Z
5075 + move-result v0
5077 + if-nez v0, :cond_114
5079 - move-result v4
5080 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5082 - if-nez v4, :cond_7e
5083 + const/4 v1, 0x1
5085 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5086 + const/4 v2, 0x0
5088 #calls: Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5089 - invoke-static {v4, v3, v2}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;ZZ)V
5090 + invoke-static {v0, v1, v2}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;ZZ)V
5092 + goto :goto_114
5094 + :cond_133
5095 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5097 - goto :goto_7e
5098 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5099 + invoke-static {v0}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5101 + move-result-object v0
5103 - :sswitch_98
5104 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5105 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5107 + invoke-interface {v9, v0, v1}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5109 + goto/16 :goto_67
5111 + :sswitch_140
5112 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5114 #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5115 - invoke-static {v3}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5116 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5118 - move-result-object v3
5119 + move-result-object v0
5121 - if-eqz v3, :cond_21
5122 + if-eqz v0, :cond_67
5124 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5125 + if-eqz v7, :cond_15d
5127 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5129 #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5130 - invoke-static {v3}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5131 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5133 - move-result-object v4
5134 + move-result-object v1
5136 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5137 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5139 - check-cast v3, [B
5140 + check-cast v0, [B
5142 - check-cast v3, [B
5143 + check-cast v0, [B
5145 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5146 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5148 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5149 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5151 - goto/16 :goto_21
5152 + goto/16 :goto_67
5154 - :sswitch_b3
5155 - const/4 v0, 0x0
5156 + :cond_15d
5157 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5159 + #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5160 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5162 + move-result-object v0
5164 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5166 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5167 + invoke-static {v1}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5169 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5170 + move-result-object v1
5172 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5174 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5176 + goto/16 :goto_67
5178 + :sswitch_170
5179 + const/4 v8, 0x0
5181 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5183 #getter for: Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5184 - invoke-static {v4}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Ljava/lang/Object;
5185 + invoke-static {v0}, Landroid/hardware/Camera;->access$1500(Landroid/hardware/Camera;)Ljava/lang/Object;
5187 - move-result-object v4
5188 + move-result-object v1
5190 - monitor-enter v4
5191 + monitor-enter v1
5193 - :try_start_bb
5194 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5195 + :try_start_178
5196 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5198 #getter for: Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5199 - invoke-static {v5}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5200 + invoke-static {v0}, Landroid/hardware/Camera;->access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5202 - move-result-object v0
5203 + move-result-object v8
5205 - monitor-exit v4
5206 - :try_end_c2
5207 - .catchall {:try_start_bb .. :try_end_c2} :catchall_cf
5208 + monitor-exit v1
5209 + :try_end_17f
5210 + .catchall {:try_start_178 .. :try_end_17f} :catchall_18d
5212 - if-eqz v0, :cond_21
5213 + if-eqz v8, :cond_67
5215 - iget v4, p1, Landroid/os/Message;->arg1:I
5216 + iget v0, p1, Landroid/os/Message;->arg1:I
5218 - if-nez v4, :cond_d2
5219 + if-nez v0, :cond_190
5221 - :goto_c8
5222 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5223 + const/4 v11, 0x0
5225 - invoke-interface {v0, v2, v3}, Landroid/hardware/Camera$AutoFocusCallback;->onAutoFocus(ZLandroid/hardware/Camera;)V
5226 + :goto_186
5227 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5229 - goto/16 :goto_21
5230 + invoke-interface {v8, v11, v0}, Landroid/hardware/Camera$AutoFocusCallback;->onAutoFocus(ZLandroid/hardware/Camera;)V
5232 - :catchall_cf
5233 - move-exception v3
5234 + goto/16 :goto_67
5236 - :try_start_d0
5237 - monitor-exit v4
5238 - :try_end_d1
5239 - .catchall {:try_start_d0 .. :try_end_d1} :catchall_cf
5240 + :catchall_18d
5241 + move-exception v0
5243 - throw v3
5244 + :try_start_18e
5245 + monitor-exit v1
5246 + :try_end_18f
5247 + .catchall {:try_start_18e .. :try_end_18f} :catchall_18d
5249 - :cond_d2
5250 - move v2, v3
5251 + throw v0
5253 - goto :goto_c8
5254 + :cond_190
5255 + const/4 v11, 0x1
5257 - :sswitch_d4
5258 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5259 + goto :goto_186
5261 + :sswitch_192
5262 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5264 #getter for: Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5265 - invoke-static {v4}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5266 + invoke-static {v0}, Landroid/hardware/Camera;->access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5268 - move-result-object v4
5269 + move-result-object v0
5271 - if-eqz v4, :cond_21
5272 + if-eqz v0, :cond_67
5274 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5275 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5277 #getter for: Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5278 - invoke-static {v4}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5279 + invoke-static {v0}, Landroid/hardware/Camera;->access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5281 - move-result-object v4
5282 + move-result-object v1
5284 - iget v5, p1, Landroid/os/Message;->arg1:I
5285 + iget v2, p1, Landroid/os/Message;->arg1:I
5287 - iget v6, p1, Landroid/os/Message;->arg2:I
5288 + iget v0, p1, Landroid/os/Message;->arg2:I
5290 - if-eqz v6, :cond_ef
5291 + if-eqz v0, :cond_1ae
5293 - :goto_e8
5294 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5295 + const/4 v0, 0x1
5297 - invoke-interface {v4, v5, v3, v6}, Landroid/hardware/Camera$OnZoomChangeListener;->onZoomChange(IZLandroid/hardware/Camera;)V
5298 + :goto_1a7
5299 + iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5301 - goto/16 :goto_21
5302 + invoke-interface {v1, v2, v0, v3}, Landroid/hardware/Camera$OnZoomChangeListener;->onZoomChange(IZLandroid/hardware/Camera;)V
5304 - :cond_ef
5305 - move v3, v2
5306 + goto/16 :goto_67
5308 - goto :goto_e8
5309 + :cond_1ae
5310 + const/4 v0, 0x0
5312 - :sswitch_f1
5313 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5314 + goto :goto_1a7
5316 + :sswitch_1b0
5317 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5319 #getter for: Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5320 - invoke-static {v3}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5321 + invoke-static {v0}, Landroid/hardware/Camera;->access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5323 - move-result-object v3
5324 + move-result-object v0
5326 - if-eqz v3, :cond_21
5327 + if-eqz v0, :cond_67
5329 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5330 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5332 #getter for: Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5333 - invoke-static {v3}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5334 + invoke-static {v0}, Landroid/hardware/Camera;->access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5336 - move-result-object v4
5337 + move-result-object v1
5339 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5340 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5342 - check-cast v3, [Landroid/hardware/Camera$Face;
5343 + check-cast v0, [Landroid/hardware/Camera$Face;
5345 - check-cast v3, [Landroid/hardware/Camera$Face;
5346 + check-cast v0, [Landroid/hardware/Camera$Face;
5348 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5349 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5351 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$FaceDetectionListener;->onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V
5352 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$FaceDetectionListener;->onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V
5354 - goto/16 :goto_21
5355 + goto/16 :goto_67
5357 - :sswitch_10c
5358 - const-string v3, "Camera"
5359 + :sswitch_1cb
5360 + const-string v0, "Camera"
5362 - new-instance v4, Ljava/lang/StringBuilder;
5363 + new-instance v1, Ljava/lang/StringBuilder;
5365 - invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
5366 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
5368 - const-string v5, "Error "
5369 + const-string v2, "Error "
5371 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5372 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5374 - move-result-object v4
5375 + move-result-object v1
5377 - iget v5, p1, Landroid/os/Message;->arg1:I
5378 + iget v2, p1, Landroid/os/Message;->arg1:I
5380 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5381 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5383 - move-result-object v4
5384 + move-result-object v1
5386 - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5387 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5389 - move-result-object v4
5390 + move-result-object v1
5392 - invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5393 + invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5395 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5396 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5398 #getter for: Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5399 - invoke-static {v3}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5400 + invoke-static {v0}, Landroid/hardware/Camera;->access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5402 - move-result-object v3
5403 + move-result-object v0
5405 - if-eqz v3, :cond_21
5406 + if-eqz v0, :cond_67
5408 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5409 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5411 #getter for: Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5412 - invoke-static {v3}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5413 + invoke-static {v0}, Landroid/hardware/Camera;->access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5415 - move-result-object v3
5416 + move-result-object v0
5418 - iget v4, p1, Landroid/os/Message;->arg1:I
5419 + iget v1, p1, Landroid/os/Message;->arg1:I
5421 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5422 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5424 - invoke-interface {v3, v4, v5}, Landroid/hardware/Camera$ErrorCallback;->onError(ILandroid/hardware/Camera;)V
5425 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$ErrorCallback;->onError(ILandroid/hardware/Camera;)V
5427 - goto/16 :goto_21
5428 + goto/16 :goto_67
5430 - :sswitch_13d
5431 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5432 + :sswitch_1fc
5433 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5435 #getter for: Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5436 - invoke-static {v4}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5437 + invoke-static {v0}, Landroid/hardware/Camera;->access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5439 - move-result-object v4
5440 + move-result-object v0
5442 - if-eqz v4, :cond_21
5443 + if-eqz v0, :cond_67
5445 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5446 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5448 #getter for: Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5449 - invoke-static {v4}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5450 + invoke-static {v0}, Landroid/hardware/Camera;->access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5452 - move-result-object v4
5453 + move-result-object v1
5455 - iget v5, p1, Landroid/os/Message;->arg1:I
5456 + iget v0, p1, Landroid/os/Message;->arg1:I
5458 - if-nez v5, :cond_156
5459 + if-nez v0, :cond_216
5461 - :goto_14f
5462 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5463 + const/4 v0, 0x0
5465 + :goto_20f
5466 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5468 - invoke-interface {v4, v2, v3}, Landroid/hardware/Camera$AutoFocusMoveCallback;->onAutoFocusMoving(ZLandroid/hardware/Camera;)V
5469 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$AutoFocusMoveCallback;->onAutoFocusMoving(ZLandroid/hardware/Camera;)V
5471 - goto/16 :goto_21
5472 + goto/16 :goto_67
5474 - :cond_156
5475 - move v2, v3
5476 + :cond_216
5477 + const/4 v0, 0x1
5479 - goto :goto_14f
5480 + goto :goto_20f
5482 - :sswitch_data_158
5483 + :sswitch_data_218
5484 .sparse-switch
5485 - 0x1 -> :sswitch_10c
5486 - 0x2 -> :sswitch_22
5487 - 0x4 -> :sswitch_b3
5488 - 0x8 -> :sswitch_d4
5489 - 0x10 -> :sswitch_68
5490 - 0x40 -> :sswitch_98
5491 - 0x80 -> :sswitch_34
5492 - 0x100 -> :sswitch_4e
5493 - 0x400 -> :sswitch_f1
5494 - 0x800 -> :sswitch_13d
5495 + 0x1 -> :sswitch_1cb
5496 + 0x2 -> :sswitch_93
5497 + 0x4 -> :sswitch_170
5498 + 0x8 -> :sswitch_192
5499 + 0x10 -> :sswitch_fe
5500 + 0x40 -> :sswitch_140
5501 + 0x80 -> :sswitch_a5
5502 + 0x100 -> :sswitch_ce
5503 + 0x400 -> :sswitch_1b0
5504 + 0x800 -> :sswitch_1fc
5505 .end sparse-switch
5506 .end method
5507 diff -Npru stock-framework/smali/android/hardware/Camera.smali opd-framework/smali/android/hardware/Camera.smali
5508 --- stock-framework/smali/android/hardware/Camera.smali 2013-01-21 12:55:57.945531975 -0600
5509 +++ opd-framework/smali/android/hardware/Camera.smali 2013-01-20 23:05:45.151706984 -0600
5510 @@ -62,10 +62,20 @@
5512 .field private static final CAMERA_MSG_ZOOM:I = 0x8
5514 +.field private static final GOT_ERROR:I = -0x3
5516 +.field private static final IS_ALLOWED:I = -0x1
5518 +.field private static final IS_NOT_ALLOWED:I = -0x2
5520 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,Camera"
5522 .field private static final TAG:Ljava/lang/String; = "Camera"
5525 # instance fields
5526 +.field private context:Landroid/content/Context;
5528 .field private mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5530 .field private mAutoFocusCallbackLock:Ljava/lang/Object;
5531 @@ -86,6 +96,8 @@
5533 .field private mOneShot:Z
5535 +.field private mPm:Landroid/content/pm/IPackageManager;
5537 .field private mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5539 .field private mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5540 @@ -98,16 +110,20 @@
5542 .field private mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5544 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
5546 +.field private privacyMode:Z
5549 # direct methods
5550 .method constructor <init>()V
5551 - .registers 2
5552 + .registers 3
5554 - invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5555 + const/4 v1, 0x0
5557 - const/4 v0, 0x0
5558 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5560 - iput-boolean v0, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5561 + iput-boolean v1, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5563 new-instance v0, Ljava/lang/Object;
5565 @@ -115,19 +131,21 @@
5567 iput-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5569 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
5571 return-void
5572 .end method
5574 .method constructor <init>(I)V
5575 - .registers 5
5576 + .registers 6
5578 + const/4 v3, 0x0
5580 const/4 v2, 0x0
5582 invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5584 - const/4 v1, 0x0
5586 - iput-boolean v1, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5587 + iput-boolean v3, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5589 new-instance v1, Ljava/lang/Object;
5591 @@ -135,6 +153,8 @@
5593 iput-object v1, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5595 + iput-boolean v3, p0, Landroid/hardware/Camera;->privacyMode:Z
5597 iput-object v2, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5599 iput-object v2, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5600 @@ -147,11 +167,13 @@
5602 iput-object v2, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5604 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
5606 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
5608 move-result-object v0
5610 - if-eqz v0, :cond_30
5611 + if-eqz v0, :cond_35
5613 new-instance v1, Landroid/hardware/Camera$EventHandler;
5615 @@ -159,7 +181,7 @@
5617 iput-object v1, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5619 - :goto_27
5620 + :goto_2c
5621 new-instance v1, Ljava/lang/ref/WeakReference;
5623 invoke-direct {v1, p0}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
5624 @@ -168,12 +190,12 @@
5626 return-void
5628 - :cond_30
5629 + :cond_35
5630 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
5632 move-result-object v0
5634 - if-eqz v0, :cond_3e
5635 + if-eqz v0, :cond_43
5637 new-instance v1, Landroid/hardware/Camera$EventHandler;
5639 @@ -181,12 +203,12 @@
5641 iput-object v1, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5643 - goto :goto_27
5644 + goto :goto_2c
5646 - :cond_3e
5647 + :cond_43
5648 iput-object v2, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5650 - goto :goto_27
5651 + goto :goto_2c
5652 .end method
5654 .method private final native _addCallbackBuffer([BI)V
5655 @@ -207,122 +229,184 @@
5656 .method private final native _stopPreview()V
5657 .end method
5659 -.method static synthetic access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5660 +.method static synthetic access$000(Landroid/hardware/Camera;)Z
5661 .registers 2
5663 - iget-object v0, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5664 + iget-boolean v0, p0, Landroid/hardware/Camera;->privacyMode:Z
5666 - return-object v0
5667 + return v0
5668 .end method
5670 -.method static synthetic access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5671 +.method static synthetic access$100(Landroid/hardware/Camera;)V
5672 + .registers 1
5674 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
5676 + return-void
5677 +.end method
5679 +.method static synthetic access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5680 .registers 2
5682 - iget-object v0, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5683 + iget-object v0, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5685 return-object v0
5686 .end method
5688 -.method static synthetic access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5689 +.method static synthetic access$1002(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5690 .registers 2
5692 - iget-object v0, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5693 + iput-object p1, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5695 + return-object p1
5696 +.end method
5698 +.method static synthetic access$1100(Landroid/hardware/Camera;)Z
5699 + .registers 2
5701 + iget-boolean v0, p0, Landroid/hardware/Camera;->mOneShot:Z
5703 + return v0
5704 +.end method
5706 +.method static synthetic access$1200(Landroid/hardware/Camera;)Z
5707 + .registers 2
5709 + iget-boolean v0, p0, Landroid/hardware/Camera;->mWithBuffer:Z
5711 + return v0
5712 +.end method
5714 +.method static synthetic access$1300(Landroid/hardware/Camera;ZZ)V
5715 + .registers 3
5717 + invoke-direct {p0, p1, p2}, Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5719 + return-void
5720 +.end method
5722 +.method static synthetic access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5723 + .registers 2
5725 + iget-object v0, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5727 return-object v0
5728 .end method
5730 -.method static synthetic access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5731 +.method static synthetic access$1500(Landroid/hardware/Camera;)Ljava/lang/Object;
5732 .registers 2
5734 - iget-object v0, p0, Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5735 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5737 return-object v0
5738 .end method
5740 -.method static synthetic access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5741 +.method static synthetic access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5742 .registers 2
5744 - iget-object v0, p0, Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5745 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5747 return-object v0
5748 .end method
5750 -.method static synthetic access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5751 +.method static synthetic access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5752 .registers 2
5754 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5755 + iget-object v0, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5757 return-object v0
5758 .end method
5760 -.method static synthetic access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5761 +.method static synthetic access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5762 .registers 2
5764 - iget-object v0, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5765 + iget-object v0, p0, Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5767 return-object v0
5768 .end method
5770 -.method static synthetic access$300(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5771 +.method static synthetic access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5772 .registers 2
5774 - iget-object v0, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5775 + iget-object v0, p0, Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5777 return-object v0
5778 .end method
5780 -.method static synthetic access$302(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5781 +.method static synthetic access$200(Landroid/hardware/Camera;)[Ljava/lang/String;
5782 .registers 2
5784 - iput-object p1, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5785 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
5787 - return-object p1
5788 + move-result-object v0
5790 + return-object v0
5791 .end method
5793 -.method static synthetic access$400(Landroid/hardware/Camera;)Z
5794 +.method static synthetic access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5795 .registers 2
5797 - iget-boolean v0, p0, Landroid/hardware/Camera;->mOneShot:Z
5798 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5800 - return v0
5801 + return-object v0
5802 .end method
5804 -.method static synthetic access$500(Landroid/hardware/Camera;)Z
5805 +.method static synthetic access$300(Landroid/hardware/Camera;)I
5806 .registers 2
5808 - iget-boolean v0, p0, Landroid/hardware/Camera;->mWithBuffer:Z
5809 + invoke-direct {p0}, Landroid/hardware/Camera;->checkIfPackagesAllowed()I
5811 + move-result v0
5813 return v0
5814 .end method
5816 -.method static synthetic access$600(Landroid/hardware/Camera;ZZ)V
5817 - .registers 3
5818 +.method static synthetic access$400(Landroid/hardware/Camera;Z)V
5819 + .registers 2
5821 - invoke-direct {p0, p1, p2}, Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5822 + invoke-direct {p0, p1}, Landroid/hardware/Camera;->dataAccess(Z)V
5824 return-void
5825 .end method
5827 +.method static synthetic access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
5828 + .registers 2
5830 + iget-object v0, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5832 + return-object v0
5833 +.end method
5835 +.method static synthetic access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5836 + .registers 2
5838 + iget-object v0, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5840 + return-object v0
5841 +.end method
5843 .method static synthetic access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5844 .registers 2
5846 - iget-object v0, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5847 + iget-object v0, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5849 return-object v0
5850 .end method
5852 -.method static synthetic access$800(Landroid/hardware/Camera;)Ljava/lang/Object;
5853 +.method static synthetic access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5854 .registers 2
5856 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5857 + iget-object v0, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5859 return-object v0
5860 .end method
5862 -.method static synthetic access$900(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5863 +.method static synthetic access$900(Landroid/hardware/Camera;)[B
5864 .registers 2
5866 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5867 + invoke-direct {p0}, Landroid/hardware/Camera;->getFakeImage()[B
5869 + move-result-object v0
5871 return-object v0
5872 .end method
5873 @@ -368,6 +452,205 @@
5874 return-void
5875 .end method
5877 +.method private checkIfPackagesAllowed()I
5878 + .registers 9
5880 + const/4 v5, -0x3
5882 + :try_start_1
5883 + iget-object v6, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5885 + if-eqz v6, :cond_41
5887 + const/4 v2, 0x0
5889 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
5891 + move-result-object v3
5893 + invoke-static {}, Landroid/os/Process;->myUid()I
5895 + move-result v4
5897 + if-eqz v3, :cond_2c
5899 + const/4 v1, 0x0
5901 + :goto_11
5902 + array-length v6, v3
5904 + if-ge v1, v6, :cond_2a
5906 + iget-object v6, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5908 + aget-object v7, v3, v1
5910 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
5912 + move-result-object v2
5914 + if-eqz v2, :cond_26
5916 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
5918 + move-result v6
5920 + if-eqz v6, :cond_26
5922 + const/4 v5, -0x2
5924 + :goto_25
5925 + return v5
5927 + :cond_26
5928 + const/4 v2, 0x0
5930 + add-int/lit8 v1, v1, 0x1
5932 + goto :goto_11
5934 + :cond_2a
5935 + const/4 v5, -0x1
5937 + goto :goto_25
5939 + :cond_2c
5940 + const-string v6, "PM,Camera"
5942 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
5944 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5945 + :try_end_34
5946 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
5948 + goto :goto_25
5950 + :catch_35
5951 + move-exception v0
5953 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
5955 + const-string v6, "PM,Camera"
5957 + const-string v7, "Got exception in checkIfPackagesAllowed"
5959 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5961 + goto :goto_25
5963 + :cond_41
5964 + :try_start_41
5965 + const-string v6, "PM,Camera"
5967 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
5969 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5970 + :try_end_49
5971 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
5973 + goto :goto_25
5974 +.end method
5976 +.method private dataAccess(Z)V
5977 + .registers 7
5979 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
5981 + move-result-object v1
5983 + if-eqz p1, :cond_2f
5985 + if-eqz v1, :cond_2f
5987 + const/4 v0, 0x0
5989 + :goto_9
5990 + array-length v2, v1
5992 + if-ge v0, v2, :cond_58
5994 + const-string v2, "PM,Camera"
5996 + new-instance v3, Ljava/lang/StringBuilder;
5998 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6000 + const-string v4, "Allowed Package: -"
6002 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6004 + move-result-object v3
6006 + aget-object v4, v1, v0
6008 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6010 + move-result-object v3
6012 + const-string v4, "- accessing camera."
6014 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6016 + move-result-object v3
6018 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6020 + move-result-object v3
6022 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6024 + add-int/lit8 v0, v0, 0x1
6026 + goto :goto_9
6028 + :cond_2f
6029 + if-eqz v1, :cond_58
6031 + const/4 v0, 0x0
6033 + :goto_32
6034 + array-length v2, v1
6036 + if-ge v0, v2, :cond_58
6038 + const-string v2, "PM,Camera"
6040 + new-instance v3, Ljava/lang/StringBuilder;
6042 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6044 + const-string v4, "Blocked Package: -"
6046 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6048 + move-result-object v3
6050 + aget-object v4, v1, v0
6052 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6054 + move-result-object v3
6056 + const-string v4, "- accessing camera."
6058 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6060 + move-result-object v3
6062 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6064 + move-result-object v3
6066 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6068 + add-int/lit8 v0, v0, 0x1
6070 + goto :goto_32
6072 + :cond_58
6073 + return-void
6074 +.end method
6076 .method private native enableFocusMoveCallback(I)V
6077 .end method
6079 @@ -433,9 +716,193 @@
6080 return-object v1
6081 .end method
6083 +.method private getFakeImage()[B
6084 + .registers 9
6086 + :try_start_0
6087 + const-string v2, "/system/media/PDroid.jpeg"
6089 + new-instance v5, Ljava/io/File;
6091 + invoke-direct {v5, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
6093 + const/4 v3, 0x0
6095 + new-instance v3, Ljava/io/FileInputStream;
6097 + invoke-direct {v3, v5}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
6099 + invoke-static {v3}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap;
6101 + move-result-object v0
6103 + new-instance v4, Ljava/io/ByteArrayOutputStream;
6105 + invoke-direct {v4}, Ljava/io/ByteArrayOutputStream;-><init>()V
6107 + sget-object v6, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
6109 + const/16 v7, 0x64
6111 + invoke-virtual {v0, v6, v7, v4}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
6113 + invoke-virtual {v4}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
6114 + :try_end_20
6115 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_20} :catch_22
6117 + move-result-object v6
6119 + :goto_21
6120 + return-object v6
6122 + :catch_22
6123 + move-exception v1
6125 + const-string v6, "PM,Camera"
6127 + const-string/jumbo v7, "something went wrong with getting the picture!"
6129 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6131 + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
6133 + const/4 v6, 0x0
6135 + goto :goto_21
6136 +.end method
6138 .method public static native getNumberOfCameras()I
6139 .end method
6141 +.method private getPackageName()[Ljava/lang/String;
6142 + .registers 6
6144 + :try_start_0
6145 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6147 + if-eqz v3, :cond_f
6149 + invoke-static {}, Landroid/os/Process;->myUid()I
6151 + move-result v2
6153 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6155 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6157 + move-result-object v1
6159 + :goto_e
6160 + return-object v1
6162 + :cond_f
6163 + const-string/jumbo v3, "package"
6165 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6167 + move-result-object v3
6169 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6171 + move-result-object v3
6173 + iput-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6175 + invoke-static {}, Landroid/os/Process;->myUid()I
6177 + move-result v2
6179 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6181 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6182 + :try_end_25
6183 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
6185 + move-result-object v1
6187 + goto :goto_e
6189 + :catch_27
6190 + move-exception v0
6192 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6194 + const-string v3, "PM,Camera"
6196 + const-string/jumbo v4, "something went wrong with getting package name"
6198 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6200 + const/4 v1, 0x0
6202 + goto :goto_e
6203 +.end method
6205 +.method private initiate()V
6206 + .registers 5
6208 + const/4 v1, 0x0
6210 + :try_start_1
6211 + iput-object v1, p0, Landroid/hardware/Camera;->context:Landroid/content/Context;
6213 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
6215 + iget-object v2, p0, Landroid/hardware/Camera;->context:Landroid/content/Context;
6217 + const-string/jumbo v3, "privacy"
6219 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6221 + move-result-object v3
6223 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
6225 + move-result-object v3
6227 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
6229 + iput-object v1, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6231 + const-string/jumbo v1, "package"
6233 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6235 + move-result-object v1
6237 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6239 + move-result-object v1
6241 + iput-object v1, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6243 + const/4 v1, 0x1
6245 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6246 + :try_end_27
6247 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
6249 + :goto_27
6250 + return-void
6252 + :catch_28
6253 + move-exception v0
6255 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6257 + const-string v1, "PM,Camera"
6259 + const-string v2, "Something went wrong with initalize variables"
6261 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6263 + const/4 v1, 0x0
6265 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6267 + goto :goto_27
6268 +.end method
6270 .method private final native native_autoFocus()V
6271 .end method
6273 @@ -1018,7 +1485,7 @@
6274 .end method
6276 .method public final takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V
6277 - .registers 7
6278 + .registers 8
6280 iput-object p1, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6282 @@ -1028,36 +1495,62 @@
6284 iput-object p4, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
6286 + iget-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6288 + if-nez v1, :cond_f
6290 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
6292 + :cond_f
6293 + invoke-direct {p0}, Landroid/hardware/Camera;->checkIfPackagesAllowed()I
6295 + move-result v1
6297 + const/4 v2, -0x2
6299 + if-ne v1, v2, :cond_20
6301 + const/4 v1, 0x0
6303 + iput-object v1, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6305 + const-string v1, "PM,Camera"
6307 + const-string v2, "blocked rawImageCallback -> it will never be called!"
6309 + invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6311 + :cond_20
6312 const/4 v0, 0x0
6314 iget-object v1, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6316 - if-eqz v1, :cond_f
6317 + if-eqz v1, :cond_27
6319 or-int/lit8 v0, v0, 0x2
6321 - :cond_f
6322 + :cond_27
6323 iget-object v1, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6325 - if-eqz v1, :cond_15
6326 + if-eqz v1, :cond_2d
6328 or-int/lit16 v0, v0, 0x80
6330 - :cond_15
6331 + :cond_2d
6332 iget-object v1, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
6334 - if-eqz v1, :cond_1b
6335 + if-eqz v1, :cond_33
6337 or-int/lit8 v0, v0, 0x40
6339 - :cond_1b
6340 + :cond_33
6341 iget-object v1, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
6343 - if-eqz v1, :cond_21
6344 + if-eqz v1, :cond_39
6346 or-int/lit16 v0, v0, 0x100
6348 - :cond_21
6349 + :cond_39
6350 invoke-direct {p0, v0}, Landroid/hardware/Camera;->native_takePicture(I)V
6352 const/4 v1, 0x0
6353 diff -Npru stock-framework/smali/android/media/AudioRecord.smali opd-framework/smali/android/media/AudioRecord.smali
6354 --- stock-framework/smali/android/media/AudioRecord.smali 2013-01-21 12:55:58.081462265 -0600
6355 +++ opd-framework/smali/android/media/AudioRecord.smali 2013-01-20 23:05:45.251705725 -0600
6356 @@ -29,10 +29,18 @@
6358 .field public static final ERROR_INVALID_OPERATION:I = -0x3
6360 +.field private static final GOT_ERROR:I = -0x3
6362 +.field private static final IS_ALLOWED:I = -0x1
6364 +.field private static final IS_NOT_ALLOWED:I = -0x2
6366 .field private static final NATIVE_EVENT_MARKER:I = 0x2
6368 .field private static final NATIVE_EVENT_NEW_POS:I = 0x3
6370 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,AudioRecord"
6372 .field public static final RECORDSTATE_RECORDING:I = 0x3
6374 .field public static final RECORDSTATE_STOPPED:I = 0x1
6375 @@ -47,6 +55,8 @@
6378 # instance fields
6379 +.field private context:Landroid/content/Context;
6381 .field private mAudioFormat:I
6383 .field private mChannelConfiguration:I
6384 @@ -65,6 +75,8 @@
6386 .field private mNativeRecorderInJavaObj:I
6388 +.field private mPm:Landroid/content/pm/IPackageManager;
6390 .field private mPositionListener:Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
6392 .field private final mPositionListenerLock:Ljava/lang/Object;
6393 @@ -81,6 +93,10 @@
6395 .field private mState:I
6397 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
6399 +.field private privacyMode:Z
6402 # direct methods
6403 .method public constructor <init>(IIIII)V
6404 @@ -159,6 +175,10 @@
6406 const/4 v0, 0x0
6408 + iput-boolean v0, p0, Landroid/media/AudioRecord;->privacyMode:Z
6410 + const/4 v0, 0x0
6412 iput v0, p0, Landroid/media/AudioRecord;->mState:I
6414 const/4 v0, 0x1
6415 @@ -171,7 +191,7 @@
6417 iput-object v0, p0, Landroid/media/AudioRecord;->mInitializationLooper:Landroid/os/Looper;
6419 - if-nez v0, :cond_4f
6420 + if-nez v0, :cond_52
6422 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
6424 @@ -179,7 +199,7 @@
6426 iput-object v0, p0, Landroid/media/AudioRecord;->mInitializationLooper:Landroid/os/Looper;
6428 - :cond_4f
6429 + :cond_52
6430 invoke-direct {p0, p1, p2, p3, p4}, Landroid/media/AudioRecord;->audioParamCheck(IIII)V
6432 invoke-direct {p0, p5}, Landroid/media/AudioRecord;->audioBuffSizeCheck(I)V
6433 @@ -214,7 +234,7 @@
6435 move-result v8
6437 - if-eqz v8, :cond_8f
6438 + if-eqz v8, :cond_92
6440 new-instance v0, Ljava/lang/StringBuilder;
6442 @@ -242,10 +262,12 @@
6444 invoke-static {v0}, Landroid/media/AudioRecord;->loge(Ljava/lang/String;)V
6446 - :goto_8e
6447 + :goto_91
6448 return-void
6450 - :cond_8f
6451 + :cond_92
6452 + invoke-direct {p0}, Landroid/media/AudioRecord;->initiate()V
6454 const/4 v0, 0x0
6456 aget v0, v7, v0
6457 @@ -256,7 +278,7 @@
6459 iput v0, p0, Landroid/media/AudioRecord;->mState:I
6461 - goto :goto_8e
6462 + goto :goto_91
6463 .end method
6465 .method static synthetic access$000(Landroid/media/AudioRecord;)Ljava/lang/Object;
6466 @@ -481,6 +503,205 @@
6467 .end sparse-switch
6468 .end method
6470 +.method private checkIfPackagesAllowed()I
6471 + .registers 9
6473 + const/4 v5, -0x3
6475 + :try_start_1
6476 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6478 + if-eqz v6, :cond_41
6480 + const/4 v2, 0x0
6482 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6484 + move-result-object v3
6486 + invoke-static {}, Landroid/os/Process;->myUid()I
6488 + move-result v4
6490 + if-eqz v3, :cond_2c
6492 + const/4 v1, 0x0
6494 + :goto_11
6495 + array-length v6, v3
6497 + if-ge v1, v6, :cond_2a
6499 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6501 + aget-object v7, v3, v1
6503 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6505 + move-result-object v2
6507 + if-eqz v2, :cond_26
6509 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
6511 + move-result v6
6513 + if-eqz v6, :cond_26
6515 + const/4 v5, -0x2
6517 + :goto_25
6518 + return v5
6520 + :cond_26
6521 + const/4 v2, 0x0
6523 + add-int/lit8 v1, v1, 0x1
6525 + goto :goto_11
6527 + :cond_2a
6528 + const/4 v5, -0x1
6530 + goto :goto_25
6532 + :cond_2c
6533 + const-string v6, "PM,AudioRecord"
6535 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
6537 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6538 + :try_end_34
6539 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
6541 + goto :goto_25
6543 + :catch_35
6544 + move-exception v0
6546 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6548 + const-string v6, "PM,AudioRecord"
6550 + const-string v7, "Got exception in checkIfPackagesAllowed"
6552 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6554 + goto :goto_25
6556 + :cond_41
6557 + :try_start_41
6558 + const-string v6, "PM,AudioRecord"
6560 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
6562 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6563 + :try_end_49
6564 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
6566 + goto :goto_25
6567 +.end method
6569 +.method private dataAccess(Z)V
6570 + .registers 7
6572 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6574 + move-result-object v1
6576 + if-eqz p1, :cond_2f
6578 + if-eqz v1, :cond_2f
6580 + const/4 v0, 0x0
6582 + :goto_9
6583 + array-length v2, v1
6585 + if-ge v0, v2, :cond_58
6587 + const-string v2, "PM,AudioRecord"
6589 + new-instance v3, Ljava/lang/StringBuilder;
6591 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6593 + const-string v4, "Allowed Package: -"
6595 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6597 + move-result-object v3
6599 + aget-object v4, v1, v0
6601 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6603 + move-result-object v3
6605 + const-string v4, "- accessing microphone."
6607 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6609 + move-result-object v3
6611 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6613 + move-result-object v3
6615 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6617 + add-int/lit8 v0, v0, 0x1
6619 + goto :goto_9
6621 + :cond_2f
6622 + if-eqz v1, :cond_58
6624 + const/4 v0, 0x0
6626 + :goto_32
6627 + array-length v2, v1
6629 + if-ge v0, v2, :cond_58
6631 + const-string v2, "PM,AudioRecord"
6633 + new-instance v3, Ljava/lang/StringBuilder;
6635 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6637 + const-string v4, "Blocked Package: -"
6639 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6641 + move-result-object v3
6643 + aget-object v4, v1, v0
6645 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6647 + move-result-object v3
6649 + const-string v4, "- accessing microphone."
6651 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6653 + move-result-object v3
6655 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6657 + move-result-object v3
6659 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6661 + add-int/lit8 v0, v0, 0x1
6663 + goto :goto_32
6665 + :cond_58
6666 + return-void
6667 +.end method
6669 .method public static getMinBufferSize(III)I
6670 .registers 8
6672 @@ -571,6 +792,135 @@
6673 .end sparse-switch
6674 .end method
6676 +.method private getPackageName()[Ljava/lang/String;
6677 + .registers 6
6679 + :try_start_0
6680 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6682 + if-eqz v3, :cond_f
6684 + invoke-static {}, Landroid/os/Process;->myUid()I
6686 + move-result v2
6688 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6690 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6692 + move-result-object v1
6694 + :goto_e
6695 + return-object v1
6697 + :cond_f
6698 + const-string/jumbo v3, "package"
6700 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6702 + move-result-object v3
6704 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6706 + move-result-object v3
6708 + iput-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6710 + invoke-static {}, Landroid/os/Process;->myUid()I
6712 + move-result v2
6714 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6716 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6717 + :try_end_25
6718 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
6720 + move-result-object v1
6722 + goto :goto_e
6724 + :catch_27
6725 + move-exception v0
6727 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6729 + const-string v3, "PM,AudioRecord"
6731 + const-string/jumbo v4, "something went wrong with getting package name"
6733 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6735 + const/4 v1, 0x0
6737 + goto :goto_e
6738 +.end method
6740 +.method private initiate()V
6741 + .registers 5
6743 + const/4 v1, 0x0
6745 + :try_start_1
6746 + iput-object v1, p0, Landroid/media/AudioRecord;->context:Landroid/content/Context;
6748 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
6750 + iget-object v2, p0, Landroid/media/AudioRecord;->context:Landroid/content/Context;
6752 + const-string/jumbo v3, "privacy"
6754 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6756 + move-result-object v3
6758 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
6760 + move-result-object v3
6762 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
6764 + iput-object v1, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6766 + const-string/jumbo v1, "package"
6768 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6770 + move-result-object v1
6772 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6774 + move-result-object v1
6776 + iput-object v1, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6778 + const/4 v1, 0x1
6780 + iput-boolean v1, p0, Landroid/media/AudioRecord;->privacyMode:Z
6781 + :try_end_27
6782 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
6784 + :goto_27
6785 + return-void
6787 + :catch_28
6788 + move-exception v0
6790 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6792 + const-string v1, "PM,AudioRecord"
6794 + const-string v2, "Something went wrong with initalize variables"
6796 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6798 + const/4 v1, 0x0
6800 + iput-boolean v1, p0, Landroid/media/AudioRecord;->privacyMode:Z
6802 + goto :goto_27
6803 +.end method
6805 .method private static logd(Ljava/lang/String;)V
6806 .registers 4
6808 @@ -1021,19 +1371,68 @@
6809 .end method
6811 .method public startRecording()V
6812 - .registers 4
6813 + .registers 11
6814 .annotation system Ldalvik/annotation/Throws;
6815 value = {
6816 Ljava/lang/IllegalStateException;
6818 .end annotation
6820 + const/4 v5, 0x0
6822 + const/4 v3, 0x1
6824 + const/4 v2, 0x0
6826 + iget-boolean v0, p0, Landroid/media/AudioRecord;->privacyMode:Z
6828 + if-nez v0, :cond_a
6830 + invoke-direct {p0}, Landroid/media/AudioRecord;->initiate()V
6832 + :cond_a
6833 iget v0, p0, Landroid/media/AudioRecord;->mState:I
6835 - const/4 v1, 0x1
6836 + if-ne v0, v3, :cond_15
6838 + invoke-direct {p0}, Landroid/media/AudioRecord;->checkIfPackagesAllowed()I
6840 + move-result v0
6842 + const/4 v1, -0x2
6844 + if-ne v0, v1, :cond_3d
6846 - if-eq v0, v1, :cond_e
6847 + :cond_15
6848 + invoke-direct {p0, v2}, Landroid/media/AudioRecord;->dataAccess(Z)V
6850 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6852 + move-result-object v7
6854 + if-eqz v7, :cond_34
6856 + iget-object v0, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6858 + aget-object v1, v7, v2
6860 + const-string/jumbo v4, "recordAudio"
6862 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6864 + aget-object v8, v7, v2
6866 + invoke-static {}, Landroid/os/Process;->myUid()I
6868 + move-result v9
6870 + invoke-virtual {v6, v8, v9}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6872 + move-result-object v6
6874 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
6876 + :cond_34
6877 new-instance v0, Ljava/lang/IllegalStateException;
6879 const-string/jumbo v1, "startRecording() called on an uninitialized AudioRecord."
6880 @@ -1042,7 +1441,38 @@
6882 throw v0
6884 - :cond_e
6885 + :cond_3d
6886 + invoke-direct {p0, v3}, Landroid/media/AudioRecord;->dataAccess(Z)V
6888 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6890 + move-result-object v7
6892 + if-eqz v7, :cond_5d
6894 + iget-object v0, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6896 + aget-object v1, v7, v2
6898 + const-string/jumbo v4, "recordAudio"
6900 + iget-object v3, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6902 + aget-object v6, v7, v2
6904 + invoke-static {}, Landroid/os/Process;->myUid()I
6906 + move-result v8
6908 + invoke-virtual {v3, v6, v8}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6910 + move-result-object v6
6912 + move v3, v2
6914 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
6916 + :cond_5d
6917 iget-object v1, p0, Landroid/media/AudioRecord;->mRecordingStateLock:Ljava/lang/Object;
6919 monitor-enter v1
6920 @@ -1051,28 +1481,28 @@
6922 const/4 v2, 0x0
6924 - :try_start_13
6925 + :try_start_62
6926 invoke-direct {p0, v0, v2}, Landroid/media/AudioRecord;->native_start(II)I
6928 move-result v0
6930 - if-nez v0, :cond_1c
6931 + if-nez v0, :cond_6b
6933 const/4 v0, 0x3
6935 iput v0, p0, Landroid/media/AudioRecord;->mRecordingState:I
6937 - :cond_1c
6938 + :cond_6b
6939 monitor-exit v1
6941 return-void
6943 - :catchall_1e
6944 + :catchall_6d
6945 move-exception v0
6947 monitor-exit v1
6948 - :try_end_20
6949 - .catchall {:try_start_13 .. :try_end_20} :catchall_1e
6950 + :try_end_6f
6951 + .catchall {:try_start_62 .. :try_end_6f} :catchall_6d
6953 throw v0
6954 .end method
6955 diff -Npru stock-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali opd-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali
6956 --- stock-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali 1969-12-31 18:00:00.000000000 -0600
6957 +++ opd-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali 2013-01-20 23:05:45.311704972 -0600
6958 @@ -0,0 +1,215 @@
6959 +.class Landroid/media/MediaRecorder$PrivacyRunner;
6960 +.super Ljava/lang/Thread;
6961 +.source "MediaRecorder.java"
6964 +# annotations
6965 +.annotation system Ldalvik/annotation/EnclosingClass;
6966 + value = Landroid/media/MediaRecorder;
6967 +.end annotation
6969 +.annotation system Ldalvik/annotation/InnerClass;
6970 + accessFlags = 0x2
6971 + name = "PrivacyRunner"
6972 +.end annotation
6975 +# static fields
6976 +.field private static final OFFSET_DELAY:J = 0x9c4L
6979 +# instance fields
6980 +.field private delay:J
6982 +.field final synthetic this$0:Landroid/media/MediaRecorder;
6985 +# direct methods
6986 +.method public constructor <init>(Landroid/media/MediaRecorder;)V
6987 + .registers 4
6989 + iput-object p1, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
6991 + invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
6993 + const-wide/16 v0, 0x9c4
6995 + iput-wide v0, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
6997 + return-void
6998 +.end method
7001 +# virtual methods
7002 +.method public getDelay()J
7003 + .registers 3
7005 + iget-wide v0, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7007 + return-wide v0
7008 +.end method
7010 +.method public run()V
7011 + .registers 5
7013 + :try_start_0
7014 + iget-wide v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7016 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
7018 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7020 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7021 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7023 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7025 + #getter for: Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
7026 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
7028 + move-result-object v2
7030 + if-eqz v2, :cond_2f
7032 + new-instance v1, Ljava/io/File;
7034 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7036 + #getter for: Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
7037 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
7039 + move-result-object v2
7041 + invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7043 + invoke-virtual {v1}, Ljava/io/File;->delete()Z
7045 + move-result v2
7047 + if-eqz v2, :cond_29
7049 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7051 + const/4 v3, 0x1
7053 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7054 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7055 + :try_end_29
7056 + .catchall {:try_start_0 .. :try_end_29} :catchall_73
7057 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_29} :catch_57
7059 + :cond_29
7060 + :goto_29
7061 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7063 + :goto_2b
7064 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7065 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7067 + return-void
7069 + :cond_2f
7070 + :try_start_2f
7071 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7073 + #getter for: Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
7074 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$600(Landroid/media/MediaRecorder;)Ljava/io/FileDescriptor;
7076 + move-result-object v2
7078 + if-eqz v2, :cond_65
7080 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7082 + #getter for: Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7083 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7085 + move-result-object v2
7087 + if-eqz v2, :cond_65
7089 + new-instance v1, Ljava/io/File;
7091 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7093 + #getter for: Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7094 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7096 + move-result-object v2
7098 + invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7100 + invoke-virtual {v1}, Ljava/io/File;->delete()Z
7102 + move-result v2
7104 + if-eqz v2, :cond_29
7106 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7108 + const/4 v3, 0x1
7110 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7111 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7112 + :try_end_56
7113 + .catchall {:try_start_2f .. :try_end_56} :catchall_73
7114 + .catch Ljava/lang/Exception; {:try_start_2f .. :try_end_56} :catch_57
7116 + goto :goto_29
7118 + :catch_57
7119 + move-exception v0
7121 + :try_start_58
7122 + const-string v2, "PM,MediaRecorder"
7124 + const-string v3, "Something went wrong while waiting for cancel the stream!"
7126 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7128 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7129 + :try_end_62
7130 + .catchall {:try_start_58 .. :try_end_62} :catchall_73
7132 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7134 + goto :goto_2b
7136 + :cond_65
7137 + :try_start_65
7138 + const-string v2, "PM,MediaRecorder"
7140 + const-string v3, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
7142 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7144 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7146 + const/4 v3, 0x0
7148 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7149 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7150 + :try_end_72
7151 + .catchall {:try_start_65 .. :try_end_72} :catchall_73
7152 + .catch Ljava/lang/Exception; {:try_start_65 .. :try_end_72} :catch_57
7154 + goto :goto_29
7156 + :catchall_73
7157 + move-exception v2
7159 + iget-object v3, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7161 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7162 + invoke-static {v3}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7164 + throw v2
7165 +.end method
7167 +.method public setDelay(J)V
7168 + .registers 3
7170 + iput-wide p1, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7172 + return-void
7173 +.end method
7174 diff -Npru stock-framework/smali/android/media/MediaRecorder.smali opd-framework/smali/android/media/MediaRecorder.smali
7175 --- stock-framework/smali/android/media/MediaRecorder.smali 2013-01-21 12:55:58.825080914 -0600
7176 +++ opd-framework/smali/android/media/MediaRecorder.smali 2013-01-20 23:05:45.315704921 -0600
7177 @@ -6,6 +6,7 @@
7178 # annotations
7179 .annotation system Ldalvik/annotation/MemberClasses;
7180 value = {
7181 + Landroid/media/MediaRecorder$PrivacyRunner;,
7182 Landroid/media/MediaRecorder$EventHandler;,
7183 Landroid/media/MediaRecorder$OnInfoListener;,
7184 Landroid/media/MediaRecorder$OnErrorListener;,
7185 @@ -19,6 +20,14 @@
7188 # static fields
7189 +.field private static final BOTH_DATA_ACCESS:I = 0xb
7191 +.field private static final GOT_ERROR:I = -0x3
7193 +.field private static final IS_ALLOWED:I = -0x1
7195 +.field private static final IS_NOT_ALLOWED:I = -0x2
7197 .field public static final MEDIA_ERROR_SERVER_DIED:I = 0x64
7199 .field public static final MEDIA_RECORDER_ERROR_UNKNOWN:I = 0x1
7200 @@ -53,10 +62,30 @@
7202 .field public static final MEDIA_RECORDER_TRACK_INTER_CHUNK_TIME_MS:I = 0x3ee
7204 +.field private static final MIC_DATA_ACCESS:I = 0xa
7206 +.field private static final MODE_RECORD_AUDIO:I = 0x2
7208 +.field private static final MODE_RECORD_BOTH:I = 0x3
7210 +.field private static final PRIVACY_PATH_DEF:Ljava/lang/String; = "/data/data/"
7212 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,MediaRecorder"
7214 +.field private static final STATE_RECORD_AUDIO:I = 0x0
7216 +.field private static final STATE_RECORD_BOTH:I = 0x1
7218 .field private static final TAG:Ljava/lang/String; = "MediaRecorder"
7221 # instance fields
7222 +.field private ACTUAL_STATE:I
7224 +.field private context:Landroid/content/Context;
7226 +.field private deletedFile:Z
7228 .field private mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7230 .field private mFd:Ljava/io/FileDescriptor;
7231 @@ -69,8 +98,24 @@
7233 .field private mPath:Ljava/lang/String;
7235 +.field private mPm:Landroid/content/pm/IPackageManager;
7237 .field private mSurface:Landroid/view/Surface;
7239 +.field private pFileDescriptor:Ljava/io/FileDescriptor;
7241 +.field private pFileDescriptorPath:Ljava/lang/String;
7243 +.field private pPath:Ljava/lang/String;
7245 +.field private pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
7247 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
7249 +.field private privacyMode:Z
7251 +.field private stoppedStream:Z
7254 # direct methods
7255 .method static constructor <clinit>()V
7256 @@ -86,15 +131,35 @@
7257 .end method
7259 .method public constructor <init>()V
7260 - .registers 3
7261 + .registers 4
7263 + const/4 v2, 0x0
7265 + const/4 v1, 0x0
7267 invoke-direct {p0}, Ljava/lang/Object;-><init>()V
7269 + iput-object v1, p0, Landroid/media/MediaRecorder;->pPath:Ljava/lang/String;
7271 + iput-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7273 + iput-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptor:Ljava/io/FileDescriptor;
7275 + iput-object v1, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
7277 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
7279 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->privacyMode:Z
7281 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->stoppedStream:Z
7283 + iput v2, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
7285 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
7287 move-result-object v0
7289 - if-eqz v0, :cond_19
7290 + if-eqz v0, :cond_2e
7292 new-instance v1, Landroid/media/MediaRecorder$EventHandler;
7294 @@ -102,7 +167,9 @@
7296 iput-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7298 - :goto_10
7299 + :goto_22
7300 + invoke-direct {p0}, Landroid/media/MediaRecorder;->initiate()V
7302 new-instance v1, Ljava/lang/ref/WeakReference;
7304 invoke-direct {v1, p0}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
7305 @@ -111,12 +178,12 @@
7307 return-void
7309 - :cond_19
7310 + :cond_2e
7311 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
7313 move-result-object v0
7315 - if-eqz v0, :cond_27
7316 + if-eqz v0, :cond_3c
7318 new-instance v1, Landroid/media/MediaRecorder$EventHandler;
7320 @@ -124,14 +191,12 @@
7322 iput-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7324 - goto :goto_10
7326 - :cond_27
7327 - const/4 v1, 0x0
7328 + goto :goto_22
7330 + :cond_3c
7331 iput-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7333 - goto :goto_10
7334 + goto :goto_22
7335 .end method
7337 .method private native _prepare()V
7338 @@ -143,45 +208,1757 @@
7339 .end annotation
7340 .end method
7342 -.method private native _setOutputFile(Ljava/io/FileDescriptor;JJ)V
7343 - .annotation system Ldalvik/annotation/Throws;
7344 - value = {
7345 - Ljava/lang/IllegalStateException;,
7346 - Ljava/io/IOException;
7348 - .end annotation
7349 -.end method
7350 +.method private native _setOutputFile(Ljava/io/FileDescriptor;JJ)V
7351 + .annotation system Ldalvik/annotation/Throws;
7352 + value = {
7353 + Ljava/lang/IllegalStateException;,
7354 + Ljava/io/IOException;
7356 + .end annotation
7357 +.end method
7359 +.method static synthetic access$000(Landroid/media/MediaRecorder;)I
7360 + .registers 2
7362 + iget v0, p0, Landroid/media/MediaRecorder;->mNativeContext:I
7364 + return v0
7365 +.end method
7367 +.method static synthetic access$100(Landroid/media/MediaRecorder;)Landroid/media/MediaRecorder$OnErrorListener;
7368 + .registers 2
7370 + iget-object v0, p0, Landroid/media/MediaRecorder;->mOnErrorListener:Landroid/media/MediaRecorder$OnErrorListener;
7372 + return-object v0
7373 +.end method
7375 +.method static synthetic access$200(Landroid/media/MediaRecorder;)Landroid/media/MediaRecorder$OnInfoListener;
7376 + .registers 2
7378 + iget-object v0, p0, Landroid/media/MediaRecorder;->mOnInfoListener:Landroid/media/MediaRecorder$OnInfoListener;
7380 + return-object v0
7381 +.end method
7383 +.method static synthetic access$300(Landroid/media/MediaRecorder;)V
7384 + .registers 1
7386 + invoke-direct {p0}, Landroid/media/MediaRecorder;->privacyStop()V
7388 + return-void
7389 +.end method
7391 +.method static synthetic access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
7392 + .registers 2
7394 + iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
7396 + return-object v0
7397 +.end method
7399 +.method static synthetic access$502(Landroid/media/MediaRecorder;Z)Z
7400 + .registers 2
7402 + iput-boolean p1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
7404 + return p1
7405 +.end method
7407 +.method static synthetic access$600(Landroid/media/MediaRecorder;)Ljava/io/FileDescriptor;
7408 + .registers 2
7410 + iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
7412 + return-object v0
7413 +.end method
7415 +.method static synthetic access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7416 + .registers 2
7418 + iget-object v0, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7420 + return-object v0
7421 +.end method
7423 +.method private checkIfPackagesAllowed(I)I
7424 + .registers 12
7426 + const/4 v6, -0x1
7428 + const/4 v5, -0x2
7430 + const/4 v7, -0x3
7432 + :try_start_3
7433 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7435 + if-eqz v8, :cond_5b
7437 + const/4 v2, 0x0
7439 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7441 + move-result-object v3
7443 + invoke-static {}, Landroid/os/Process;->myUid()I
7445 + move-result v4
7447 + if-eqz v3, :cond_51
7449 + packed-switch p1, :pswitch_data_72
7451 + move v5, v7
7453 + :cond_16
7454 + :goto_16
7455 + return v5
7457 + :pswitch_17
7458 + const/4 v1, 0x0
7460 + :goto_18
7461 + array-length v8, v3
7463 + if-ge v1, v8, :cond_2f
7465 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7467 + aget-object v9, v3, v1
7469 + invoke-virtual {v8, v9, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7471 + move-result-object v2
7473 + if-eqz v2, :cond_2b
7475 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
7477 + move-result v8
7479 + if-nez v8, :cond_16
7481 + :cond_2b
7482 + const/4 v2, 0x0
7484 + add-int/lit8 v1, v1, 0x1
7486 + goto :goto_18
7488 + :cond_2f
7489 + move v5, v6
7491 + goto :goto_16
7493 + :pswitch_31
7494 + const/4 v1, 0x0
7496 + :goto_32
7497 + array-length v8, v3
7499 + if-ge v1, v8, :cond_4f
7501 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7503 + aget-object v9, v3, v1
7505 + invoke-virtual {v8, v9, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7507 + move-result-object v2
7509 + if-eqz v2, :cond_4b
7511 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
7513 + move-result v8
7515 + if-nez v8, :cond_16
7517 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
7519 + move-result v8
7521 + if-nez v8, :cond_16
7523 + :cond_4b
7524 + const/4 v2, 0x0
7526 + add-int/lit8 v1, v1, 0x1
7528 + goto :goto_32
7530 + :cond_4f
7531 + move v5, v6
7533 + goto :goto_16
7535 + :cond_51
7536 + const-string v5, "PM,MediaRecorder"
7538 + const-string/jumbo v6, "return GOT_ERROR, because package_names are NULL"
7540 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7542 + move v5, v7
7544 + goto :goto_16
7546 + :cond_5b
7547 + const-string v5, "PM,MediaRecorder"
7549 + const-string/jumbo v6, "return GOT_ERROR, because pSetMan is NULL"
7551 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7552 + :try_end_63
7553 + .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_63} :catch_65
7555 + move v5, v7
7557 + goto :goto_16
7559 + :catch_65
7560 + move-exception v0
7562 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7564 + const-string v5, "PM,MediaRecorder"
7566 + const-string v6, "Got exception in checkIfPackagesAllowed"
7568 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7570 + move v5, v7
7572 + goto :goto_16
7574 + :pswitch_data_72
7575 + .packed-switch 0x2
7576 + :pswitch_17
7577 + :pswitch_31
7578 + .end packed-switch
7579 +.end method
7581 +.method private dataAccess(ZI)V
7582 + .registers 8
7584 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7586 + move-result-object v1
7588 + if-eqz p1, :cond_5a
7590 + if-eqz v1, :cond_5a
7592 + packed-switch p2, :pswitch_data_ae
7594 + :cond_b
7595 + :goto_b
7596 + return-void
7598 + :pswitch_c
7599 + const/4 v0, 0x0
7601 + :goto_d
7602 + array-length v2, v1
7604 + if-ge v0, v2, :cond_b
7606 + const-string v2, "PM,MediaRecorder"
7608 + new-instance v3, Ljava/lang/StringBuilder;
7610 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7612 + const-string v4, "Allowed Package: -"
7614 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7616 + move-result-object v3
7618 + aget-object v4, v1, v0
7620 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7622 + move-result-object v3
7624 + const-string v4, "- accessing microphone."
7626 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7628 + move-result-object v3
7630 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7632 + move-result-object v3
7634 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7636 + add-int/lit8 v0, v0, 0x1
7638 + goto :goto_d
7640 + :pswitch_33
7641 + const/4 v0, 0x0
7643 + :goto_34
7644 + array-length v2, v1
7646 + if-ge v0, v2, :cond_b
7648 + const-string v2, "PM,MediaRecorder"
7650 + new-instance v3, Ljava/lang/StringBuilder;
7652 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7654 + const-string v4, "Allowed Package: -"
7656 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7658 + move-result-object v3
7660 + aget-object v4, v1, v0
7662 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7664 + move-result-object v3
7666 + const-string v4, "- accessing microphone and camera."
7668 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7670 + move-result-object v3
7672 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7674 + move-result-object v3
7676 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7678 + add-int/lit8 v0, v0, 0x1
7680 + goto :goto_34
7682 + :cond_5a
7683 + if-eqz v1, :cond_b
7685 + packed-switch p2, :pswitch_data_b6
7687 + goto :goto_b
7689 + :pswitch_60
7690 + const/4 v0, 0x0
7692 + :goto_61
7693 + array-length v2, v1
7695 + if-ge v0, v2, :cond_b
7697 + const-string v2, "PM,MediaRecorder"
7699 + new-instance v3, Ljava/lang/StringBuilder;
7701 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7703 + const-string v4, "Blocked Package: -"
7705 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7707 + move-result-object v3
7709 + aget-object v4, v1, v0
7711 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7713 + move-result-object v3
7715 + const-string v4, "- accessing microphone."
7717 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7719 + move-result-object v3
7721 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7723 + move-result-object v3
7725 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7727 + add-int/lit8 v0, v0, 0x1
7729 + goto :goto_61
7731 + :pswitch_87
7732 + const/4 v0, 0x0
7734 + :goto_88
7735 + array-length v2, v1
7737 + if-ge v0, v2, :cond_b
7739 + const-string v2, "PM,MediaRecorder"
7741 + new-instance v3, Ljava/lang/StringBuilder;
7743 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7745 + const-string v4, "Blocked Package: -"
7747 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7749 + move-result-object v3
7751 + aget-object v4, v1, v0
7753 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7755 + move-result-object v3
7757 + const-string v4, "- accessing microphone and camera."
7759 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7761 + move-result-object v3
7763 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7765 + move-result-object v3
7767 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7769 + add-int/lit8 v0, v0, 0x1
7771 + goto :goto_88
7773 + :pswitch_data_ae
7774 + .packed-switch 0xa
7775 + :pswitch_c
7776 + :pswitch_33
7777 + .end packed-switch
7779 + :pswitch_data_b6
7780 + .packed-switch 0xa
7781 + :pswitch_60
7782 + :pswitch_87
7783 + .end packed-switch
7784 +.end method
7786 +.method public static final getAudioSourceMax()I
7787 + .registers 1
7789 + const/16 v0, 0x8
7791 + return v0
7792 +.end method
7794 +.method private getPackageName()[Ljava/lang/String;
7795 + .registers 6
7797 + :try_start_0
7798 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7800 + if-eqz v3, :cond_f
7802 + invoke-static {}, Landroid/os/Process;->myUid()I
7804 + move-result v2
7806 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7808 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
7810 + move-result-object v1
7812 + :goto_e
7813 + return-object v1
7815 + :cond_f
7816 + const-string/jumbo v3, "package"
7818 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
7820 + move-result-object v3
7822 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
7824 + move-result-object v3
7826 + iput-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7828 + invoke-static {}, Landroid/os/Process;->myUid()I
7830 + move-result v2
7832 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7834 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
7835 + :try_end_25
7836 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
7838 + move-result-object v1
7840 + goto :goto_e
7842 + :catch_27
7843 + move-exception v0
7845 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7847 + const-string v3, "PM,MediaRecorder"
7849 + const-string/jumbo v4, "something went wrong with getting package name"
7851 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7853 + const/4 v1, 0x0
7855 + goto :goto_e
7856 +.end method
7858 +.method private getPrivacyFileDescriptor()Ljava/io/FileDescriptor;
7859 + .registers 19
7861 + invoke-direct/range {p0 .. p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7863 + move-result-object v12
7865 + new-instance v14, Ljava/util/Random;
7867 + invoke-direct {v14}, Ljava/util/Random;-><init>()V
7869 + const/4 v1, 0x0
7871 + new-instance v15, Ljava/lang/StringBuilder;
7873 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7875 + invoke-virtual {v14}, Ljava/util/Random;->nextLong()J
7877 + move-result-wide v16
7879 + invoke-virtual/range {v15 .. v17}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
7881 + move-result-object v15
7883 + const-string v16, ".tmp"
7885 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7887 + move-result-object v15
7889 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7891 + move-result-object v2
7893 + const/4 v7, 0x0
7895 + const/4 v3, 0x0
7897 + const/4 v11, 0x0
7899 + :goto_24
7900 + array-length v15, v12
7902 + if-ge v11, v15, :cond_247
7904 + :try_start_27
7905 + new-instance v9, Ljava/io/File;
7907 + new-instance v15, Ljava/lang/StringBuilder;
7909 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7911 + const-string v16, "/data/data/"
7913 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7915 + move-result-object v15
7917 + aget-object v16, v12, v11
7919 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7921 + move-result-object v15
7923 + const-string v16, "/cache/"
7925 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7927 + move-result-object v15
7929 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7931 + move-result-object v15
7933 + invoke-direct {v9, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7935 + invoke-virtual {v9}, Ljava/io/File;->mkdirs()Z
7937 + new-instance v8, Ljava/io/FileWriter;
7939 + new-instance v15, Ljava/lang/StringBuilder;
7941 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7943 + const-string v16, "/data/data/"
7945 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7947 + move-result-object v15
7949 + aget-object v16, v12, v11
7951 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7953 + move-result-object v15
7955 + const-string v16, "/cache/"
7957 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7959 + move-result-object v15
7961 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7963 + move-result-object v15
7965 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7967 + move-result-object v15
7969 + invoke-direct {v8, v15}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
7970 + :try_end_6e
7971 + .catchall {:try_start_27 .. :try_end_6e} :catchall_155
7972 + .catch Ljava/lang/Exception; {:try_start_27 .. :try_end_6e} :catch_15c
7974 + :try_start_6e
7975 + const-string/jumbo v15, "test"
7977 + invoke-virtual {v8, v15}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
7979 + invoke-virtual {v8}, Ljava/io/FileWriter;->flush()V
7981 + invoke-virtual {v8}, Ljava/io/FileWriter;->close()V
7983 + new-instance v4, Ljava/io/File;
7985 + new-instance v15, Ljava/lang/StringBuilder;
7987 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7989 + const-string v16, "/data/data/"
7991 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7993 + move-result-object v15
7995 + aget-object v16, v12, v11
7997 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7999 + move-result-object v15
8001 + const-string v16, "/cache/"
8003 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8005 + move-result-object v15
8007 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8009 + move-result-object v15
8011 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8013 + move-result-object v15
8015 + invoke-direct {v4, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8016 + :try_end_9e
8017 + .catchall {:try_start_6e .. :try_end_9e} :catchall_235
8018 + .catch Ljava/lang/Exception; {:try_start_6e .. :try_end_9e} :catch_23e
8020 + :try_start_9e
8021 + invoke-virtual {v4}, Ljava/io/File;->delete()Z
8023 + const-string v15, "PM,MediaRecorder"
8025 + new-instance v16, Ljava/lang/StringBuilder;
8027 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8029 + const-string v17, "found our package: "
8031 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8033 + move-result-object v16
8035 + aget-object v17, v12, v11
8037 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8039 + move-result-object v16
8041 + const-string v17, " with internal path. File: "
8043 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8045 + move-result-object v16
8047 + move-object/from16 v0, v16
8049 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8051 + move-result-object v16
8053 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8055 + move-result-object v16
8057 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8059 + aget-object v1, v12, v11
8060 + :try_end_c9
8061 + .catchall {:try_start_9e .. :try_end_c9} :catchall_239
8062 + .catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c9} :catch_242
8064 + const/4 v7, 0x0
8066 + const/4 v3, 0x0
8068 + invoke-static {}, Ljava/lang/System;->gc()V
8070 + move-object v4, v3
8072 + move-object v8, v7
8074 + :goto_d0
8075 + if-eqz v1, :cond_172
8077 + :try_start_d2
8078 + new-instance v10, Ljava/io/FileOutputStream;
8080 + new-instance v15, Ljava/lang/StringBuilder;
8082 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8084 + const-string v16, "/data/data/"
8086 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8088 + move-result-object v15
8090 + invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8092 + move-result-object v15
8094 + const-string v16, "/cache/"
8096 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8098 + move-result-object v15
8100 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8102 + move-result-object v15
8104 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8106 + move-result-object v15
8108 + invoke-direct {v10, v15}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
8110 + invoke-virtual {v10}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
8112 + move-result-object v6
8114 + new-instance v15, Ljava/lang/StringBuilder;
8116 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8118 + const-string v16, "/data/data/"
8120 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8122 + move-result-object v15
8124 + invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8126 + move-result-object v15
8128 + const-string v16, "/cache/"
8130 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8132 + move-result-object v15
8134 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8136 + move-result-object v15
8138 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8140 + move-result-object v15
8142 + move-object/from16 v0, p0
8144 + iput-object v15, v0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
8146 + const-string v15, "PM,MediaRecorder"
8148 + new-instance v16, Ljava/lang/StringBuilder;
8150 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8152 + const-string/jumbo v17, "returned fileDescriptor for package: "
8154 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8156 + move-result-object v16
8158 + move-object/from16 v0, v16
8160 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8162 + move-result-object v16
8164 + const-string v17, " with internal path. Path: "
8166 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8168 + move-result-object v16
8170 + const-string v17, "/data/data/"
8172 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8174 + move-result-object v16
8176 + move-object/from16 v0, v16
8178 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8180 + move-result-object v16
8182 + const-string v17, "/cache/"
8184 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8186 + move-result-object v16
8188 + move-object/from16 v0, v16
8190 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8192 + move-result-object v16
8194 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8196 + move-result-object v16
8198 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8199 + :try_end_152
8200 + .catch Ljava/lang/Exception; {:try_start_d2 .. :try_end_152} :catch_166
8202 + move-object v3, v4
8204 + move-object v7, v8
8206 + :goto_154
8207 + return-object v6
8209 + :catchall_155
8210 + move-exception v15
8212 + :goto_156
8213 + const/4 v7, 0x0
8215 + const/4 v3, 0x0
8217 + invoke-static {}, Ljava/lang/System;->gc()V
8219 + throw v15
8221 + :catch_15c
8222 + move-exception v15
8224 + :goto_15d
8225 + const/4 v7, 0x0
8227 + const/4 v3, 0x0
8229 + invoke-static {}, Ljava/lang/System;->gc()V
8231 + add-int/lit8 v11, v11, 0x1
8233 + goto/16 :goto_24
8235 + :catch_166
8236 + move-exception v5
8238 + const-string v15, "PM,MediaRecorder"
8240 + const-string v16, "Got exception while creating fileDescriptor -> return null"
8242 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
8244 + const/4 v6, 0x0
8246 + move-object v3, v4
8248 + move-object v7, v8
8250 + goto :goto_154
8252 + :cond_172
8253 + :try_start_172
8254 + invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
8256 + move-result-object v15
8258 + invoke-virtual {v15}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
8260 + move-result-object v13
8262 + new-instance v7, Ljava/io/FileWriter;
8264 + new-instance v15, Ljava/lang/StringBuilder;
8266 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8268 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8270 + move-result-object v15
8272 + const-string v16, "/"
8274 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8276 + move-result-object v15
8278 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8280 + move-result-object v15
8282 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8284 + move-result-object v15
8286 + invoke-direct {v7, v15}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8287 + :try_end_196
8288 + .catch Ljava/lang/Exception; {:try_start_172 .. :try_end_196} :catch_22e
8290 + :try_start_196
8291 + const-string/jumbo v15, "test"
8293 + invoke-virtual {v7, v15}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8295 + invoke-virtual {v7}, Ljava/io/FileWriter;->flush()V
8297 + invoke-virtual {v7}, Ljava/io/FileWriter;->close()V
8299 + new-instance v3, Ljava/io/File;
8301 + new-instance v15, Ljava/lang/StringBuilder;
8303 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8305 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8307 + move-result-object v15
8309 + const-string v16, "/"
8311 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8313 + move-result-object v15
8315 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8317 + move-result-object v15
8319 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8321 + move-result-object v15
8323 + invoke-direct {v3, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8324 + :try_end_1be
8325 + .catch Ljava/lang/Exception; {:try_start_196 .. :try_end_1be} :catch_232
8327 + :try_start_1be
8328 + invoke-virtual {v3}, Ljava/io/File;->delete()Z
8330 + new-instance v10, Ljava/io/FileOutputStream;
8332 + new-instance v15, Ljava/lang/StringBuilder;
8334 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8336 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8338 + move-result-object v15
8340 + const-string v16, "/"
8342 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8344 + move-result-object v15
8346 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8348 + move-result-object v15
8350 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8352 + move-result-object v15
8354 + invoke-direct {v10, v15}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
8356 + invoke-virtual {v10}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
8358 + move-result-object v6
8360 + new-instance v15, Ljava/lang/StringBuilder;
8362 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8364 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8366 + move-result-object v15
8368 + const-string v16, "/"
8370 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8372 + move-result-object v15
8374 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8376 + move-result-object v15
8378 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8380 + move-result-object v15
8382 + move-object/from16 v0, p0
8384 + iput-object v15, v0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
8386 + const-string v15, "PM,MediaRecorder"
8388 + new-instance v16, Ljava/lang/StringBuilder;
8390 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8392 + const-string v17, "Returned FileDescriptor. Path: "
8394 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8396 + move-result-object v16
8398 + move-object/from16 v0, v16
8400 + invoke-virtual {v0, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8402 + move-result-object v16
8404 + const-string v17, "/"
8406 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8408 + move-result-object v16
8410 + move-object/from16 v0, v16
8412 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8414 + move-result-object v16
8416 + const-string v17, " . It is on SDCard!"
8418 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8420 + move-result-object v16
8422 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8424 + move-result-object v16
8426 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8427 + :try_end_228
8428 + .catch Ljava/lang/Exception; {:try_start_1be .. :try_end_228} :catch_22a
8430 + goto/16 :goto_154
8432 + :catch_22a
8433 + move-exception v5
8435 + :goto_22b
8436 + const/4 v6, 0x0
8438 + goto/16 :goto_154
8440 + :catch_22e
8441 + move-exception v5
8443 + move-object v3, v4
8445 + move-object v7, v8
8447 + goto :goto_22b
8449 + :catch_232
8450 + move-exception v5
8452 + move-object v3, v4
8454 + goto :goto_22b
8456 + :catchall_235
8457 + move-exception v15
8459 + move-object v7, v8
8461 + goto/16 :goto_156
8463 + :catchall_239
8464 + move-exception v15
8466 + move-object v3, v4
8468 + move-object v7, v8
8470 + goto/16 :goto_156
8472 + :catch_23e
8473 + move-exception v15
8475 + move-object v7, v8
8477 + goto/16 :goto_15d
8479 + :catch_242
8480 + move-exception v15
8482 + move-object v3, v4
8484 + move-object v7, v8
8486 + goto/16 :goto_15d
8488 + :cond_247
8489 + move-object v4, v3
8491 + move-object v8, v7
8493 + goto/16 :goto_d0
8494 +.end method
8496 +.method private getPrivacyPath()Ljava/lang/String;
8497 + .registers 16
8499 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
8501 + move-result-object v9
8503 + new-instance v11, Ljava/util/Random;
8505 + invoke-direct {v11}, Ljava/util/Random;-><init>()V
8507 + const/4 v0, 0x0
8509 + new-instance v12, Ljava/lang/StringBuilder;
8511 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8513 + invoke-virtual {v11}, Ljava/util/Random;->nextLong()J
8515 + move-result-wide v13
8517 + invoke-virtual {v12, v13, v14}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
8519 + move-result-object v12
8521 + const-string v13, ".tmp"
8523 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8525 + move-result-object v12
8527 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8529 + move-result-object v1
8531 + const/4 v5, 0x0
8533 + const/4 v2, 0x0
8535 + const/4 v8, 0x0
8537 + :goto_24
8538 + array-length v12, v9
8540 + if-ge v8, v12, :cond_1eb
8542 + :try_start_27
8543 + new-instance v7, Ljava/io/File;
8545 + new-instance v12, Ljava/lang/StringBuilder;
8547 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8549 + const-string v13, "/data/data/"
8551 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8553 + move-result-object v12
8555 + aget-object v13, v9, v8
8557 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8559 + move-result-object v12
8561 + const-string v13, "/cache/"
8563 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8565 + move-result-object v12
8567 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8569 + move-result-object v12
8571 + invoke-direct {v7, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8573 + invoke-virtual {v7}, Ljava/io/File;->mkdirs()Z
8575 + new-instance v6, Ljava/io/FileWriter;
8577 + new-instance v12, Ljava/lang/StringBuilder;
8579 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8581 + const-string v13, "/data/data/"
8583 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8585 + move-result-object v12
8587 + aget-object v13, v9, v8
8589 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8591 + move-result-object v12
8593 + const-string v13, "/cache/"
8595 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8597 + move-result-object v12
8599 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8601 + move-result-object v12
8603 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8605 + move-result-object v12
8607 + invoke-direct {v6, v12}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8608 + :try_end_6e
8609 + .catchall {:try_start_27 .. :try_end_6e} :catchall_12d
8610 + .catch Ljava/lang/Exception; {:try_start_27 .. :try_end_6e} :catch_134
8612 + :try_start_6e
8613 + const-string/jumbo v12, "test"
8615 + invoke-virtual {v6, v12}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8617 + invoke-virtual {v6}, Ljava/io/FileWriter;->flush()V
8619 + invoke-virtual {v6}, Ljava/io/FileWriter;->close()V
8621 + new-instance v3, Ljava/io/File;
8623 + new-instance v12, Ljava/lang/StringBuilder;
8625 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8627 + const-string v13, "/data/data/"
8629 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8631 + move-result-object v12
8633 + aget-object v13, v9, v8
8635 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8637 + move-result-object v12
8639 + const-string v13, "/cache/"
8641 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8643 + move-result-object v12
8645 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8647 + move-result-object v12
8649 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8651 + move-result-object v12
8653 + invoke-direct {v3, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8654 + :try_end_9e
8655 + .catchall {:try_start_6e .. :try_end_9e} :catchall_1d9
8656 + .catch Ljava/lang/Exception; {:try_start_6e .. :try_end_9e} :catch_1e2
8658 + :try_start_9e
8659 + invoke-virtual {v3}, Ljava/io/File;->delete()Z
8661 + const-string v12, "PM,MediaRecorder"
8663 + new-instance v13, Ljava/lang/StringBuilder;
8665 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
8667 + const-string v14, "found our package: "
8669 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8671 + move-result-object v13
8673 + aget-object v14, v9, v8
8675 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8677 + move-result-object v13
8679 + const-string v14, " with internal path. File: "
8681 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8683 + move-result-object v13
8685 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8687 + move-result-object v13
8689 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8691 + move-result-object v13
8693 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8695 + aget-object v0, v9, v8
8696 + :try_end_c7
8697 + .catchall {:try_start_9e .. :try_end_c7} :catchall_1dd
8698 + .catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c7} :catch_1e6
8700 + const/4 v5, 0x0
8702 + const/4 v2, 0x0
8704 + invoke-static {}, Ljava/lang/System;->gc()V
8706 + move-object v3, v2
8708 + move-object v6, v5
8710 + :goto_ce
8711 + if-eqz v0, :cond_13e
8713 + const-string v12, "PM,MediaRecorder"
8715 + new-instance v13, Ljava/lang/StringBuilder;
8717 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
8719 + const-string/jumbo v14, "returned file: "
8721 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8723 + move-result-object v13
8725 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8727 + move-result-object v13
8729 + const-string v14, " for package: "
8731 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8733 + move-result-object v13
8735 + invoke-virtual {v13, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8737 + move-result-object v13
8739 + const-string v14, " with internal path. Path: "
8741 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8743 + move-result-object v13
8745 + const-string v14, "/data/data/"
8747 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8749 + move-result-object v13
8751 + invoke-virtual {v13, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8753 + move-result-object v13
8755 + const-string v14, "/cache/"
8757 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8759 + move-result-object v13
8761 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8763 + move-result-object v13
8765 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8767 + move-result-object v13
8769 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8771 + new-instance v12, Ljava/lang/StringBuilder;
8773 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8775 + const-string v13, "/data/data/"
8777 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8779 + move-result-object v12
8781 + invoke-virtual {v12, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8783 + move-result-object v12
8785 + const-string v13, "/cache/"
8787 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8789 + move-result-object v12
8791 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8793 + move-result-object v12
8795 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8797 + move-result-object v12
8799 + move-object v2, v3
8801 + move-object v5, v6
8803 + :goto_12c
8804 + return-object v12
8806 + :catchall_12d
8807 + move-exception v12
8809 + :goto_12e
8810 + const/4 v5, 0x0
8812 + const/4 v2, 0x0
8814 + invoke-static {}, Ljava/lang/System;->gc()V
8816 + throw v12
8818 + :catch_134
8819 + move-exception v12
8821 + :goto_135
8822 + const/4 v5, 0x0
8824 + const/4 v2, 0x0
8826 + invoke-static {}, Ljava/lang/System;->gc()V
8828 + add-int/lit8 v8, v8, 0x1
8830 + goto/16 :goto_24
8832 + :cond_13e
8833 + :try_start_13e
8834 + invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
8836 + move-result-object v12
8838 + invoke-virtual {v12}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
8840 + move-result-object v10
8842 + new-instance v5, Ljava/io/FileWriter;
8844 + new-instance v12, Ljava/lang/StringBuilder;
8846 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8848 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8850 + move-result-object v12
8852 + const-string v13, "/"
8854 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8856 + move-result-object v12
8858 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8860 + move-result-object v12
8862 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8864 + move-result-object v12
8866 + invoke-direct {v5, v12}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8867 + :try_end_162
8868 + .catch Ljava/lang/Exception; {:try_start_13e .. :try_end_162} :catch_1ce
8870 + :try_start_162
8871 + const-string/jumbo v12, "test"
8873 + invoke-virtual {v5, v12}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8875 + invoke-virtual {v5}, Ljava/io/FileWriter;->flush()V
8877 + invoke-virtual {v5}, Ljava/io/FileWriter;->close()V
8879 + new-instance v2, Ljava/io/File;
8881 + new-instance v12, Ljava/lang/StringBuilder;
8883 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8885 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8887 + move-result-object v12
8889 + const-string v13, "/"
8891 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8893 + move-result-object v12
8895 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8897 + move-result-object v12
8899 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8901 + move-result-object v12
8903 + invoke-direct {v2, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8904 + :try_end_18a
8905 + .catch Ljava/lang/Exception; {:try_start_162 .. :try_end_18a} :catch_1d4
8907 + :try_start_18a
8908 + invoke-virtual {v2}, Ljava/io/File;->delete()Z
8910 + const-string v12, "PM,MediaRecorder"
8912 + new-instance v13, Ljava/lang/StringBuilder;
8914 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
8916 + const-string v14, "Return filePath: "
8918 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8920 + move-result-object v13
8922 + invoke-virtual {v13, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8924 + move-result-object v13
8926 + const-string v14, "/"
8928 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8930 + move-result-object v13
8932 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8934 + move-result-object v13
8936 + const-string v14, " . It is on SDCard!"
8938 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8940 + move-result-object v13
8942 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8944 + move-result-object v13
8946 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8948 + new-instance v12, Ljava/lang/StringBuilder;
8950 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8952 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8954 + move-result-object v12
8956 + const-string v13, "/"
8958 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8960 + move-result-object v12
8962 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8964 + move-result-object v12
8966 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8967 + :try_end_1cb
8968 + .catch Ljava/lang/Exception; {:try_start_18a .. :try_end_1cb} :catch_1d7
8970 + move-result-object v12
8972 + goto/16 :goto_12c
8974 + :catch_1ce
8975 + move-exception v4
8977 + move-object v2, v3
8979 + move-object v5, v6
8981 + :goto_1d1
8982 + const/4 v12, 0x0
8984 + goto/16 :goto_12c
8986 + :catch_1d4
8987 + move-exception v4
8989 + move-object v2, v3
8991 + goto :goto_1d1
8993 + :catch_1d7
8994 + move-exception v4
8996 + goto :goto_1d1
8998 + :catchall_1d9
8999 + move-exception v12
9001 + move-object v5, v6
9003 + goto/16 :goto_12e
9005 + :catchall_1dd
9006 + move-exception v12
9008 + move-object v2, v3
9010 + move-object v5, v6
9012 + goto/16 :goto_12e
9014 + :catch_1e2
9015 + move-exception v12
9017 + move-object v5, v6
9019 + goto/16 :goto_135
9021 + :catch_1e6
9022 + move-exception v12
9024 + move-object v2, v3
9026 + move-object v5, v6
9028 + goto/16 :goto_135
9030 + :cond_1eb
9031 + move-object v3, v2
9033 + move-object v6, v5
9035 + goto/16 :goto_ce
9036 +.end method
9038 +.method private initiate()V
9039 + .registers 5
9041 + const/4 v1, 0x0
9043 + :try_start_1
9044 + iput-object v1, p0, Landroid/media/MediaRecorder;->context:Landroid/content/Context;
9046 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
9048 + iget-object v2, p0, Landroid/media/MediaRecorder;->context:Landroid/content/Context;
9050 + const-string/jumbo v3, "privacy"
9052 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
9054 + move-result-object v3
9056 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
9058 + move-result-object v3
9060 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
9062 + iput-object v1, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9064 + const-string/jumbo v1, "package"
9066 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
9068 -.method static synthetic access$000(Landroid/media/MediaRecorder;)I
9069 - .registers 2
9070 + move-result-object v1
9072 - iget v0, p0, Landroid/media/MediaRecorder;->mNativeContext:I
9073 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
9075 - return v0
9076 -.end method
9077 + move-result-object v1
9079 -.method static synthetic access$100(Landroid/media/MediaRecorder;)Landroid/media/MediaRecorder$OnErrorListener;
9080 - .registers 2
9081 + iput-object v1, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
9083 - iget-object v0, p0, Landroid/media/MediaRecorder;->mOnErrorListener:Landroid/media/MediaRecorder$OnErrorListener;
9084 + const/4 v1, 0x1
9086 - return-object v0
9087 -.end method
9088 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9089 + :try_end_27
9090 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
9092 -.method static synthetic access$200(Landroid/media/MediaRecorder;)Landroid/media/MediaRecorder$OnInfoListener;
9093 - .registers 2
9094 + :goto_27
9095 + return-void
9097 - iget-object v0, p0, Landroid/media/MediaRecorder;->mOnInfoListener:Landroid/media/MediaRecorder$OnInfoListener;
9098 + :catch_28
9099 + move-exception v0
9101 - return-object v0
9102 -.end method
9103 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
9105 -.method public static final getAudioSourceMax()I
9106 - .registers 1
9107 + const-string v1, "PM,MediaRecorder"
9109 - const/16 v0, 0x8
9110 + const-string v2, "Something went wrong with initalize variables"
9112 - return v0
9113 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9115 + const/4 v1, 0x0
9117 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9119 + goto :goto_27
9120 .end method
9122 .method private final native native_finalize()V
9123 @@ -236,17 +2013,104 @@
9124 goto :goto_a
9125 .end method
9127 +.method private privacyStop()V
9128 + .registers 4
9130 + :try_start_0
9131 + invoke-virtual {p0}, Landroid/media/MediaRecorder;->stop()V
9132 + :try_end_3
9133 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_3} :catch_4
9135 + :goto_3
9136 + return-void
9138 + :catch_4
9139 + move-exception v0
9141 + const-string v1, "PM,MediaRecorder"
9143 + const-string v2, "Got exception while trying to call privacyStop()"
9145 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9147 + goto :goto_3
9148 +.end method
9150 .method private native setParameter(Ljava/lang/String;)V
9151 .end method
9154 # virtual methods
9155 .method protected finalize()V
9156 - .registers 1
9157 + .registers 4
9159 + const/4 v2, 0x1
9161 + iget-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9163 + if-nez v1, :cond_18
9165 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9167 + if-eqz v1, :cond_1c
9169 + new-instance v0, Ljava/io/File;
9171 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9173 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9175 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9177 + move-result v1
9179 + if-eqz v1, :cond_18
9181 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9183 + :cond_18
9184 + :goto_18
9185 invoke-direct {p0}, Landroid/media/MediaRecorder;->native_finalize()V
9187 return-void
9189 + :cond_1c
9190 + iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9192 + if-eqz v1, :cond_34
9194 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9196 + if-eqz v1, :cond_34
9198 + new-instance v0, Ljava/io/File;
9200 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9202 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9204 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9206 + move-result v1
9208 + if-eqz v1, :cond_18
9210 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9212 + goto :goto_18
9214 + :cond_34
9215 + const-string v1, "PM,MediaRecorder"
9217 + const-string v2, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
9219 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9221 + const/4 v1, 0x0
9223 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9225 + goto :goto_18
9226 .end method
9228 .method public native getMaxAmplitude()I
9229 @@ -258,7 +2122,7 @@
9230 .end method
9232 .method public prepare()V
9233 - .registers 8
9234 + .registers 16
9235 .annotation system Ldalvik/annotation/Throws;
9236 value = {
9237 Ljava/lang/IllegalStateException;,
9238 @@ -266,20 +2130,75 @@
9240 .end annotation
9242 - const-wide/16 v2, 0x0
9243 + const/4 v1, -0x2
9245 + const/4 v3, 0x1
9247 + const-wide/16 v13, 0x0
9249 + const/4 v5, 0x0
9251 + const/4 v2, 0x0
9253 + iget-boolean v0, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9255 + if-nez v0, :cond_d
9257 + invoke-direct {p0}, Landroid/media/MediaRecorder;->initiate()V
9259 + :cond_d
9260 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9262 + const/4 v9, 0x0
9264 + iget v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9266 + packed-switch v0, :pswitch_data_f2
9268 + :cond_15
9269 + :goto_15
9270 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9272 + move-result-object v8
9274 + if-nez v9, :cond_2f
9276 + iget v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9278 + if-ne v0, v3, :cond_c3
9280 + if-eqz v8, :cond_c3
9282 + array-length v0, v8
9284 + if-lez v0, :cond_c3
9286 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9288 + aget-object v1, v8, v2
9290 + const-string v4, "camera"
9292 + move v3, v2
9294 + move-object v6, v5
9296 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9298 + :cond_2f
9299 + :goto_2f
9300 iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9302 - if-eqz v0, :cond_25
9303 + if-eqz v0, :cond_db
9305 - new-instance v6, Ljava/io/FileOutputStream;
9306 + new-instance v7, Ljava/io/FileOutputStream;
9308 iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9310 - invoke-direct {v6, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
9311 + invoke-direct {v7, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
9313 - :try_start_d
9314 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
9315 + :try_start_3a
9316 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
9318 move-result-object v1
9320 @@ -290,39 +2209,189 @@
9321 move-object v0, p0
9323 invoke-direct/range {v0 .. v5}, Landroid/media/MediaRecorder;->_setOutputFile(Ljava/io/FileDescriptor;JJ)V
9324 - :try_end_19
9325 - .catchall {:try_start_d .. :try_end_19} :catchall_20
9326 + :try_end_46
9327 + .catchall {:try_start_3a .. :try_end_46} :catchall_d6
9329 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->close()V
9330 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
9332 - :goto_1c
9333 + :goto_49
9334 invoke-direct {p0}, Landroid/media/MediaRecorder;->_prepare()V
9336 return-void
9338 - :catchall_20
9339 + :pswitch_4d
9340 + const/4 v0, 0x2
9342 + invoke-direct {p0, v0}, Landroid/media/MediaRecorder;->checkIfPackagesAllowed(I)I
9344 + move-result v0
9346 + if-ne v0, v1, :cond_15
9348 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9350 + move-result-object v10
9352 + if-eqz v10, :cond_68
9354 + array-length v0, v10
9356 + if-lez v0, :cond_68
9358 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9360 + aget-object v1, v10, v2
9362 + const-string/jumbo v4, "recordAudio"
9364 + move-object v6, v5
9366 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9368 + :cond_68
9369 + new-instance v0, Landroid/media/MediaRecorder$PrivacyRunner;
9371 + invoke-direct {v0, p0}, Landroid/media/MediaRecorder$PrivacyRunner;-><init>(Landroid/media/MediaRecorder;)V
9373 + iput-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9375 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9377 + const-wide/16 v11, 0x32
9379 + invoke-virtual {v0, v11, v12}, Landroid/media/MediaRecorder$PrivacyRunner;->setDelay(J)V
9381 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9383 + invoke-virtual {v0}, Landroid/media/MediaRecorder$PrivacyRunner;->start()V
9385 + const/4 v9, 0x1
9387 + goto :goto_15
9389 + :pswitch_7d
9390 + const/4 v0, 0x3
9392 + invoke-direct {p0, v0}, Landroid/media/MediaRecorder;->checkIfPackagesAllowed(I)I
9394 + move-result v0
9396 + if-ne v0, v1, :cond_15
9398 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9400 + move-result-object v10
9402 + if-eqz v10, :cond_97
9404 + array-length v0, v10
9406 + if-lez v0, :cond_97
9408 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9410 + aget-object v1, v10, v2
9412 + const-string v4, "camera"
9414 + move-object v6, v5
9416 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9418 + :cond_97
9419 + iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9421 + if-eqz v0, :cond_b0
9423 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPrivacyPath()Ljava/lang/String;
9425 + move-result-object v0
9427 + iput-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9429 + :goto_a1
9430 + new-instance v0, Landroid/media/MediaRecorder$PrivacyRunner;
9432 + invoke-direct {v0, p0}, Landroid/media/MediaRecorder$PrivacyRunner;-><init>(Landroid/media/MediaRecorder;)V
9434 + iput-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9436 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9438 + invoke-virtual {v0}, Landroid/media/MediaRecorder$PrivacyRunner;->start()V
9440 + const/4 v9, 0x1
9442 + goto/16 :goto_15
9444 + :cond_b0
9445 + iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9447 + if-eqz v0, :cond_bb
9449 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPrivacyFileDescriptor()Ljava/io/FileDescriptor;
9451 + move-result-object v0
9453 + iput-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9455 + goto :goto_a1
9457 + :cond_bb
9458 + new-instance v0, Ljava/io/IOException;
9460 + const-string v1, "No valid output file"
9462 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
9464 + throw v0
9466 + :cond_c3
9467 + if-eqz v8, :cond_2f
9469 + array-length v0, v8
9471 + if-lez v0, :cond_2f
9473 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9475 + aget-object v1, v8, v2
9477 + const-string/jumbo v4, "recordAudio"
9479 + move v3, v2
9481 + move-object v6, v5
9483 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9485 + goto/16 :goto_2f
9487 + :catchall_d6
9488 move-exception v0
9490 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->close()V
9491 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
9493 throw v0
9495 - :cond_25
9496 + :cond_db
9497 iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9499 - if-eqz v0, :cond_31
9500 + if-eqz v0, :cond_e9
9502 iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9504 move-object v0, p0
9506 - move-wide v4, v2
9507 + move-wide v2, v13
9509 + move-wide v4, v13
9511 invoke-direct/range {v0 .. v5}, Landroid/media/MediaRecorder;->_setOutputFile(Ljava/io/FileDescriptor;JJ)V
9513 - goto :goto_1c
9514 + goto/16 :goto_49
9516 - :cond_31
9517 + :cond_e9
9518 new-instance v0, Ljava/io/IOException;
9520 const-string v1, "No valid output file"
9521 @@ -330,23 +2399,99 @@
9522 invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
9524 throw v0
9526 + nop
9528 + :pswitch_data_f2
9529 + .packed-switch 0x0
9530 + :pswitch_4d
9531 + :pswitch_7d
9532 + .end packed-switch
9533 .end method
9535 .method public native release()V
9536 .end method
9538 .method public reset()V
9539 - .registers 3
9540 + .registers 5
9542 + const/4 v3, 0x0
9544 + const/4 v2, 0x1
9546 invoke-direct {p0}, Landroid/media/MediaRecorder;->native_reset()V
9548 - iget-object v0, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
9549 + iget-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9551 - const/4 v1, 0x0
9552 + if-nez v1, :cond_1c
9554 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9556 + if-eqz v1, :cond_27
9558 + new-instance v0, Ljava/io/File;
9560 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9562 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9564 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9566 + move-result v1
9568 + if-eqz v1, :cond_1c
9570 - invoke-virtual {v0, v1}, Landroid/media/MediaRecorder$EventHandler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
9571 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9573 + :cond_1c
9574 + :goto_1c
9575 + iput-object v3, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9577 + invoke-static {}, Ljava/lang/System;->gc()V
9579 + iget-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
9581 + invoke-virtual {v1, v3}, Landroid/media/MediaRecorder$EventHandler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
9583 return-void
9585 + :cond_27
9586 + iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9588 + if-eqz v1, :cond_3f
9590 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9592 + if-eqz v1, :cond_3f
9594 + new-instance v0, Ljava/io/File;
9596 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9598 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9600 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9602 + move-result v1
9604 + if-eqz v1, :cond_1c
9606 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9608 + goto :goto_1c
9610 + :cond_3f
9611 + const-string v1, "PM,MediaRecorder"
9613 + const-string v2, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
9615 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9617 + const/4 v1, 0x0
9619 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9621 + goto :goto_1c
9622 .end method
9624 .method public setAudioChannels(I)V
9625 @@ -506,6 +2651,10 @@
9626 .method public setCaptureRate(D)V
9627 .registers 8
9629 + const/4 v3, 0x1
9631 + iput v3, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9633 const-string/jumbo v3, "time-lapse-enable=1"
9635 invoke-direct {p0, v3}, Landroid/media/MediaRecorder;->setParameter(Ljava/lang/String;)V
9636 @@ -800,6 +2949,10 @@
9638 iput-object p1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9640 + const/4 v0, 0x0
9642 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9644 return-void
9645 .end method
9647 @@ -817,6 +2970,10 @@
9649 iput-object p1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9651 + const/4 v0, 0x0
9653 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9655 return-void
9656 .end method
9658 @@ -829,7 +2986,11 @@
9659 .end method
9661 .method public setPreviewDisplay(Landroid/view/Surface;)V
9662 - .registers 2
9663 + .registers 3
9665 + const/4 v0, 0x1
9667 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9669 iput-object p1, p0, Landroid/media/MediaRecorder;->mSurface:Landroid/view/Surface;
9671 @@ -839,6 +3000,10 @@
9672 .method public setProfile(Landroid/media/CamcorderProfile;)V
9673 .registers 4
9675 + const/4 v0, 0x1
9677 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9679 iget v0, p1, Landroid/media/CamcorderProfile;->fileFormat:I
9681 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setOutputFormat(I)V
9682 @@ -865,18 +3030,18 @@
9684 const/16 v1, 0x3e8
9686 - if-lt v0, v1, :cond_28
9687 + if-lt v0, v1, :cond_2b
9689 iget v0, p1, Landroid/media/CamcorderProfile;->quality:I
9691 const/16 v1, 0x3ef
9693 - if-gt v0, v1, :cond_28
9694 + if-gt v0, v1, :cond_2b
9696 - :goto_27
9697 + :goto_2a
9698 return-void
9700 - :cond_28
9701 + :cond_2b
9702 iget v0, p1, Landroid/media/CamcorderProfile;->audioBitRate:I
9704 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setAudioEncodingBitRate(I)V
9705 @@ -893,7 +3058,7 @@
9707 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setAudioEncoder(I)V
9709 - goto :goto_27
9710 + goto :goto_2a
9711 .end method
9713 .method public native setVideoEncoder(I)V
9714 @@ -907,7 +3072,11 @@
9715 .method public setVideoEncodingBitRate(I)V
9716 .registers 4
9718 - if-gtz p1, :cond_a
9719 + const/4 v0, 0x1
9721 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9723 + if-gtz p1, :cond_d
9725 new-instance v0, Ljava/lang/IllegalArgumentException;
9727 @@ -917,7 +3086,7 @@
9729 throw v0
9731 - :cond_a
9732 + :cond_d
9733 new-instance v0, Ljava/lang/StringBuilder;
9735 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
9736 diff -Npru stock-framework/smali/android/net/NetworkInfo.smali opd-framework/smali/android/net/NetworkInfo.smali
9737 --- stock-framework/smali/android/net/NetworkInfo.smali 2013-01-21 12:55:58.961011204 -0600
9738 +++ opd-framework/smali/android/net/NetworkInfo.smali 2013-01-20 23:05:45.463703062 -0600
9739 @@ -822,6 +822,14 @@
9740 throw v0
9741 .end method
9743 +.method public setState(Landroid/net/NetworkInfo$State;)V
9744 + .registers 2
9746 + iput-object p1, p0, Landroid/net/NetworkInfo;->mState:Landroid/net/NetworkInfo$State;
9748 + return-void
9749 +.end method
9751 .method setSubtype(ILjava/lang/String;)V
9752 .registers 4
9754 diff -Npru stock-framework/smali/android/net/wifi/WifiInfo.smali opd-framework/smali/android/net/wifi/WifiInfo.smali
9755 --- stock-framework/smali/android/net/wifi/WifiInfo.smali 2013-01-21 12:55:59.040970198 -0600
9756 +++ opd-framework/smali/android/net/wifi/WifiInfo.smali 2013-01-20 23:05:45.615701151 -0600
9757 @@ -265,6 +265,44 @@
9758 return-void
9759 .end method
9761 +.method public constructor <init>(Z)V
9762 + .registers 4
9764 + const/4 v1, -0x1
9766 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
9768 + const-string v0, ""
9770 + invoke-static {v0}, Landroid/net/wifi/WifiSsid;->createFromAsciiEncoded(Ljava/lang/String;)Landroid/net/wifi/WifiSsid;
9772 + move-result-object v0
9774 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mWifiSsid:Landroid/net/wifi/WifiSsid;
9776 + const-string v0, ""
9778 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mBSSID:Ljava/lang/String;
9780 + iput v1, p0, Landroid/net/wifi/WifiInfo;->mNetworkId:I
9782 + sget-object v0, Landroid/net/wifi/SupplicantState;->UNINITIALIZED:Landroid/net/wifi/SupplicantState;
9784 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mSupplicantState:Landroid/net/wifi/SupplicantState;
9786 + const/16 v0, -0x270f
9788 + iput v0, p0, Landroid/net/wifi/WifiInfo;->mRssi:I
9790 + iput v1, p0, Landroid/net/wifi/WifiInfo;->mLinkSpeed:I
9792 + const/4 v0, 0x0
9794 + iput-boolean v0, p0, Landroid/net/wifi/WifiInfo;->mHiddenSSID:Z
9796 + return-void
9797 +.end method
9799 .method static synthetic access$002(Landroid/net/wifi/WifiInfo;Landroid/net/wifi/WifiSsid;)Landroid/net/wifi/WifiSsid;
9800 .registers 2
9802 diff -Npru stock-framework/smali/android/net/wifi/WifiStateMachine.smali opd-framework/smali/android/net/wifi/WifiStateMachine.smali
9803 --- stock-framework/smali/android/net/wifi/WifiStateMachine.smali 2013-01-21 12:55:59.120929192 -0600
9804 +++ opd-framework/smali/android/net/wifi/WifiStateMachine.smali 2013-01-20 23:05:45.675700396 -0600
9805 @@ -6829,7 +6829,7 @@
9807 invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
9809 - const-string v2, "mSuspendOptNeedsDisabled "
9810 + const-string/jumbo v2, "mSuspendOptNeedsDisabled "
9812 invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
9814 diff -Npru stock-framework/smali/android/os/storage/StorageVolume.smali opd-framework/smali/android/os/storage/StorageVolume.smali
9815 --- stock-framework/smali/android/os/storage/StorageVolume.smali 2013-01-21 12:55:59.280847180 -0600
9816 +++ opd-framework/smali/android/os/storage/StorageVolume.smali 2013-01-20 23:05:45.871697932 -0600
9817 @@ -421,7 +421,7 @@
9819 invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
9821 - const-string v1, "mStorageId="
9822 + const-string/jumbo v1, "mStorageId="
9824 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9826 diff -Npru stock-framework/smali/android/os/SystemProperties.smali opd-framework/smali/android/os/SystemProperties.smali
9827 --- stock-framework/smali/android/os/SystemProperties.smali 2013-01-21 12:55:59.268853332 -0600
9828 +++ opd-framework/smali/android/os/SystemProperties.smali 2013-01-20 23:05:45.851698183 -0600
9829 @@ -4,12 +4,28 @@
9832 # static fields
9833 +.field private static final GOT_ERROR:I = -0x3
9835 +.field private static final IS_ALLOWED:I = -0x1
9837 +.field private static final IS_NOT_ALLOWED:I = -0x2
9839 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "SystemProperties"
9841 .field public static final PROP_NAME_MAX:I = 0x1f
9843 .field public static final PROP_VALUE_MAX:I = 0x5b
9845 .field public static final QCOM_HARDWARE:Z
9847 +.field private static context:Landroid/content/Context;
9849 +.field private static mPm:Landroid/content/pm/IPackageManager;
9851 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
9853 +.field private static privacyMode:Z
9855 .field private static final sChangeCallbacks:Ljava/util/ArrayList;
9856 .annotation system Ldalvik/annotation/Signature;
9857 value = {
9858 @@ -26,10 +42,10 @@
9859 .method static constructor <clinit>()V
9860 .registers 2
9862 - const-string v0, "com.qc.hardware"
9864 const/4 v1, 0x0
9866 + const-string v0, "com.qc.hardware"
9868 invoke-static {v0, v1}, Landroid/os/SystemProperties;->native_get_boolean(Ljava/lang/String;Z)Z
9870 move-result v0
9871 @@ -42,6 +58,8 @@
9873 sput-object v0, Landroid/os/SystemProperties;->sChangeCallbacks:Ljava/util/ArrayList;
9875 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
9877 return-void
9878 .end method
9880 @@ -154,6 +172,205 @@
9881 throw v2
9882 .end method
9884 +.method private static checkIfPackagesAllowed()I
9885 + .registers 8
9887 + const/4 v5, -0x3
9889 + :try_start_1
9890 + sget-object v6, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9892 + if-eqz v6, :cond_41
9894 + const/4 v2, 0x0
9896 + invoke-static {}, Landroid/os/SystemProperties;->getPackageName()[Ljava/lang/String;
9898 + move-result-object v3
9900 + invoke-static {}, Landroid/os/Process;->myUid()I
9902 + move-result v4
9904 + if-eqz v3, :cond_2c
9906 + const/4 v1, 0x0
9908 + :goto_11
9909 + array-length v6, v3
9911 + if-ge v1, v6, :cond_2a
9913 + sget-object v6, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9915 + aget-object v7, v3, v1
9917 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
9919 + move-result-object v2
9921 + if-eqz v2, :cond_26
9923 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
9925 + move-result v6
9927 + if-eqz v6, :cond_26
9929 + const/4 v5, -0x2
9931 + :goto_25
9932 + return v5
9934 + :cond_26
9935 + const/4 v2, 0x0
9937 + add-int/lit8 v1, v1, 0x1
9939 + goto :goto_11
9941 + :cond_2a
9942 + const/4 v5, -0x1
9944 + goto :goto_25
9946 + :cond_2c
9947 + const-string v6, "SystemProperties"
9949 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
9951 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9952 + :try_end_34
9953 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
9955 + goto :goto_25
9957 + :catch_35
9958 + move-exception v0
9960 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
9962 + const-string v6, "SystemProperties"
9964 + const-string v7, "Got exception in checkIfPackagesAllowed"
9966 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9968 + goto :goto_25
9970 + :cond_41
9971 + :try_start_41
9972 + const-string v6, "SystemProperties"
9974 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
9976 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9977 + :try_end_49
9978 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
9980 + goto :goto_25
9981 +.end method
9983 +.method private static dataAccess(Z)V
9984 + .registers 6
9986 + invoke-static {}, Landroid/os/SystemProperties;->getPackageName()[Ljava/lang/String;
9988 + move-result-object v1
9990 + if-eqz p0, :cond_2f
9992 + if-eqz v1, :cond_2f
9994 + const/4 v0, 0x0
9996 + :goto_9
9997 + array-length v2, v1
9999 + if-ge v0, v2, :cond_58
10001 + const-string v2, "SystemProperties"
10003 + new-instance v3, Ljava/lang/StringBuilder;
10005 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
10007 + const-string v4, "Allowed Package: -"
10009 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10011 + move-result-object v3
10013 + aget-object v4, v1, v0
10015 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10017 + move-result-object v3
10019 + const-string v4, "- accessing networkinfo."
10021 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10023 + move-result-object v3
10025 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
10027 + move-result-object v3
10029 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
10031 + add-int/lit8 v0, v0, 0x1
10033 + goto :goto_9
10035 + :cond_2f
10036 + if-eqz v1, :cond_58
10038 + const/4 v0, 0x0
10040 + :goto_32
10041 + array-length v2, v1
10043 + if-ge v0, v2, :cond_58
10045 + const-string v2, "SystemProperties"
10047 + new-instance v3, Ljava/lang/StringBuilder;
10049 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
10051 + const-string v4, "Blocked Package: -"
10053 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10055 + move-result-object v3
10057 + aget-object v4, v1, v0
10059 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10061 + move-result-object v3
10063 + const-string v4, "- accessing networkinfo."
10065 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10067 + move-result-object v3
10069 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
10071 + move-result-object v3
10073 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
10075 + add-int/lit8 v0, v0, 0x1
10077 + goto :goto_32
10079 + :cond_58
10080 + return-void
10081 +.end method
10083 .method public static get(Ljava/lang/String;)Ljava/lang/String;
10084 .registers 3
10086 @@ -174,11 +391,53 @@
10087 throw v0
10089 :cond_10
10090 + const-string v0, "gsm.operator.alpha"
10092 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10094 + move-result v0
10096 + if-nez v0, :cond_20
10098 + const-string v0, "gsm.operator.numeric"
10100 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10102 + move-result v0
10104 + if-eqz v0, :cond_35
10106 + :cond_20
10107 + invoke-static {}, Landroid/os/SystemProperties;->initiate()V
10109 + invoke-static {}, Landroid/os/SystemProperties;->checkIfPackagesAllowed()I
10111 + move-result v0
10113 + const/4 v1, -0x2
10115 + if-ne v0, v1, :cond_31
10117 + const/4 v0, 0x0
10119 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10121 + const-string v0, ""
10123 + :goto_30
10124 + return-object v0
10126 + :cond_31
10127 + const/4 v0, 0x1
10129 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10131 + :cond_35
10132 invoke-static {p0}, Landroid/os/SystemProperties;->native_get(Ljava/lang/String;)Ljava/lang/String;
10134 move-result-object v0
10136 - return-object v0
10137 + goto :goto_30
10138 .end method
10140 .method public static get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
10141 @@ -201,11 +460,53 @@
10142 throw v0
10144 :cond_10
10145 + const-string v0, "gsm.operator.alpha"
10147 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10149 + move-result v0
10151 + if-nez v0, :cond_20
10153 + const-string v0, "gsm.operator.numeric"
10155 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10157 + move-result v0
10159 + if-eqz v0, :cond_35
10161 + :cond_20
10162 + invoke-static {}, Landroid/os/SystemProperties;->initiate()V
10164 + invoke-static {}, Landroid/os/SystemProperties;->checkIfPackagesAllowed()I
10166 + move-result v0
10168 + const/4 v1, -0x2
10170 + if-ne v0, v1, :cond_31
10172 + const/4 v0, 0x0
10174 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10176 + const-string v0, ""
10178 + :goto_30
10179 + return-object v0
10181 + :cond_31
10182 + const/4 v0, 0x1
10184 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10186 + :cond_35
10187 invoke-static {p0, p1}, Landroid/os/SystemProperties;->native_get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
10189 move-result-object v0
10191 - return-object v0
10192 + goto :goto_30
10193 .end method
10195 .method public static getBoolean(Ljava/lang/String;Z)Z
10196 @@ -388,6 +689,135 @@
10197 goto :goto_2c
10198 .end method
10200 +.method private static getPackageName()[Ljava/lang/String;
10201 + .registers 5
10203 + :try_start_0
10204 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10206 + if-eqz v3, :cond_f
10208 + invoke-static {}, Landroid/os/Process;->myUid()I
10210 + move-result v2
10212 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10214 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
10216 + move-result-object v1
10218 + :goto_e
10219 + return-object v1
10221 + :cond_f
10222 + const-string/jumbo v3, "package"
10224 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10226 + move-result-object v3
10228 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
10230 + move-result-object v3
10232 + sput-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10234 + invoke-static {}, Landroid/os/Process;->myUid()I
10236 + move-result v2
10238 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10240 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
10241 + :try_end_25
10242 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
10244 + move-result-object v1
10246 + goto :goto_e
10248 + :catch_27
10249 + move-exception v0
10251 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10253 + const-string v3, "SystemProperties"
10255 + const-string/jumbo v4, "something went wrong with getting package name"
10257 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10259 + const/4 v1, 0x0
10261 + goto :goto_e
10262 +.end method
10264 +.method private static initiate()V
10265 + .registers 4
10267 + const/4 v1, 0x0
10269 + :try_start_1
10270 + sput-object v1, Landroid/os/SystemProperties;->context:Landroid/content/Context;
10272 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
10274 + sget-object v2, Landroid/os/SystemProperties;->context:Landroid/content/Context;
10276 + const-string/jumbo v3, "privacy"
10278 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10280 + move-result-object v3
10282 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
10284 + move-result-object v3
10286 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
10288 + sput-object v1, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
10290 + const-string/jumbo v1, "package"
10292 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10294 + move-result-object v1
10296 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
10298 + move-result-object v1
10300 + sput-object v1, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10302 + const/4 v1, 0x1
10304 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
10305 + :try_end_27
10306 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
10308 + :goto_27
10309 + return-void
10311 + :catch_28
10312 + move-exception v0
10314 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10316 + const-string v1, "SystemProperties"
10318 + const-string v2, "Something went wrong with initalize variables"
10320 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10322 + const/4 v1, 0x0
10324 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
10326 + goto :goto_27
10327 +.end method
10329 .method private static native native_add_change_callback()V
10330 .end method
10332 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager.smali opd-framework/smali/android/privacy/IPrivacySettingsManager.smali
10333 --- stock-framework/smali/android/privacy/IPrivacySettingsManager.smali 1969-12-31 18:00:00.000000000 -0600
10334 +++ opd-framework/smali/android/privacy/IPrivacySettingsManager.smali 2013-01-20 23:05:45.899697580 -0600
10335 @@ -0,0 +1,104 @@
10336 +.class public interface abstract Landroid/privacy/IPrivacySettingsManager;
10337 +.super Ljava/lang/Object;
10338 +.source "IPrivacySettingsManager.java"
10340 +# interfaces
10341 +.implements Landroid/os/IInterface;
10344 +# annotations
10345 +.annotation system Ldalvik/annotation/MemberClasses;
10346 + value = {
10347 + Landroid/privacy/IPrivacySettingsManager$Stub;
10349 +.end annotation
10352 +# virtual methods
10353 +.method public abstract addObserver(Ljava/lang/String;)V
10354 + .annotation system Ldalvik/annotation/Throws;
10355 + value = {
10356 + Landroid/os/RemoteException;
10358 + .end annotation
10359 +.end method
10361 +.method public abstract deleteSettings(Ljava/lang/String;)Z
10362 + .annotation system Ldalvik/annotation/Throws;
10363 + value = {
10364 + Landroid/os/RemoteException;
10366 + .end annotation
10367 +.end method
10369 +.method public abstract getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
10370 + .annotation system Ldalvik/annotation/Throws;
10371 + value = {
10372 + Landroid/os/RemoteException;
10374 + .end annotation
10375 +.end method
10377 +.method public abstract getVersion()D
10378 + .annotation system Ldalvik/annotation/Throws;
10379 + value = {
10380 + Landroid/os/RemoteException;
10382 + .end annotation
10383 +.end method
10385 +.method public abstract notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
10386 + .annotation system Ldalvik/annotation/Throws;
10387 + value = {
10388 + Landroid/os/RemoteException;
10390 + .end annotation
10391 +.end method
10393 +.method public abstract purgeSettings()Z
10394 + .annotation system Ldalvik/annotation/Throws;
10395 + value = {
10396 + Landroid/os/RemoteException;
10398 + .end annotation
10399 +.end method
10401 +.method public abstract registerObservers()V
10402 + .annotation system Ldalvik/annotation/Throws;
10403 + value = {
10404 + Landroid/os/RemoteException;
10406 + .end annotation
10407 +.end method
10409 +.method public abstract saveSettings(Landroid/privacy/PrivacySettings;)Z
10410 + .annotation system Ldalvik/annotation/Throws;
10411 + value = {
10412 + Landroid/os/RemoteException;
10414 + .end annotation
10415 +.end method
10417 +.method public abstract setBootCompleted()V
10418 + .annotation system Ldalvik/annotation/Throws;
10419 + value = {
10420 + Landroid/os/RemoteException;
10422 + .end annotation
10423 +.end method
10425 +.method public abstract setEnabled(Z)Z
10426 + .annotation system Ldalvik/annotation/Throws;
10427 + value = {
10428 + Landroid/os/RemoteException;
10430 + .end annotation
10431 +.end method
10433 +.method public abstract setNotificationsEnabled(Z)Z
10434 + .annotation system Ldalvik/annotation/Throws;
10435 + value = {
10436 + Landroid/os/RemoteException;
10438 + .end annotation
10439 +.end method
10440 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali opd-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali
10441 --- stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali 1969-12-31 18:00:00.000000000 -0600
10442 +++ opd-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali 2013-01-20 23:05:45.899697580 -0600
10443 @@ -0,0 +1,743 @@
10444 +.class Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
10445 +.super Ljava/lang/Object;
10446 +.source "IPrivacySettingsManager.java"
10448 +# interfaces
10449 +.implements Landroid/privacy/IPrivacySettingsManager;
10452 +# annotations
10453 +.annotation system Ldalvik/annotation/EnclosingClass;
10454 + value = Landroid/privacy/IPrivacySettingsManager$Stub;
10455 +.end annotation
10457 +.annotation system Ldalvik/annotation/InnerClass;
10458 + accessFlags = 0xa
10459 + name = "Proxy"
10460 +.end annotation
10463 +# instance fields
10464 +.field private mRemote:Landroid/os/IBinder;
10467 +# direct methods
10468 +.method constructor <init>(Landroid/os/IBinder;)V
10469 + .registers 2
10471 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
10473 + iput-object p1, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10475 + return-void
10476 +.end method
10479 +# virtual methods
10480 +.method public addObserver(Ljava/lang/String;)V
10481 + .registers 7
10482 + .annotation system Ldalvik/annotation/Throws;
10483 + value = {
10484 + Landroid/os/RemoteException;
10486 + .end annotation
10488 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10490 + move-result-object v0
10492 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10494 + move-result-object v1
10496 + :try_start_8
10497 + const-string v2, "android.privacy.IPrivacySettingsManager"
10499 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10501 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10503 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10505 + const/4 v3, 0x6
10507 + const/4 v4, 0x0
10509 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10511 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10512 + :try_end_1a
10513 + .catchall {:try_start_8 .. :try_end_1a} :catchall_21
10515 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10517 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10519 + return-void
10521 + :catchall_21
10522 + move-exception v2
10524 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10526 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10528 + throw v2
10529 +.end method
10531 +.method public asBinder()Landroid/os/IBinder;
10532 + .registers 2
10534 + iget-object v0, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10536 + return-object v0
10537 +.end method
10539 +.method public deleteSettings(Ljava/lang/String;)Z
10540 + .registers 8
10541 + .annotation system Ldalvik/annotation/Throws;
10542 + value = {
10543 + Landroid/os/RemoteException;
10545 + .end annotation
10547 + const/4 v2, 0x0
10549 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10551 + move-result-object v0
10553 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10555 + move-result-object v1
10557 + :try_start_9
10558 + const-string v3, "android.privacy.IPrivacySettingsManager"
10560 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10562 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10564 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10566 + const/4 v4, 0x3
10568 + const/4 v5, 0x0
10570 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10572 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10574 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10575 + :try_end_1e
10576 + .catchall {:try_start_9 .. :try_end_1e} :catchall_29
10578 + move-result v3
10580 + if-eqz v3, :cond_22
10582 + const/4 v2, 0x1
10584 + :cond_22
10585 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10587 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10589 + return v2
10591 + :catchall_29
10592 + move-exception v3
10594 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10596 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10598 + throw v3
10599 +.end method
10601 +.method public getInterfaceDescriptor()Ljava/lang/String;
10602 + .registers 2
10604 + const-string v0, "android.privacy.IPrivacySettingsManager"
10606 + return-object v0
10607 +.end method
10609 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
10610 + .registers 8
10611 + .annotation system Ldalvik/annotation/Throws;
10612 + value = {
10613 + Landroid/os/RemoteException;
10615 + .end annotation
10617 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10619 + move-result-object v0
10621 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10623 + move-result-object v1
10625 + :try_start_8
10626 + const-string v3, "android.privacy.IPrivacySettingsManager"
10628 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10630 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10632 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10634 + const/4 v4, 0x1
10636 + const/4 v5, 0x0
10638 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10640 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10642 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10644 + move-result v3
10646 + if-eqz v3, :cond_2f
10648 + sget-object v3, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
10650 + invoke-interface {v3, v1}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
10652 + move-result-object v2
10654 + check-cast v2, Landroid/privacy/PrivacySettings;
10655 + :try_end_28
10656 + .catchall {:try_start_8 .. :try_end_28} :catchall_31
10658 + :goto_28
10659 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10661 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10663 + return-object v2
10665 + :cond_2f
10666 + const/4 v2, 0x0
10668 + goto :goto_28
10670 + :catchall_31
10671 + move-exception v3
10673 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10675 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10677 + throw v3
10678 +.end method
10680 +.method public getVersion()D
10681 + .registers 8
10682 + .annotation system Ldalvik/annotation/Throws;
10683 + value = {
10684 + Landroid/os/RemoteException;
10686 + .end annotation
10688 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10690 + move-result-object v0
10692 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10694 + move-result-object v1
10696 + :try_start_8
10697 + const-string v4, "android.privacy.IPrivacySettingsManager"
10699 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10701 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10703 + const/16 v5, 0x8
10705 + const/4 v6, 0x0
10707 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10709 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10711 + invoke-virtual {v1}, Landroid/os/Parcel;->readDouble()D
10712 + :try_end_1b
10713 + .catchall {:try_start_8 .. :try_end_1b} :catchall_23
10715 + move-result-wide v2
10717 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10719 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10721 + return-wide v2
10723 + :catchall_23
10724 + move-exception v4
10726 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10728 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10730 + throw v4
10731 +.end method
10733 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
10734 + .registers 10
10735 + .annotation system Ldalvik/annotation/Throws;
10736 + value = {
10737 + Landroid/os/RemoteException;
10739 + .end annotation
10741 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10743 + move-result-object v0
10745 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10747 + move-result-object v1
10749 + :try_start_8
10750 + const-string v2, "android.privacy.IPrivacySettingsManager"
10752 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10754 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10756 + invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeByte(B)V
10758 + invoke-virtual {v0, p3}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10760 + invoke-virtual {v0, p4}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10762 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10764 + const/4 v3, 0x4
10766 + const/4 v4, 0x0
10768 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10770 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10771 + :try_end_23
10772 + .catchall {:try_start_8 .. :try_end_23} :catchall_2a
10774 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10776 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10778 + return-void
10780 + :catchall_2a
10781 + move-exception v2
10783 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10785 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10787 + throw v2
10788 +.end method
10790 +.method public purgeSettings()Z
10791 + .registers 7
10792 + .annotation system Ldalvik/annotation/Throws;
10793 + value = {
10794 + Landroid/os/RemoteException;
10796 + .end annotation
10798 + const/4 v2, 0x0
10800 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10802 + move-result-object v0
10804 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10806 + move-result-object v1
10808 + :try_start_9
10809 + const-string v3, "android.privacy.IPrivacySettingsManager"
10811 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10813 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10815 + const/4 v4, 0x7
10817 + const/4 v5, 0x0
10819 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10821 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10823 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10824 + :try_end_1b
10825 + .catchall {:try_start_9 .. :try_end_1b} :catchall_26
10827 + move-result v3
10829 + if-eqz v3, :cond_1f
10831 + const/4 v2, 0x1
10833 + :cond_1f
10834 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10836 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10838 + return v2
10840 + :catchall_26
10841 + move-exception v3
10843 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10845 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10847 + throw v3
10848 +.end method
10850 +.method public registerObservers()V
10851 + .registers 6
10852 + .annotation system Ldalvik/annotation/Throws;
10853 + value = {
10854 + Landroid/os/RemoteException;
10856 + .end annotation
10858 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10860 + move-result-object v0
10862 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10864 + move-result-object v1
10866 + :try_start_8
10867 + const-string v2, "android.privacy.IPrivacySettingsManager"
10869 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10871 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10873 + const/4 v3, 0x5
10875 + const/4 v4, 0x0
10877 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10879 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10880 + :try_end_17
10881 + .catchall {:try_start_8 .. :try_end_17} :catchall_1e
10883 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10885 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10887 + return-void
10889 + :catchall_1e
10890 + move-exception v2
10892 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10894 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10896 + throw v2
10897 +.end method
10899 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
10900 + .registers 9
10901 + .annotation system Ldalvik/annotation/Throws;
10902 + value = {
10903 + Landroid/os/RemoteException;
10905 + .end annotation
10907 + const/4 v2, 0x1
10909 + const/4 v3, 0x0
10911 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10913 + move-result-object v0
10915 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10917 + move-result-object v1
10919 + :try_start_a
10920 + const-string v4, "android.privacy.IPrivacySettingsManager"
10922 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10924 + if-eqz p1, :cond_30
10926 + const/4 v4, 0x1
10928 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
10930 + const/4 v4, 0x0
10932 + invoke-virtual {p1, v0, v4}, Landroid/privacy/PrivacySettings;->writeToParcel(Landroid/os/Parcel;I)V
10934 + :goto_19
10935 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10937 + const/4 v5, 0x2
10939 + const/4 v6, 0x0
10941 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10943 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10945 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10946 + :try_end_26
10947 + .catchall {:try_start_a .. :try_end_26} :catchall_35
10949 + move-result v4
10951 + if-eqz v4, :cond_3d
10953 + :goto_29
10954 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10956 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10958 + return v2
10960 + :cond_30
10961 + const/4 v4, 0x0
10963 + :try_start_31
10964 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
10965 + :try_end_34
10966 + .catchall {:try_start_31 .. :try_end_34} :catchall_35
10968 + goto :goto_19
10970 + :catchall_35
10971 + move-exception v3
10973 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10975 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10977 + throw v3
10979 + :cond_3d
10980 + move v2, v3
10982 + goto :goto_29
10983 +.end method
10985 +.method public setBootCompleted()V
10986 + .registers 6
10987 + .annotation system Ldalvik/annotation/Throws;
10988 + value = {
10989 + Landroid/os/RemoteException;
10991 + .end annotation
10993 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10995 + move-result-object v0
10997 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10999 + move-result-object v1
11001 + :try_start_8
11002 + const-string v2, "android.privacy.IPrivacySettingsManager"
11004 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11006 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11008 + const/16 v3, 0xb
11010 + const/4 v4, 0x0
11012 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11014 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11015 + :try_end_18
11016 + .catchall {:try_start_8 .. :try_end_18} :catchall_1f
11018 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11020 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11022 + return-void
11024 + :catchall_1f
11025 + move-exception v2
11027 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11029 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11031 + throw v2
11032 +.end method
11034 +.method public setEnabled(Z)Z
11035 + .registers 9
11036 + .annotation system Ldalvik/annotation/Throws;
11037 + value = {
11038 + Landroid/os/RemoteException;
11040 + .end annotation
11042 + const/4 v2, 0x1
11044 + const/4 v3, 0x0
11046 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11048 + move-result-object v0
11050 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11052 + move-result-object v1
11054 + :try_start_a
11055 + const-string v4, "android.privacy.IPrivacySettingsManager"
11057 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11059 + if-eqz p1, :cond_2d
11061 + move v4, v2
11063 + :goto_12
11064 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11066 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11068 + const/16 v5, 0x9
11070 + const/4 v6, 0x0
11072 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11074 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11076 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11077 + :try_end_23
11078 + .catchall {:try_start_a .. :try_end_23} :catchall_31
11080 + move-result v4
11082 + if-eqz v4, :cond_2f
11084 + :goto_26
11085 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11087 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11089 + return v2
11091 + :cond_2d
11092 + move v4, v3
11094 + goto :goto_12
11096 + :cond_2f
11097 + move v2, v3
11099 + goto :goto_26
11101 + :catchall_31
11102 + move-exception v3
11104 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11106 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11108 + throw v3
11109 +.end method
11111 +.method public setNotificationsEnabled(Z)Z
11112 + .registers 9
11113 + .annotation system Ldalvik/annotation/Throws;
11114 + value = {
11115 + Landroid/os/RemoteException;
11117 + .end annotation
11119 + const/4 v2, 0x1
11121 + const/4 v3, 0x0
11123 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11125 + move-result-object v0
11127 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11129 + move-result-object v1
11131 + :try_start_a
11132 + const-string v4, "android.privacy.IPrivacySettingsManager"
11134 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11136 + if-eqz p1, :cond_2d
11138 + move v4, v2
11140 + :goto_12
11141 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11143 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11145 + const/16 v5, 0xa
11147 + const/4 v6, 0x0
11149 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11151 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11153 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11154 + :try_end_23
11155 + .catchall {:try_start_a .. :try_end_23} :catchall_31
11157 + move-result v4
11159 + if-eqz v4, :cond_2f
11161 + :goto_26
11162 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11164 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11166 + return v2
11168 + :cond_2d
11169 + move v4, v3
11171 + goto :goto_12
11173 + :cond_2f
11174 + move v2, v3
11176 + goto :goto_26
11178 + :catchall_31
11179 + move-exception v3
11181 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11183 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11185 + throw v3
11186 +.end method
11187 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali opd-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali
11188 --- stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali 1969-12-31 18:00:00.000000000 -0600
11189 +++ opd-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali 2013-01-20 23:05:45.899697580 -0600
11190 @@ -0,0 +1,412 @@
11191 +.class public abstract Landroid/privacy/IPrivacySettingsManager$Stub;
11192 +.super Landroid/os/Binder;
11193 +.source "IPrivacySettingsManager.java"
11195 +# interfaces
11196 +.implements Landroid/privacy/IPrivacySettingsManager;
11199 +# annotations
11200 +.annotation system Ldalvik/annotation/EnclosingClass;
11201 + value = Landroid/privacy/IPrivacySettingsManager;
11202 +.end annotation
11204 +.annotation system Ldalvik/annotation/InnerClass;
11205 + accessFlags = 0x409
11206 + name = "Stub"
11207 +.end annotation
11209 +.annotation system Ldalvik/annotation/MemberClasses;
11210 + value = {
11211 + Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
11213 +.end annotation
11216 +# static fields
11217 +.field private static final DESCRIPTOR:Ljava/lang/String; = "android.privacy.IPrivacySettingsManager"
11219 +.field static final TRANSACTION_addObserver:I = 0x6
11221 +.field static final TRANSACTION_deleteSettings:I = 0x3
11223 +.field static final TRANSACTION_getSettings:I = 0x1
11225 +.field static final TRANSACTION_getVersion:I = 0x8
11227 +.field static final TRANSACTION_notification:I = 0x4
11229 +.field static final TRANSACTION_purgeSettings:I = 0x7
11231 +.field static final TRANSACTION_registerObservers:I = 0x5
11233 +.field static final TRANSACTION_saveSettings:I = 0x2
11235 +.field static final TRANSACTION_setBootCompleted:I = 0xb
11237 +.field static final TRANSACTION_setEnabled:I = 0x9
11239 +.field static final TRANSACTION_setNotificationsEnabled:I = 0xa
11242 +# direct methods
11243 +.method public constructor <init>()V
11244 + .registers 2
11246 + invoke-direct {p0}, Landroid/os/Binder;-><init>()V
11248 + const-string v0, "android.privacy.IPrivacySettingsManager"
11250 + invoke-virtual {p0, p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V
11252 + return-void
11253 +.end method
11255 +.method public static asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
11256 + .registers 3
11258 + if-nez p0, :cond_4
11260 + const/4 v0, 0x0
11262 + :goto_3
11263 + return-object v0
11265 + :cond_4
11266 + const-string v1, "android.privacy.IPrivacySettingsManager"
11268 + invoke-interface {p0, v1}, Landroid/os/IBinder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
11270 + move-result-object v0
11272 + if-eqz v0, :cond_13
11274 + instance-of v1, v0, Landroid/privacy/IPrivacySettingsManager;
11276 + if-eqz v1, :cond_13
11278 + check-cast v0, Landroid/privacy/IPrivacySettingsManager;
11280 + goto :goto_3
11282 + :cond_13
11283 + new-instance v0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
11285 + invoke-direct {v0, p0}, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
11287 + goto :goto_3
11288 +.end method
11291 +# virtual methods
11292 +.method public asBinder()Landroid/os/IBinder;
11293 + .registers 1
11295 + return-object p0
11296 +.end method
11298 +.method public onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11299 + .registers 14
11300 + .annotation system Ldalvik/annotation/Throws;
11301 + value = {
11302 + Landroid/os/RemoteException;
11304 + .end annotation
11306 + const/4 v6, 0x0
11308 + const/4 v7, 0x1
11310 + sparse-switch p1, :sswitch_data_10e
11312 + invoke-super {p0, p1, p2, p3, p4}, Landroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11314 + move-result v7
11316 + :goto_9
11317 + return v7
11319 + :sswitch_a
11320 + const-string v6, "android.privacy.IPrivacySettingsManager"
11322 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
11324 + goto :goto_9
11326 + :sswitch_10
11327 + const-string v8, "android.privacy.IPrivacySettingsManager"
11329 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11331 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11333 + move-result-object v0
11335 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11337 + move-result-object v4
11339 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11341 + if-eqz v4, :cond_29
11343 + invoke-virtual {p3, v7}, Landroid/os/Parcel;->writeInt(I)V
11345 + invoke-virtual {v4, p3, v7}, Landroid/privacy/PrivacySettings;->writeToParcel(Landroid/os/Parcel;I)V
11347 + goto :goto_9
11349 + :cond_29
11350 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11352 + goto :goto_9
11354 + :sswitch_2d
11355 + const-string v8, "android.privacy.IPrivacySettingsManager"
11357 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11359 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11361 + move-result v8
11363 + if-eqz v8, :cond_4e
11365 + sget-object v8, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
11367 + invoke-interface {v8, p2}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
11369 + move-result-object v0
11371 + check-cast v0, Landroid/privacy/PrivacySettings;
11373 + :goto_40
11374 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->saveSettings(Landroid/privacy/PrivacySettings;)Z
11376 + move-result v4
11378 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11380 + if-eqz v4, :cond_4a
11382 + move v6, v7
11384 + :cond_4a
11385 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11387 + goto :goto_9
11389 + :cond_4e
11390 + const/4 v0, 0x0
11392 + goto :goto_40
11394 + :sswitch_50
11395 + const-string v8, "android.privacy.IPrivacySettingsManager"
11397 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11399 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11401 + move-result-object v0
11403 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->deleteSettings(Ljava/lang/String;)Z
11405 + move-result v4
11407 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11409 + if-eqz v4, :cond_63
11411 + move v6, v7
11413 + :cond_63
11414 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11416 + goto :goto_9
11418 + :sswitch_67
11419 + const-string v6, "android.privacy.IPrivacySettingsManager"
11421 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11423 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11425 + move-result-object v0
11427 + invoke-virtual {p2}, Landroid/os/Parcel;->readByte()B
11429 + move-result v1
11431 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11433 + move-result-object v2
11435 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11437 + move-result-object v3
11439 + invoke-virtual {p0, v0, v1, v2, v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11441 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11443 + goto :goto_9
11445 + :sswitch_83
11446 + const-string v6, "android.privacy.IPrivacySettingsManager"
11448 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11450 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->registerObservers()V
11452 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11454 + goto/16 :goto_9
11456 + :sswitch_90
11457 + const-string v6, "android.privacy.IPrivacySettingsManager"
11459 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11461 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11463 + move-result-object v0
11465 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->addObserver(Ljava/lang/String;)V
11467 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11469 + goto/16 :goto_9
11471 + :sswitch_a1
11472 + const-string v8, "android.privacy.IPrivacySettingsManager"
11474 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11476 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->purgeSettings()Z
11478 + move-result v4
11480 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11482 + if-eqz v4, :cond_b0
11484 + move v6, v7
11486 + :cond_b0
11487 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11489 + goto/16 :goto_9
11491 + :sswitch_b5
11492 + const-string v6, "android.privacy.IPrivacySettingsManager"
11494 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11496 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->getVersion()D
11498 + move-result-wide v4
11500 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11502 + invoke-virtual {p3, v4, v5}, Landroid/os/Parcel;->writeDouble(D)V
11504 + goto/16 :goto_9
11506 + :sswitch_c6
11507 + const-string v8, "android.privacy.IPrivacySettingsManager"
11509 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11511 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11513 + move-result v8
11515 + if-eqz v8, :cond_e1
11517 + move v0, v7
11519 + :goto_d2
11520 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setEnabled(Z)Z
11522 + move-result v4
11524 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11526 + if-eqz v4, :cond_dc
11528 + move v6, v7
11530 + :cond_dc
11531 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11533 + goto/16 :goto_9
11535 + :cond_e1
11536 + move v0, v6
11538 + goto :goto_d2
11540 + :sswitch_e3
11541 + const-string v8, "android.privacy.IPrivacySettingsManager"
11543 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11545 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11547 + move-result v8
11549 + if-eqz v8, :cond_fe
11551 + move v0, v7
11553 + :goto_ef
11554 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setNotificationsEnabled(Z)Z
11556 + move-result v4
11558 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11560 + if-eqz v4, :cond_f9
11562 + move v6, v7
11564 + :cond_f9
11565 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11567 + goto/16 :goto_9
11569 + :cond_fe
11570 + move v0, v6
11572 + goto :goto_ef
11574 + :sswitch_100
11575 + const-string v6, "android.privacy.IPrivacySettingsManager"
11577 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11579 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setBootCompleted()V
11581 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11583 + goto/16 :goto_9
11585 + nop
11587 + :sswitch_data_10e
11588 + .sparse-switch
11589 + 0x1 -> :sswitch_10
11590 + 0x2 -> :sswitch_2d
11591 + 0x3 -> :sswitch_50
11592 + 0x4 -> :sswitch_67
11593 + 0x5 -> :sswitch_83
11594 + 0x6 -> :sswitch_90
11595 + 0x7 -> :sswitch_a1
11596 + 0x8 -> :sswitch_b5
11597 + 0x9 -> :sswitch_c6
11598 + 0xa -> :sswitch_e3
11599 + 0xb -> :sswitch_100
11600 + 0x5f4e5446 -> :sswitch_a
11601 + .end sparse-switch
11602 +.end method
11603 diff -Npru stock-framework/smali/android/privacy/PrivacyFileObserver.smali opd-framework/smali/android/privacy/PrivacyFileObserver.smali
11604 --- stock-framework/smali/android/privacy/PrivacyFileObserver.smali 1969-12-31 18:00:00.000000000 -0600
11605 +++ opd-framework/smali/android/privacy/PrivacyFileObserver.smali 2013-01-20 23:05:45.899697580 -0600
11606 @@ -0,0 +1,272 @@
11607 +.class public final Landroid/privacy/PrivacyFileObserver;
11608 +.super Landroid/os/FileObserver;
11609 +.source "PrivacyFileObserver.java"
11612 +# static fields
11613 +.field public static final PACKAGE_PATH_INDEX:I = 0x3
11615 +.field public static final SETTINGS_TYPE_INDEX:I = 0x4
11617 +.field public static final TAG:Ljava/lang/String; = "PrivacyFileObserver"
11620 +# instance fields
11621 +.field public absolutePath:Ljava/lang/String;
11623 +.field public children:Ljava/util/HashMap;
11624 + .annotation system Ldalvik/annotation/Signature;
11625 + value = {
11626 + "Ljava/util/HashMap",
11627 + "<",
11628 + "Ljava/lang/String;",
11629 + "Landroid/privacy/PrivacyFileObserver;",
11630 + ">;"
11632 + .end annotation
11633 +.end field
11635 +.field private pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11638 +# direct methods
11639 +.method public constructor <init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11640 + .registers 12
11642 + const/16 v8, 0xfff
11644 + invoke-direct {p0, p1, v8}, Landroid/os/FileObserver;-><init>(Ljava/lang/String;I)V
11646 + iput-object p1, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11648 + iput-object p2, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11650 + new-instance v8, Ljava/util/HashMap;
11652 + invoke-direct {v8}, Ljava/util/HashMap;-><init>()V
11654 + iput-object v8, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11656 + new-instance v7, Ljava/io/File;
11658 + iget-object v8, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11660 + invoke-direct {v7, v8}, Ljava/io/File;-><init>(Ljava/lang/String;)V
11662 + invoke-virtual {v7}, Ljava/io/File;->isDirectory()Z
11664 + move-result v8
11666 + if-eqz v8, :cond_42
11668 + invoke-virtual {v7}, Ljava/io/File;->listFiles()[Ljava/io/File;
11670 + move-result-object v6
11672 + move-object v0, v6
11674 + array-length v4, v0
11676 + const/4 v3, 0x0
11678 + :goto_24
11679 + if-ge v3, v4, :cond_42
11681 + aget-object v2, v0, v3
11683 + invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
11685 + move-result-object v5
11687 + new-instance v1, Landroid/privacy/PrivacyFileObserver;
11689 + invoke-direct {v1, v5, p2}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11691 + iget-object v8, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11693 + invoke-virtual {v8, v5, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
11695 + invoke-virtual {v2}, Ljava/io/File;->isFile()Z
11697 + move-result v8
11699 + if-eqz v8, :cond_3f
11701 + invoke-virtual {v1}, Landroid/privacy/PrivacyFileObserver;->startWatching()V
11703 + :cond_3f
11704 + add-int/lit8 v3, v3, 0x1
11706 + goto :goto_24
11708 + :cond_42
11709 + return-void
11710 +.end method
11713 +# virtual methods
11714 +.method public addObserver(Ljava/lang/String;)V
11715 + .registers 6
11717 + new-instance v2, Ljava/lang/StringBuilder;
11719 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
11721 + iget-object v3, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11723 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11725 + move-result-object v2
11727 + const-string v3, "/"
11729 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11731 + move-result-object v2
11733 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11735 + move-result-object v2
11737 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
11739 + move-result-object v1
11741 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11743 + invoke-virtual {v2, v1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
11745 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
11747 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11749 + invoke-direct {v0, v1, v2}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11751 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11753 + invoke-virtual {v2, v1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
11755 + return-void
11756 +.end method
11758 +.method public onEvent(ILjava/lang/String;)V
11759 + .registers 12
11761 + and-int/lit8 v5, p1, 0x1
11763 + if-eqz v5, :cond_48
11765 + new-instance v4, Ljava/util/StringTokenizer;
11767 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11769 + const-string v6, "/"
11771 + invoke-direct {v4, v5, v6}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
11773 + const/4 v0, 0x0
11775 + :goto_e
11776 + const/4 v5, 0x3
11778 + if-ge v0, v5, :cond_1d
11780 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreElements()Z
11782 + move-result v5
11784 + if-eqz v5, :cond_1d
11786 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
11788 + add-int/lit8 v0, v0, 0x1
11790 + goto :goto_e
11792 + :cond_1d
11793 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
11795 + move-result-object v2
11797 + const/4 v3, 0x0
11799 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreElements()Z
11801 + move-result v5
11803 + if-eqz v5, :cond_2c
11805 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
11807 + move-result-object v3
11809 + :cond_2c
11810 + if-eqz v3, :cond_49
11812 + :try_start_2e
11813 + const-string v5, "ipTableProtectSetting"
11815 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
11817 + move-result v5
11819 + if-eqz v5, :cond_49
11821 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11823 + invoke-virtual {v5, v2}, Landroid/privacy/PrivacySettingsManagerService;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11825 + move-result-object v1
11827 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11829 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
11831 + move-result v6
11833 + const-string v7, "iptables"
11835 + const/4 v8, 0x0
11837 + invoke-virtual {v5, v2, v6, v7, v8}, Landroid/privacy/PrivacySettingsManagerService;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11839 + :cond_48
11840 + :goto_48
11841 + return-void
11843 + :cond_49
11844 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11846 + invoke-virtual {v5, v2}, Landroid/privacy/PrivacySettingsManagerService;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11848 + move-result-object v1
11850 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11852 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
11854 + move-result v6
11856 + const-string/jumbo v7, "systemLogs"
11858 + const/4 v8, 0x0
11860 + invoke-virtual {v5, v2, v6, v7, v8}, Landroid/privacy/PrivacySettingsManagerService;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11861 + :try_end_5c
11862 + .catch Ljava/lang/Exception; {:try_start_2e .. :try_end_5c} :catch_5d
11864 + goto :goto_48
11866 + :catch_5d
11867 + move-exception v5
11869 + goto :goto_48
11870 +.end method
11872 +.method public startWatching()V
11873 + .registers 1
11875 + invoke-super {p0}, Landroid/os/FileObserver;->startWatching()V
11877 + return-void
11878 +.end method
11879 diff -Npru stock-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali opd-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali
11880 --- stock-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali 1969-12-31 18:00:00.000000000 -0600
11881 +++ opd-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali 2013-01-20 23:05:45.903697529 -0600
11882 @@ -0,0 +1,5005 @@
11883 +.class public final Landroid/privacy/PrivacyPersistenceAdapter;
11884 +.super Ljava/lang/Object;
11885 +.source "PrivacyPersistenceAdapter.java"
11888 +# static fields
11889 +.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) );"
11891 +.field private static final CREATE_TABLE_MAP:Ljava/lang/String; = "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
11893 +.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);"
11895 +.field private static final DATABASE_FIELDS:[Ljava/lang/String; = null
11897 +.field private static final DATABASE_FILE:Ljava/lang/String; = "/data/system/privacy.db"
11899 +.field private static final DATABASE_VERSION:I = 0x4
11901 +.field public static final DUMMY_UID:I = -0x1
11903 +.field private static final INSERT_ENABLED:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
11905 +.field private static final INSERT_NOTIFICATIONS_ENABLED:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
11907 +.field private static final INSERT_VERSION:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
11909 +.field private static final LOG_LOCKING:Z = false
11911 +.field private static final RETRY_QUERY_COUNT:I = 0x5
11913 +.field public static final SETTINGS_DIRECTORY:Ljava/lang/String; = "/data/system/privacy"
11915 +.field public static final SETTING_DB_VERSION:Ljava/lang/String; = "db_version"
11917 +.field public static final SETTING_ENABLED:Ljava/lang/String; = "enabled"
11919 +.field public static final SETTING_NOTIFICATIONS_ENABLED:Ljava/lang/String; = "notifications_enabled"
11921 +.field private static final TABLE_ALLOWED_CONTACTS:Ljava/lang/String; = "allowed_contacts"
11923 +.field private static final TABLE_MAP:Ljava/lang/String; = "map"
11925 +.field private static final TABLE_SETTINGS:Ljava/lang/String; = "settings"
11927 +.field private static final TABLE_VERSION:Ljava/lang/String; = "version"
11929 +.field private static final TAG:Ljava/lang/String; = "PrivacyPersistenceAdapter"
11931 +.field public static final VALUE_FALSE:Ljava/lang/String; = "0"
11933 +.field public static final VALUE_TRUE:Ljava/lang/String; = "1"
11935 +.field public static volatile sDbAccessThreads:Ljava/lang/Integer;
11937 +.field private static sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
11939 +.field public static volatile sDbVersion:I
11942 +# instance fields
11943 +.field private mContext:Landroid/content/Context;
11945 +.field private mDb:Landroid/database/sqlite/SQLiteDatabase;
11948 +# direct methods
11949 +.method static constructor <clinit>()V
11950 + .registers 3
11952 + const/4 v2, 0x0
11954 + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
11956 + move-result-object v0
11958 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
11960 + new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock;
11962 + invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;-><init>()V
11964 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
11966 + const/16 v0, 0x2f
11968 + new-array v0, v0, [Ljava/lang/String;
11970 + const-string v1, "_id"
11972 + aput-object v1, v0, v2
11974 + const/4 v1, 0x1
11976 + const-string/jumbo v2, "packageName"
11978 + aput-object v2, v0, v1
11980 + const/4 v1, 0x2
11982 + const-string/jumbo v2, "uid"
11984 + aput-object v2, v0, v1
11986 + const/4 v1, 0x3
11988 + const-string v2, "deviceIdSetting"
11990 + aput-object v2, v0, v1
11992 + const/4 v1, 0x4
11994 + const-string v2, "deviceId"
11996 + aput-object v2, v0, v1
11998 + const/4 v1, 0x5
12000 + const-string v2, "line1NumberSetting"
12002 + aput-object v2, v0, v1
12004 + const/4 v1, 0x6
12006 + const-string v2, "line1Number"
12008 + aput-object v2, v0, v1
12010 + const/4 v1, 0x7
12012 + const-string v2, "locationGpsSetting"
12014 + aput-object v2, v0, v1
12016 + const/16 v1, 0x8
12018 + const-string v2, "locationGpsLat"
12020 + aput-object v2, v0, v1
12022 + const/16 v1, 0x9
12024 + const-string v2, "locationGpsLon"
12026 + aput-object v2, v0, v1
12028 + const/16 v1, 0xa
12030 + const-string v2, "locationNetworkSetting"
12032 + aput-object v2, v0, v1
12034 + const/16 v1, 0xb
12036 + const-string v2, "locationNetworkLat"
12038 + aput-object v2, v0, v1
12040 + const/16 v1, 0xc
12042 + const-string v2, "locationNetworkLon"
12044 + aput-object v2, v0, v1
12046 + const/16 v1, 0xd
12048 + const-string/jumbo v2, "networkInfoSetting"
12050 + aput-object v2, v0, v1
12052 + const/16 v1, 0xe
12054 + const-string/jumbo v2, "simInfoSetting"
12056 + aput-object v2, v0, v1
12058 + const/16 v1, 0xf
12060 + const-string/jumbo v2, "simSerialNumberSetting"
12062 + aput-object v2, v0, v1
12064 + const/16 v1, 0x10
12066 + const-string/jumbo v2, "simSerialNumber"
12068 + aput-object v2, v0, v1
12070 + const/16 v1, 0x11
12072 + const-string/jumbo v2, "subscriberIdSetting"
12074 + aput-object v2, v0, v1
12076 + const/16 v1, 0x12
12078 + const-string/jumbo v2, "subscriberId"
12080 + aput-object v2, v0, v1
12082 + const/16 v1, 0x13
12084 + const-string v2, "accountsSetting"
12086 + aput-object v2, v0, v1
12088 + const/16 v1, 0x14
12090 + const-string v2, "accountsAuthTokensSetting"
12092 + aput-object v2, v0, v1
12094 + const/16 v1, 0x15
12096 + const-string/jumbo v2, "outgoingCallsSetting"
12098 + aput-object v2, v0, v1
12100 + const/16 v1, 0x16
12102 + const-string v2, "incomingCallsSetting"
12104 + aput-object v2, v0, v1
12106 + const/16 v1, 0x17
12108 + const-string v2, "contactsSetting"
12110 + aput-object v2, v0, v1
12112 + const/16 v1, 0x18
12114 + const-string v2, "calendarSetting"
12116 + aput-object v2, v0, v1
12118 + const/16 v1, 0x19
12120 + const-string/jumbo v2, "mmsSetting"
12122 + aput-object v2, v0, v1
12124 + const/16 v1, 0x1a
12126 + const-string/jumbo v2, "smsSetting"
12128 + aput-object v2, v0, v1
12130 + const/16 v1, 0x1b
12132 + const-string v2, "callLogSetting"
12134 + aput-object v2, v0, v1
12136 + const/16 v1, 0x1c
12138 + const-string v2, "bookmarksSetting"
12140 + aput-object v2, v0, v1
12142 + const/16 v1, 0x1d
12144 + const-string/jumbo v2, "systemLogsSetting"
12146 + aput-object v2, v0, v1
12148 + const/16 v1, 0x1e
12150 + const-string v2, "externalStorageSetting"
12152 + aput-object v2, v0, v1
12154 + const/16 v1, 0x1f
12156 + const-string v2, "cameraSetting"
12158 + aput-object v2, v0, v1
12160 + const/16 v1, 0x20
12162 + const-string/jumbo v2, "recordAudioSetting"
12164 + aput-object v2, v0, v1
12166 + const/16 v1, 0x21
12168 + const-string/jumbo v2, "notificationSetting"
12170 + aput-object v2, v0, v1
12172 + const/16 v1, 0x22
12174 + const-string v2, "intentBootCompletedSetting"
12176 + aput-object v2, v0, v1
12178 + const/16 v1, 0x23
12180 + const-string/jumbo v2, "smsSendSetting"
12182 + aput-object v2, v0, v1
12184 + const/16 v1, 0x24
12186 + const-string/jumbo v2, "phoneCallSetting"
12188 + aput-object v2, v0, v1
12190 + const/16 v1, 0x25
12192 + const-string v2, "ipTableProtectSetting"
12194 + aput-object v2, v0, v1
12196 + const/16 v1, 0x26
12198 + const-string v2, "iccAccessSetting"
12200 + aput-object v2, v0, v1
12202 + const/16 v1, 0x27
12204 + const-string v2, "addOnManagementSetting"
12206 + aput-object v2, v0, v1
12208 + const/16 v1, 0x28
12210 + const-string v2, "androidIdSetting"
12212 + aput-object v2, v0, v1
12214 + const/16 v1, 0x29
12216 + const-string v2, "androidId"
12218 + aput-object v2, v0, v1
12220 + const/16 v1, 0x2a
12222 + const-string/jumbo v2, "wifiInfoSetting"
12224 + aput-object v2, v0, v1
12226 + const/16 v1, 0x2b
12228 + const-string/jumbo v2, "switchConnectivitySetting"
12230 + aput-object v2, v0, v1
12232 + const/16 v1, 0x2c
12234 + const-string/jumbo v2, "sendMmsSetting"
12236 + aput-object v2, v0, v1
12238 + const/16 v1, 0x2d
12240 + const-string v2, "forceOnlineState"
12242 + aput-object v2, v0, v1
12244 + const/16 v1, 0x2e
12246 + const-string/jumbo v2, "switchWifiStateSetting"
12248 + aput-object v2, v0, v1
12250 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->DATABASE_FIELDS:[Ljava/lang/String;
12252 + return-void
12253 +.end method
12255 +.method public constructor <init>(Landroid/content/Context;)V
12256 + .registers 4
12258 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
12260 + iput-object p1, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mContext:Landroid/content/Context;
12262 + new-instance v0, Ljava/io/File;
12264 + const-string v1, "/data/system/"
12266 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12268 + invoke-virtual {v0}, Ljava/io/File;->canWrite()Z
12270 + move-result v0
12272 + if-eqz v0, :cond_6c
12274 + new-instance v0, Ljava/io/File;
12276 + const-string v1, "/data/system/privacy.db"
12278 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12280 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12282 + move-result v0
12284 + if-eqz v0, :cond_2c
12286 + new-instance v0, Ljava/io/File;
12288 + const-string v1, "/data/system/privacy"
12290 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12292 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12294 + move-result v0
12296 + if-nez v0, :cond_5e
12298 + :cond_2c
12299 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12301 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12303 + move-result-object v0
12305 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
12307 + :try_start_35
12308 + new-instance v0, Ljava/io/File;
12310 + const-string v1, "/data/system/privacy.db"
12312 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12314 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12316 + move-result v0
12318 + if-nez v0, :cond_45
12320 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->createDatabase()V
12322 + :cond_45
12323 + new-instance v0, Ljava/io/File;
12325 + const-string v1, "/data/system/privacy"
12327 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12329 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12331 + move-result v0
12333 + if-nez v0, :cond_55
12335 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->createSettingsDir()V
12336 + :try_end_55
12337 + .catchall {:try_start_35 .. :try_end_55} :catchall_6d
12339 + :cond_55
12340 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12342 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12344 + move-result-object v0
12346 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
12348 + :cond_5e
12349 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDbVersion()I
12351 + move-result v0
12353 + sput v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12355 + sget v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12357 + const/4 v1, 0x4
12359 + if-ge v0, v1, :cond_6c
12361 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->upgradeDatabase()V
12363 + :cond_6c
12364 + return-void
12366 + :catchall_6d
12367 + move-exception v0
12369 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12371 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12373 + move-result-object v1
12375 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
12377 + throw v0
12378 +.end method
12380 +.method private closeIdleDatabase()V
12381 + .registers 3
12383 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12385 + monitor-enter v1
12387 + :try_start_3
12388 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12390 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12392 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
12394 + move-result v0
12396 + add-int/lit8 v0, v0, -0x1
12398 + invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
12400 + move-result-object v0
12402 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12404 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12406 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
12408 + move-result v0
12410 + if-nez v0, :cond_2c
12412 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12414 + if-eqz v0, :cond_2c
12416 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12418 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12420 + move-result v0
12422 + if-eqz v0, :cond_2c
12424 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12426 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12428 + :cond_2c
12429 + monitor-exit v1
12431 + return-void
12433 + :catchall_2e
12434 + move-exception v0
12436 + monitor-exit v1
12437 + :try_end_30
12438 + .catchall {:try_start_3 .. :try_end_30} :catchall_2e
12440 + throw v0
12441 +.end method
12443 +.method private createDatabase()V
12444 + .registers 6
12446 + const-string v2, "PrivacyPersistenceAdapter"
12448 + const-string v3, "createDatabase - creating privacy database file"
12450 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12452 + :try_start_7
12453 + const-string v2, "/data/system/privacy.db"
12455 + const/4 v3, 0x0
12457 + const/high16 v4, 0x1000
12459 + invoke-static {v2, v3, v4}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
12461 + move-result-object v0
12463 + const-string v2, "PrivacyPersistenceAdapter"
12465 + const-string v3, "createDatabase - creating privacy database"
12467 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12469 + 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);"
12471 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12473 + const-string v2, "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
12475 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12477 + const-string v2, "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
12479 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12481 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
12483 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12485 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
12487 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12489 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
12491 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12493 + if-eqz v0, :cond_40
12495 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12497 + move-result v2
12499 + if-eqz v2, :cond_40
12501 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12502 + :try_end_40
12503 + .catch Landroid/database/SQLException; {:try_start_7 .. :try_end_40} :catch_41
12505 + :cond_40
12506 + :goto_40
12507 + return-void
12509 + :catch_41
12510 + move-exception v1
12512 + const-string v2, "PrivacyPersistenceAdapter"
12514 + const-string v3, "createDatabase - failed to create privacy database"
12516 + invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
12518 + goto :goto_40
12519 +.end method
12521 +.method private createSettingsDir()V
12522 + .registers 5
12524 + const/4 v3, 0x1
12526 + const/4 v2, 0x0
12528 + new-instance v0, Ljava/io/File;
12530 + const-string v1, "/data/system/privacy/"
12532 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12534 + invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
12536 + invoke-virtual {v0, v3, v2}, Ljava/io/File;->setReadable(ZZ)Z
12538 + invoke-virtual {v0, v3, v2}, Ljava/io/File;->setExecutable(ZZ)Z
12540 + return-void
12541 +.end method
12543 +.method private deleteRecursive(Ljava/io/File;)V
12544 + .registers 7
12546 + invoke-virtual {p1}, Ljava/io/File;->isDirectory()Z
12548 + move-result v4
12550 + if-eqz v4, :cond_16
12552 + invoke-virtual {p1}, Ljava/io/File;->listFiles()[Ljava/io/File;
12554 + move-result-object v0
12556 + array-length v3, v0
12558 + const/4 v2, 0x0
12560 + :goto_c
12561 + if-ge v2, v3, :cond_16
12563 + aget-object v1, v0, v2
12565 + invoke-direct {p0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
12567 + add-int/lit8 v2, v2, 0x1
12569 + goto :goto_c
12571 + :cond_16
12572 + invoke-virtual {p1}, Ljava/io/File;->delete()Z
12574 + return-void
12575 +.end method
12577 +.method private declared-synchronized getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12578 + .registers 4
12580 + monitor-enter p0
12582 + :try_start_1
12583 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12585 + if-eqz v0, :cond_15
12587 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12589 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12591 + move-result v0
12593 + if-eqz v0, :cond_15
12595 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12597 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isReadOnly()Z
12599 + move-result v0
12601 + if-eqz v0, :cond_1f
12603 + :cond_15
12604 + const-string v0, "/data/system/privacy.db"
12606 + const/4 v1, 0x0
12608 + const/4 v2, 0x0
12610 + invoke-static {v0, v1, v2}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
12612 + move-result-object v0
12614 + iput-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12616 + :cond_1f
12617 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12618 + :try_end_21
12619 + .catchall {:try_start_1 .. :try_end_21} :catchall_23
12621 + monitor-exit p0
12623 + return-object v0
12625 + :catchall_23
12626 + move-exception v0
12628 + monitor-exit p0
12630 + throw v0
12631 +.end method
12633 +.method private getDbVersion()I
12634 + .registers 6
12636 + const/4 v2, 0x1
12638 + const-string v3, "db_version"
12640 + invoke-virtual {p0, v3}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
12642 + move-result-object v1
12644 + if-nez v1, :cond_11
12646 + const-string v3, "PrivacyPersistenceAdapter"
12648 + const-string v4, "PrivacyPersistenceAdapter:getDbVersion: getValue returned null; assuming version = 1"
12650 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
12652 + :goto_10
12653 + return v2
12655 + :cond_11
12656 + :try_start_11
12657 + invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
12658 + :try_end_14
12659 + .catch Ljava/lang/Exception; {:try_start_11 .. :try_end_14} :catch_16
12661 + move-result v2
12663 + goto :goto_10
12665 + :catch_16
12666 + move-exception v0
12668 + const-string v3, "PrivacyPersistenceAdapter"
12670 + const-string v4, "PrivacyPersistenceAdapter:getDbVersion: failed to parse database version; returning 1"
12672 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
12674 + goto :goto_10
12675 +.end method
12677 +.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;
12678 + .registers 16
12679 + .annotation system Ldalvik/annotation/Throws;
12680 + value = {
12681 + Ljava/lang/Exception;
12683 + .end annotation
12685 + const/4 v0, 0x0
12687 + const/4 v3, 0x0
12689 + const/4 v2, 0x0
12691 + :goto_3
12692 + if-nez v3, :cond_27
12694 + const/4 v4, 0x5
12696 + if-ge v2, v4, :cond_27
12698 + if-eqz v0, :cond_d
12700 + :try_start_a
12701 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
12703 + :cond_d
12704 + 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;
12705 + :try_end_10
12706 + .catch Ljava/lang/IllegalStateException; {:try_start_a .. :try_end_10} :catch_15
12708 + move-result-object v0
12710 + const/4 v3, 0x1
12712 + :goto_12
12713 + add-int/lit8 v2, v2, 0x1
12715 + goto :goto_3
12717 + :catch_15
12718 + move-exception v1
12720 + const/4 v3, 0x0
12722 + if-eqz p1, :cond_22
12724 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12726 + move-result v4
12728 + if-eqz v4, :cond_22
12730 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12732 + :cond_22
12733 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12735 + move-result-object p1
12737 + goto :goto_12
12739 + :cond_27
12740 + if-nez v3, :cond_32
12742 + new-instance v4, Ljava/lang/Exception;
12744 + const-string/jumbo v5, "query - failed to execute query on the DB"
12746 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
12748 + throw v4
12750 + :cond_32
12751 + return-object v0
12752 +.end method
12754 +.method private rawQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)Landroid/database/Cursor;
12755 + .registers 9
12756 + .annotation system Ldalvik/annotation/Throws;
12757 + value = {
12758 + Ljava/lang/Exception;
12760 + .end annotation
12762 + const/4 v0, 0x0
12764 + const/4 v3, 0x0
12766 + const/4 v2, 0x0
12768 + :goto_3
12769 + if-nez v3, :cond_28
12771 + const/4 v4, 0x5
12773 + if-ge v2, v4, :cond_28
12775 + if-eqz v0, :cond_d
12777 + :try_start_a
12778 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
12780 + :cond_d
12781 + const/4 v4, 0x0
12783 + invoke-virtual {p1, p2, v4}, Landroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
12784 + :try_end_11
12785 + .catch Ljava/lang/IllegalStateException; {:try_start_a .. :try_end_11} :catch_16
12787 + move-result-object v0
12789 + const/4 v3, 0x1
12791 + :goto_13
12792 + add-int/lit8 v2, v2, 0x1
12794 + goto :goto_3
12796 + :catch_16
12797 + move-exception v1
12799 + const/4 v3, 0x0
12801 + if-eqz p1, :cond_23
12803 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12805 + move-result v4
12807 + if-eqz v4, :cond_23
12809 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12811 + :cond_23
12812 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12814 + move-result-object p1
12816 + goto :goto_13
12818 + :cond_28
12819 + if-nez v3, :cond_33
12821 + new-instance v4, Ljava/lang/Exception;
12823 + const-string/jumbo v5, "query - failed to execute query on the DB"
12825 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
12827 + throw v4
12829 + :cond_33
12830 + return-object v0
12831 +.end method
12833 +.method private upgradeDatabase()V
12834 + .registers 18
12836 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12838 + const/4 v15, 0x4
12840 + if-ge v14, v15, :cond_31
12842 + const-string v14, "PrivacyPersistenceAdapter"
12844 + new-instance v15, Ljava/lang/StringBuilder;
12846 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
12848 + const-string v16, "PrivacyPersistenceAdapter:upgradeDatabase - upgrading DB from version "
12850 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
12852 + move-result-object v15
12854 + sget v16, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12856 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
12858 + move-result-object v15
12860 + const-string v16, " to "
12862 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
12864 + move-result-object v15
12866 + const/16 v16, 0x4
12868 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
12870 + move-result-object v15
12872 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
12874 + move-result-object v15
12876 + invoke-static {v14, v15}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12878 + const/4 v3, 0x0
12880 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12882 + packed-switch v14, :pswitch_data_12c
12884 + :cond_31
12885 + :goto_31
12886 + return-void
12888 + :pswitch_32
12889 + :try_start_32
12890 + sget-object v15, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12892 + monitor-enter v15
12893 + :try_end_35
12894 + .catchall {:try_start_32 .. :try_end_35} :catchall_11e
12895 + .catch Landroid/database/SQLException; {:try_start_32 .. :try_end_35} :catch_e6
12897 + :try_start_35
12898 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12900 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12902 + invoke-virtual {v14}, Ljava/lang/Integer;->intValue()I
12904 + move-result v14
12906 + add-int/lit8 v14, v14, 0x1
12908 + invoke-static {v14}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
12910 + move-result-object v14
12912 + sput-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12914 + monitor-exit v15
12915 + :try_end_46
12916 + .catchall {:try_start_35 .. :try_end_46} :catchall_e3
12918 + :try_start_46
12919 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12921 + move-result-object v3
12923 + if-eqz v3, :cond_109
12925 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12927 + move-result v14
12929 + if-eqz v14, :cond_109
12931 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12933 + invoke-interface {v14}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12935 + move-result-object v14
12937 + invoke-interface {v14}, Ljava/util/concurrent/locks/Lock;->lock()V
12938 + :try_end_5b
12939 + .catchall {:try_start_46 .. :try_end_5b} :catchall_11e
12940 + .catch Landroid/database/SQLException; {:try_start_46 .. :try_end_5b} :catch_e6
12942 + :try_start_5b
12943 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12945 + const/4 v15, 0x4
12947 + if-ge v14, v15, :cond_100
12949 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
12950 + :try_end_63
12951 + .catchall {:try_start_5b .. :try_end_63} :catchall_113
12953 + :try_start_63
12954 + const-string v14, "DROP TABLE IF EXISTS version;"
12956 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12958 + const-string v14, "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
12960 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12962 + const-string v14, "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
12964 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12966 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
12968 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12970 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
12972 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12974 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
12976 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12978 + invoke-virtual/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->purgeSettings()Z
12980 + new-instance v11, Ljava/io/File;
12982 + const-string v14, "/data/system/privacy"
12984 + invoke-direct {v11, v14}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12986 + invoke-virtual {v11}, Ljava/io/File;->listFiles()[Ljava/io/File;
12988 + move-result-object v1
12990 + array-length v7, v1
12992 + const/4 v5, 0x0
12994 + move v6, v5
12996 + :goto_92
12997 + if-ge v6, v7, :cond_f7
12999 + aget-object v10, v1, v6
13001 + invoke-virtual {v10}, Ljava/io/File;->listFiles()[Ljava/io/File;
13003 + move-result-object v2
13005 + array-length v8, v2
13007 + const/4 v5, 0x0
13009 + :goto_9c
13010 + if-ge v5, v8, :cond_f3
13012 + aget-object v13, v2, v5
13014 + invoke-virtual {v13}, Ljava/io/File;->isDirectory()Z
13016 + move-result v14
13018 + if-eqz v14, :cond_e0
13020 + invoke-virtual {v13}, Ljava/io/File;->listFiles()[Ljava/io/File;
13022 + move-result-object v12
13024 + const/4 v14, 0x0
13026 + aget-object v14, v12, v14
13028 + if-eqz v14, :cond_e0
13030 + new-instance v9, Ljava/io/File;
13032 + new-instance v14, Ljava/lang/StringBuilder;
13034 + invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
13036 + invoke-virtual {v14, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
13038 + move-result-object v14
13040 + const-string v15, "/"
13042 + invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13044 + move-result-object v14
13046 + const/4 v15, 0x0
13048 + aget-object v15, v12, v15
13050 + invoke-virtual {v15}, Ljava/io/File;->getName()Ljava/lang/String;
13052 + move-result-object v15
13054 + invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13056 + move-result-object v14
13058 + invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13060 + move-result-object v14
13062 + invoke-direct {v9, v14}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13064 + invoke-virtual {v9}, Ljava/io/File;->delete()Z
13066 + const/4 v14, 0x0
13068 + aget-object v14, v12, v14
13070 + invoke-virtual {v14, v9}, Ljava/io/File;->renameTo(Ljava/io/File;)Z
13072 + move-object/from16 v0, p0
13074 + invoke-direct {v0, v13}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
13075 + :try_end_e0
13076 + .catchall {:try_start_63 .. :try_end_e0} :catchall_10e
13078 + :cond_e0
13079 + add-int/lit8 v5, v5, 0x1
13081 + goto :goto_9c
13083 + :catchall_e3
13084 + move-exception v14
13086 + :try_start_e4
13087 + monitor-exit v15
13088 + :try_end_e5
13089 + .catchall {:try_start_e4 .. :try_end_e5} :catchall_e3
13091 + :try_start_e5
13092 + throw v14
13093 + :try_end_e6
13094 + .catchall {:try_start_e5 .. :try_end_e6} :catchall_11e
13095 + .catch Landroid/database/SQLException; {:try_start_e5 .. :try_end_e6} :catch_e6
13097 + :catch_e6
13098 + move-exception v4
13100 + :try_start_e7
13101 + const-string v14, "PrivacyPersistenceAdapter"
13103 + const-string v15, "PrivacyPersistenceAdapter:upgradeDatabase: SQLException occurred performing database upgrade"
13105 + invoke-static {v14, v15, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13106 + :try_end_ee
13107 + .catchall {:try_start_e7 .. :try_end_ee} :catchall_11e
13109 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13111 + goto/16 :goto_31
13113 + :cond_f3
13114 + add-int/lit8 v5, v6, 0x1
13116 + move v6, v5
13118 + goto :goto_92
13120 + :cond_f7
13121 + :try_start_f7
13122 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
13124 + const/4 v14, 0x4
13126 + sput v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13127 + :try_end_fd
13128 + .catchall {:try_start_f7 .. :try_end_fd} :catchall_10e
13130 + :try_start_fd
13131 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13132 + :try_end_100
13133 + .catchall {:try_start_fd .. :try_end_100} :catchall_113
13135 + :cond_100
13136 + :try_start_100
13137 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13139 + invoke-interface {v14}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13141 + move-result-object v14
13143 + invoke-interface {v14}, Ljava/util/concurrent/locks/Lock;->unlock()V
13144 + :try_end_109
13145 + .catchall {:try_start_100 .. :try_end_109} :catchall_11e
13146 + .catch Landroid/database/SQLException; {:try_start_100 .. :try_end_109} :catch_e6
13148 + :cond_109
13149 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13151 + goto/16 :goto_31
13153 + :catchall_10e
13154 + move-exception v14
13156 + :try_start_10f
13157 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13159 + throw v14
13160 + :try_end_113
13161 + .catchall {:try_start_10f .. :try_end_113} :catchall_113
13163 + :catchall_113
13164 + move-exception v14
13166 + :try_start_114
13167 + sget-object v15, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13169 + invoke-interface {v15}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13171 + move-result-object v15
13173 + invoke-interface {v15}, Ljava/util/concurrent/locks/Lock;->unlock()V
13175 + throw v14
13176 + :try_end_11e
13177 + .catchall {:try_start_114 .. :try_end_11e} :catchall_11e
13178 + .catch Landroid/database/SQLException; {:try_start_114 .. :try_end_11e} :catch_e6
13180 + :catchall_11e
13181 + move-exception v14
13183 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13185 + throw v14
13187 + :pswitch_123
13188 + const-string v14, "PrivacyPersistenceAdapter"
13190 + const-string v15, "PrivacyPersistenceAdapter:upgradeDatabase: Database is already at the most recent version"
13192 + invoke-static {v14, v15}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
13194 + goto/16 :goto_31
13196 + :pswitch_data_12c
13197 + .packed-switch 0x1
13198 + :pswitch_32
13199 + :pswitch_32
13200 + :pswitch_32
13201 + :pswitch_123
13202 + .end packed-switch
13203 +.end method
13205 +.method private writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
13206 + .registers 12
13207 + .annotation system Ldalvik/annotation/Throws;
13208 + value = {
13209 + Ljava/lang/Exception;
13211 + .end annotation
13213 + const/4 v7, 0x1
13215 + new-instance v2, Ljava/io/File;
13217 + new-instance v5, Ljava/lang/StringBuilder;
13219 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13221 + const-string v6, "/data/system/privacy/"
13223 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13225 + move-result-object v5
13227 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13229 + move-result-object v5
13231 + const-string v6, "/"
13233 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13235 + move-result-object v5
13237 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13239 + move-result-object v5
13241 + invoke-direct {v2, v5}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13243 + new-instance v3, Ljava/io/File;
13245 + new-instance v5, Ljava/lang/StringBuilder;
13247 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13249 + const-string v6, "/data/system/privacy/"
13251 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13253 + move-result-object v5
13255 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13257 + move-result-object v5
13259 + const-string v6, "/"
13261 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13263 + move-result-object v5
13265 + const-string v6, "/"
13267 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13269 + move-result-object v5
13271 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13273 + move-result-object v5
13275 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13277 + move-result-object v5
13279 + invoke-direct {v3, v5}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13281 + const/4 v1, 0x0
13283 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13285 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13287 + move-result-object v5
13289 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->lock()V
13291 + :try_start_51
13292 + invoke-virtual {v2}, Ljava/io/File;->mkdirs()Z
13294 + const/4 v5, 0x1
13296 + const/4 v6, 0x0
13298 + invoke-virtual {v2, v5, v6}, Ljava/io/File;->setReadable(ZZ)Z
13300 + const/4 v5, 0x1
13302 + const/4 v6, 0x0
13304 + invoke-virtual {v2, v5, v6}, Ljava/io/File;->setExecutable(ZZ)Z
13306 + invoke-virtual {v3}, Ljava/io/File;->createNewFile()Z
13308 + const/4 v5, 0x1
13310 + const/4 v6, 0x0
13312 + invoke-virtual {v3, v5, v6}, Ljava/io/File;->setReadable(ZZ)Z
13314 + new-instance v4, Ljava/io/OutputStreamWriter;
13316 + new-instance v5, Ljava/io/FileOutputStream;
13318 + invoke-direct {v5, v3}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
13320 + invoke-direct {v4, v5}, Ljava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;)V
13322 + const-string/jumbo v5, "systemLogsSetting"
13324 + invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
13326 + move-result v5
13328 + if-eqz v5, :cond_a4
13330 + new-instance v5, Ljava/lang/StringBuilder;
13332 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13334 + invoke-virtual {p3}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
13336 + move-result v6
13338 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13340 + move-result-object v5
13342 + const-string v6, ""
13344 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13346 + move-result-object v5
13348 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13350 + move-result-object v5
13352 + invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
13354 + :cond_93
13355 + :goto_93
13356 + invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->flush()V
13358 + invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->close()V
13359 + :try_end_99
13360 + .catchall {:try_start_51 .. :try_end_99} :catchall_d1
13361 + .catch Ljava/io/IOException; {:try_start_51 .. :try_end_99} :catch_c7
13363 + const/4 v1, 0x1
13365 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13367 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13369 + move-result-object v5
13371 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->unlock()V
13373 + return v7
13375 + :cond_a4
13376 + :try_start_a4
13377 + const-string v5, "ipTableProtectSetting"
13379 + invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
13381 + move-result v5
13383 + if-eqz v5, :cond_93
13385 + new-instance v5, Ljava/lang/StringBuilder;
13387 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13389 + invoke-virtual {p3}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
13391 + move-result v6
13393 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13395 + move-result-object v5
13397 + const-string v6, ""
13399 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13401 + move-result-object v5
13403 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13405 + move-result-object v5
13407 + invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
13408 + :try_end_c6
13409 + .catchall {:try_start_a4 .. :try_end_c6} :catchall_d1
13410 + .catch Ljava/io/IOException; {:try_start_a4 .. :try_end_c6} :catch_c7
13412 + goto :goto_93
13414 + :catch_c7
13415 + move-exception v0
13417 + :try_start_c8
13418 + new-instance v5, Ljava/lang/Exception;
13420 + const-string/jumbo v6, "saveSettings - could not write settings to file"
13422 + invoke-direct {v5, v6, v0}, Ljava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
13424 + throw v5
13425 + :try_end_d1
13426 + .catchall {:try_start_c8 .. :try_end_d1} :catchall_d1
13428 + :catchall_d1
13429 + move-exception v5
13431 + sget-object v6, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13433 + invoke-interface {v6}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13435 + move-result-object v6
13437 + invoke-interface {v6}, Ljava/util/concurrent/locks/Lock;->unlock()V
13439 + throw v5
13440 +.end method
13443 +# virtual methods
13444 +.method public deleteSettings(Ljava/lang/String;)Z
13445 + .registers 16
13447 + const/4 v11, 0x1
13449 + const/4 v0, 0x0
13451 + :try_start_2
13452 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13454 + monitor-enter v2
13455 + :try_end_5
13456 + .catchall {:try_start_2 .. :try_end_5} :catchall_148
13457 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_2 .. :try_end_5} :catch_fe
13458 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_13b
13460 + :try_start_5
13461 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13463 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13465 + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
13467 + move-result v1
13469 + add-int/lit8 v1, v1, 0x1
13471 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
13473 + move-result-object v1
13475 + sput-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13477 + monitor-exit v2
13478 + :try_end_16
13479 + .catchall {:try_start_5 .. :try_end_16} :catchall_fb
13481 + :try_start_16
13482 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13484 + move-result-object v0
13486 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13488 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13490 + move-result-object v1
13492 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
13493 + :try_end_23
13494 + .catchall {:try_start_16 .. :try_end_23} :catchall_148
13495 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_16 .. :try_end_23} :catch_fe
13496 + .catch Ljava/lang/Exception; {:try_start_16 .. :try_end_23} :catch_13b
13498 + :try_start_23
13499 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
13500 + :try_end_26
13501 + .catchall {:try_start_23 .. :try_end_26} :catchall_130
13503 + :try_start_26
13504 + const-string/jumbo v1, "settings"
13506 + const/4 v2, 0x1
13508 + new-array v2, v2, [Ljava/lang/String;
13510 + const/4 v3, 0x0
13512 + const-string v4, "_id"
13514 + aput-object v4, v2, v3
13516 + const-string/jumbo v3, "packageName=?"
13518 + const/4 v4, 0x1
13520 + new-array v4, v4, [Ljava/lang/String;
13522 + const/4 v5, 0x0
13524 + aput-object p1, v4, v5
13526 + const/4 v5, 0x0
13528 + const/4 v6, 0x0
13530 + const/4 v7, 0x0
13532 + 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;
13534 + move-result-object v8
13536 + if-eqz v8, :cond_10b
13538 + invoke-interface {v8}, Landroid/database/Cursor;->getCount()I
13540 + move-result v1
13542 + if-lez v1, :cond_10b
13544 + invoke-interface {v8}, Landroid/database/Cursor;->moveToFirst()Z
13546 + move-result v1
13548 + if-eqz v1, :cond_10b
13550 + const/4 v1, 0x0
13552 + invoke-interface {v8, v1}, Landroid/database/Cursor;->getInt(I)I
13554 + move-result v10
13556 + const-string v1, "allowed_contacts"
13558 + const-string/jumbo v2, "settings_id=?"
13560 + const/4 v3, 0x1
13562 + new-array v3, v3, [Ljava/lang/String;
13564 + const/4 v4, 0x0
13566 + invoke-static {v10}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
13568 + move-result-object v5
13570 + aput-object v5, v3, v4
13572 + invoke-virtual {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
13574 + invoke-interface {v8}, Landroid/database/Cursor;->close()V
13576 + :goto_69
13577 + const-string/jumbo v1, "settings"
13579 + const-string/jumbo v2, "packageName=?"
13581 + const/4 v3, 0x1
13583 + new-array v3, v3, [Ljava/lang/String;
13585 + const/4 v4, 0x0
13587 + aput-object p1, v3, v4
13589 + invoke-virtual {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
13591 + move-result v1
13593 + if-nez v1, :cond_99
13595 + const-string v1, "PrivacyPersistenceAdapter"
13597 + new-instance v2, Ljava/lang/StringBuilder;
13599 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
13601 + const-string v3, "deleteSettings - database entry for "
13603 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13605 + move-result-object v2
13607 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13609 + move-result-object v2
13611 + const-string v3, " not found"
13613 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13615 + move-result-object v2
13617 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13619 + move-result-object v2
13621 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
13623 + :cond_99
13624 + new-instance v12, Ljava/io/File;
13626 + new-instance v1, Ljava/lang/StringBuilder;
13628 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
13630 + const-string v2, "/data/system/privacy/"
13632 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13634 + move-result-object v1
13636 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13638 + move-result-object v1
13640 + const-string v2, "/"
13642 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13644 + move-result-object v1
13646 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13648 + move-result-object v1
13650 + invoke-direct {v12, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13652 + new-instance v13, Ljava/io/File;
13654 + new-instance v1, Ljava/lang/StringBuilder;
13656 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
13658 + const-string v2, "/data/system/privacy/"
13660 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13662 + move-result-object v1
13664 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13666 + move-result-object v1
13668 + const-string v2, "/systemLogsSetting"
13670 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13672 + move-result-object v1
13674 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13676 + move-result-object v1
13678 + invoke-direct {v13, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13680 + invoke-virtual {v13}, Ljava/io/File;->delete()Z
13682 + invoke-virtual {v12}, Ljava/io/File;->list()[Ljava/lang/String;
13684 + move-result-object v1
13686 + if-eqz v1, :cond_e5
13688 + invoke-virtual {v12}, Ljava/io/File;->list()[Ljava/lang/String;
13690 + move-result-object v1
13692 + array-length v1, v1
13694 + if-nez v1, :cond_e8
13696 + :cond_e5
13697 + invoke-virtual {v12}, Ljava/io/File;->delete()Z
13699 + :cond_e8
13700 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
13701 + :try_end_eb
13702 + .catchall {:try_start_26 .. :try_end_eb} :catchall_12b
13704 + :try_start_eb
13705 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13706 + :try_end_ee
13707 + .catchall {:try_start_eb .. :try_end_ee} :catchall_130
13709 + :try_start_ee
13710 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13712 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13714 + move-result-object v1
13716 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
13717 + :try_end_f7
13718 + .catchall {:try_start_ee .. :try_end_f7} :catchall_148
13719 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_ee .. :try_end_f7} :catch_fe
13720 + .catch Ljava/lang/Exception; {:try_start_ee .. :try_end_f7} :catch_13b
13722 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13724 + :goto_fa
13725 + return v11
13727 + :catchall_fb
13728 + move-exception v1
13730 + :try_start_fc
13731 + monitor-exit v2
13732 + :try_end_fd
13733 + .catchall {:try_start_fc .. :try_end_fd} :catchall_fb
13735 + :try_start_fd
13736 + throw v1
13737 + :try_end_fe
13738 + .catchall {:try_start_fd .. :try_end_fe} :catchall_148
13739 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_fd .. :try_end_fe} :catch_fe
13740 + .catch Ljava/lang/Exception; {:try_start_fd .. :try_end_fe} :catch_13b
13742 + :catch_fe
13743 + move-exception v9
13745 + const/4 v11, 0x0
13747 + :try_start_100
13748 + const-string v1, "PrivacyPersistenceAdapter"
13750 + const-string v2, "PrivacyPersistenceAdapter:deleteSettings: failed to open the database, or open a transaction"
13752 + invoke-static {v1, v2, v9}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13753 + :try_end_107
13754 + .catchall {:try_start_100 .. :try_end_107} :catchall_148
13756 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13758 + goto :goto_fa
13760 + :cond_10b
13761 + :try_start_10b
13762 + const-string v1, "PrivacyPersistenceAdapter"
13764 + new-instance v2, Ljava/lang/StringBuilder;
13766 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
13768 + const-string v3, "deleteSettings - database entry for "
13770 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13772 + move-result-object v2
13774 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13776 + move-result-object v2
13778 + const-string v3, " not found"
13780 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13782 + move-result-object v2
13784 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13786 + move-result-object v2
13788 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
13789 + :try_end_129
13790 + .catchall {:try_start_10b .. :try_end_129} :catchall_12b
13792 + goto/16 :goto_69
13794 + :catchall_12b
13795 + move-exception v1
13797 + :try_start_12c
13798 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13800 + throw v1
13801 + :try_end_130
13802 + .catchall {:try_start_12c .. :try_end_130} :catchall_130
13804 + :catchall_130
13805 + move-exception v1
13807 + :try_start_131
13808 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13810 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13812 + move-result-object v2
13814 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
13816 + throw v1
13817 + :try_end_13b
13818 + .catchall {:try_start_131 .. :try_end_13b} :catchall_148
13819 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_131 .. :try_end_13b} :catch_fe
13820 + .catch Ljava/lang/Exception; {:try_start_131 .. :try_end_13b} :catch_13b
13822 + :catch_13b
13823 + move-exception v9
13825 + const/4 v11, 0x0
13827 + :try_start_13d
13828 + const-string v1, "PrivacyPersistenceAdapter"
13830 + const-string v2, "PrivacyPersistenceAdapter:deleteSettings - could not delete settings"
13832 + invoke-static {v1, v2, v9}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13833 + :try_end_144
13834 + .catchall {:try_start_13d .. :try_end_144} :catchall_148
13836 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13838 + goto :goto_fa
13840 + :catchall_148
13841 + move-exception v1
13843 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13845 + throw v1
13846 +.end method
13848 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
13849 + .registers 58
13851 + const/16 v55, 0x0
13853 + if-nez p1, :cond_c
13855 + new-instance v1, Ljava/security/InvalidParameterException;
13857 + const-string v4, "PrivacyPersistenceAdapter:getSettings:insufficient application identifier - package name is required"
13859 + invoke-direct {v1, v4}, Ljava/security/InvalidParameterException;-><init>(Ljava/lang/String;)V
13861 + throw v1
13863 + :cond_c
13864 + :try_start_c
13865 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13867 + monitor-enter v4
13868 + :try_end_f
13869 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_c .. :try_end_f} :catch_2ce
13871 + :try_start_f
13872 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13874 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13876 + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
13878 + move-result v1
13880 + add-int/lit8 v1, v1, 0x1
13882 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
13884 + move-result-object v1
13886 + sput-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13888 + monitor-exit v4
13889 + :try_end_20
13890 + .catchall {:try_start_f .. :try_end_20} :catchall_2cb
13892 + :try_start_20
13893 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13894 + :try_end_23
13895 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_20 .. :try_end_23} :catch_2ce
13897 + move-result-object v2
13899 + const/16 v53, 0x0
13901 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13903 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
13905 + move-result-object v1
13907 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
13909 + :try_start_2f
13910 + const-string/jumbo v3, "settings"
13912 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->DATABASE_FIELDS:[Ljava/lang/String;
13914 + const-string/jumbo v5, "packageName=?"
13916 + const/4 v1, 0x1
13918 + new-array v6, v1, [Ljava/lang/String;
13920 + const/4 v1, 0x0
13922 + aput-object p1, v6, v1
13924 + const/4 v7, 0x0
13926 + const/4 v8, 0x0
13928 + const/4 v9, 0x0
13930 + const/4 v10, 0x0
13932 + move-object/from16 v1, p0
13934 + 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;
13936 + move-result-object v53
13938 + if-eqz v53, :cond_310
13940 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->getCount()I
13942 + move-result v1
13944 + const/4 v4, 0x1
13946 + if-eq v1, v4, :cond_6a
13948 + const-string v1, "PrivacyPersistenceAdapter"
13950 + new-instance v4, Ljava/lang/StringBuilder;
13952 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
13954 + const-string v5, "Multiple privacy settings found for package "
13956 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13958 + move-result-object v4
13960 + move-object/from16 v0, p1
13962 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13964 + move-result-object v4
13966 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13968 + move-result-object v4
13970 + invoke-static {v1, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
13972 + :cond_6a
13973 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->moveToFirst()Z
13975 + move-result v1
13977 + if-eqz v1, :cond_310
13979 + new-instance v3, Landroid/privacy/PrivacySettings;
13981 + const/4 v1, 0x0
13983 + move-object/from16 v0, v53
13985 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I
13987 + move-result v1
13989 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
13991 + move-result-object v4
13993 + const/4 v1, 0x1
13995 + move-object/from16 v0, v53
13997 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
13999 + move-result-object v5
14001 + const/4 v1, 0x2
14003 + move-object/from16 v0, v53
14005 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I
14007 + move-result v6
14009 + const/4 v1, 0x3
14011 + move-object/from16 v0, v53
14013 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14015 + move-result v1
14017 + int-to-byte v7, v1
14019 + const/4 v1, 0x4
14021 + move-object/from16 v0, v53
14023 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14025 + move-result-object v8
14027 + const/4 v1, 0x5
14029 + move-object/from16 v0, v53
14031 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14033 + move-result v1
14035 + int-to-byte v9, v1
14037 + const/4 v1, 0x6
14039 + move-object/from16 v0, v53
14041 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14043 + move-result-object v10
14045 + const/4 v1, 0x7
14047 + move-object/from16 v0, v53
14049 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14051 + move-result v1
14053 + int-to-byte v11, v1
14055 + const/16 v1, 0x8
14057 + move-object/from16 v0, v53
14059 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14061 + move-result-object v12
14063 + const/16 v1, 0x9
14065 + move-object/from16 v0, v53
14067 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14069 + move-result-object v13
14071 + const/16 v1, 0xa
14073 + move-object/from16 v0, v53
14075 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14077 + move-result v1
14079 + int-to-byte v14, v1
14081 + const/16 v1, 0xb
14083 + move-object/from16 v0, v53
14085 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14087 + move-result-object v15
14089 + const/16 v1, 0xc
14091 + move-object/from16 v0, v53
14093 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14095 + move-result-object v16
14097 + const/16 v1, 0xd
14099 + move-object/from16 v0, v53
14101 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14103 + move-result v1
14105 + int-to-byte v0, v1
14107 + move/from16 v17, v0
14109 + const/16 v1, 0xe
14111 + move-object/from16 v0, v53
14113 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14115 + move-result v1
14117 + int-to-byte v0, v1
14119 + move/from16 v18, v0
14121 + const/16 v1, 0xf
14123 + move-object/from16 v0, v53
14125 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14127 + move-result v1
14129 + int-to-byte v0, v1
14131 + move/from16 v19, v0
14133 + const/16 v1, 0x10
14135 + move-object/from16 v0, v53
14137 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14139 + move-result-object v20
14141 + const/16 v1, 0x11
14143 + move-object/from16 v0, v53
14145 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14147 + move-result v1
14149 + int-to-byte v0, v1
14151 + move/from16 v21, v0
14153 + const/16 v1, 0x12
14155 + move-object/from16 v0, v53
14157 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14159 + move-result-object v22
14161 + const/16 v1, 0x13
14163 + move-object/from16 v0, v53
14165 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14167 + move-result v1
14169 + int-to-byte v0, v1
14171 + move/from16 v23, v0
14173 + const/16 v1, 0x14
14175 + move-object/from16 v0, v53
14177 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14179 + move-result v1
14181 + int-to-byte v0, v1
14183 + move/from16 v24, v0
14185 + const/16 v1, 0x15
14187 + move-object/from16 v0, v53
14189 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14191 + move-result v1
14193 + int-to-byte v0, v1
14195 + move/from16 v25, v0
14197 + const/16 v1, 0x16
14199 + move-object/from16 v0, v53
14201 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14203 + move-result v1
14205 + int-to-byte v0, v1
14207 + move/from16 v26, v0
14209 + const/16 v1, 0x17
14211 + move-object/from16 v0, v53
14213 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14215 + move-result v1
14217 + int-to-byte v0, v1
14219 + move/from16 v27, v0
14221 + const/16 v1, 0x18
14223 + move-object/from16 v0, v53
14225 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14227 + move-result v1
14229 + int-to-byte v0, v1
14231 + move/from16 v28, v0
14233 + const/16 v1, 0x19
14235 + move-object/from16 v0, v53
14237 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14239 + move-result v1
14241 + int-to-byte v0, v1
14243 + move/from16 v29, v0
14245 + const/16 v1, 0x1a
14247 + move-object/from16 v0, v53
14249 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14251 + move-result v1
14253 + int-to-byte v0, v1
14255 + move/from16 v30, v0
14257 + const/16 v1, 0x1b
14259 + move-object/from16 v0, v53
14261 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14263 + move-result v1
14265 + int-to-byte v0, v1
14267 + move/from16 v31, v0
14269 + const/16 v1, 0x1c
14271 + move-object/from16 v0, v53
14273 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14275 + move-result v1
14277 + int-to-byte v0, v1
14279 + move/from16 v32, v0
14281 + const/16 v1, 0x1d
14283 + move-object/from16 v0, v53
14285 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14287 + move-result v1
14289 + int-to-byte v0, v1
14291 + move/from16 v33, v0
14293 + const/16 v1, 0x1e
14295 + move-object/from16 v0, v53
14297 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14299 + move-result v1
14301 + int-to-byte v0, v1
14303 + move/from16 v34, v0
14305 + const/16 v1, 0x1f
14307 + move-object/from16 v0, v53
14309 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14311 + move-result v1
14313 + int-to-byte v0, v1
14315 + move/from16 v35, v0
14317 + const/16 v1, 0x20
14319 + move-object/from16 v0, v53
14321 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14323 + move-result v1
14325 + int-to-byte v0, v1
14327 + move/from16 v36, v0
14329 + const/16 v1, 0x21
14331 + move-object/from16 v0, v53
14333 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14335 + move-result v1
14337 + int-to-byte v0, v1
14339 + move/from16 v37, v0
14341 + const/16 v1, 0x22
14343 + move-object/from16 v0, v53
14345 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14347 + move-result v1
14349 + int-to-byte v0, v1
14351 + move/from16 v38, v0
14353 + const/16 v39, 0x0
14355 + const/16 v1, 0x23
14357 + move-object/from16 v0, v53
14359 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14361 + move-result v1
14363 + int-to-byte v0, v1
14365 + move/from16 v40, v0
14367 + const/16 v1, 0x24
14369 + move-object/from16 v0, v53
14371 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14373 + move-result v1
14375 + int-to-byte v0, v1
14377 + move/from16 v41, v0
14379 + const/16 v1, 0x25
14381 + move-object/from16 v0, v53
14383 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14385 + move-result v1
14387 + int-to-byte v0, v1
14389 + move/from16 v42, v0
14391 + const/16 v1, 0x26
14393 + move-object/from16 v0, v53
14395 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14397 + move-result v1
14399 + int-to-byte v0, v1
14401 + move/from16 v43, v0
14403 + const/16 v1, 0x27
14405 + move-object/from16 v0, v53
14407 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14409 + move-result v1
14411 + int-to-byte v0, v1
14413 + move/from16 v44, v0
14415 + const/16 v1, 0x28
14417 + move-object/from16 v0, v53
14419 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14421 + move-result v1
14423 + int-to-byte v0, v1
14425 + move/from16 v45, v0
14427 + const/16 v1, 0x29
14429 + move-object/from16 v0, v53
14431 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14433 + move-result-object v46
14435 + const/16 v1, 0x2a
14437 + move-object/from16 v0, v53
14439 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14441 + move-result v1
14443 + int-to-byte v0, v1
14445 + move/from16 v47, v0
14447 + const/16 v1, 0x2b
14449 + move-object/from16 v0, v53
14451 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14453 + move-result v1
14455 + int-to-byte v0, v1
14457 + move/from16 v48, v0
14459 + const/16 v1, 0x2c
14461 + move-object/from16 v0, v53
14463 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14465 + move-result v1
14467 + int-to-byte v0, v1
14469 + move/from16 v49, v0
14471 + const/16 v1, 0x2d
14473 + move-object/from16 v0, v53
14475 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14477 + move-result v1
14479 + int-to-byte v0, v1
14481 + move/from16 v50, v0
14483 + const/16 v1, 0x2e
14485 + move-object/from16 v0, v53
14487 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14489 + move-result v1
14491 + int-to-byte v0, v1
14493 + move/from16 v51, v0
14495 + 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
14496 + :try_end_24c
14497 + .catchall {:try_start_2f .. :try_end_24c} :catchall_2f5
14498 + .catch Ljava/lang/Exception; {:try_start_2f .. :try_end_24c} :catch_30c
14500 + :try_start_24c
14501 + const-string v6, "allowed_contacts"
14503 + const/4 v1, 0x1
14505 + new-array v7, v1, [Ljava/lang/String;
14507 + const/4 v1, 0x0
14509 + const-string v4, "contact_id"
14511 + aput-object v4, v7, v1
14513 + const-string/jumbo v8, "settings_id=?"
14515 + const/4 v1, 0x1
14517 + new-array v9, v1, [Ljava/lang/String;
14519 + const/4 v1, 0x0
14521 + invoke-virtual {v3}, Landroid/privacy/PrivacySettings;->get_id()Ljava/lang/Integer;
14523 + move-result-object v4
14525 + invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
14527 + move-result v4
14529 + invoke-static {v4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
14531 + move-result-object v4
14533 + aput-object v4, v9, v1
14535 + const/4 v10, 0x0
14537 + const/4 v11, 0x0
14539 + const/4 v12, 0x0
14541 + const/4 v13, 0x0
14543 + move-object/from16 v4, p0
14545 + move-object v5, v2
14547 + 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;
14549 + move-result-object v53
14551 + if-eqz v53, :cond_2e3
14553 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->getCount()I
14555 + move-result v1
14557 + if-lez v1, :cond_2e3
14559 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->getCount()I
14561 + move-result v1
14563 + new-array v0, v1, [I
14565 + move-object/from16 v52, v0
14567 + :goto_286
14568 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->moveToNext()Z
14570 + move-result v1
14572 + if-eqz v1, :cond_2de
14574 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->getPosition()I
14576 + move-result v1
14578 + const/4 v4, 0x0
14580 + move-object/from16 v0, v53
14582 + invoke-interface {v0, v4}, Landroid/database/Cursor;->getInt(I)I
14584 + move-result v4
14586 + aput v4, v52, v1
14587 + :try_end_299
14588 + .catchall {:try_start_24c .. :try_end_299} :catchall_30a
14589 + .catch Ljava/lang/Exception; {:try_start_24c .. :try_end_299} :catch_29a
14591 + goto :goto_286
14593 + :catch_29a
14594 + move-exception v54
14596 + :goto_29b
14597 + :try_start_29b
14598 + const-string v1, "PrivacyPersistenceAdapter"
14600 + new-instance v4, Ljava/lang/StringBuilder;
14602 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
14604 + const-string v5, "getSettings - failed to get settings for package: "
14606 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14608 + move-result-object v4
14610 + move-object/from16 v0, p1
14612 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14614 + move-result-object v4
14616 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14618 + move-result-object v4
14620 + move-object/from16 v0, v54
14622 + invoke-static {v1, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14623 + :try_end_2b7
14624 + .catchall {:try_start_29b .. :try_end_2b7} :catchall_30a
14626 + if-eqz v53, :cond_2bc
14628 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->close()V
14630 + :cond_2bc
14631 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14633 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14635 + move-result-object v1
14637 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
14639 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14641 + :goto_2c8
14642 + move-object/from16 v55, v3
14644 + :goto_2ca
14645 + return-object v55
14647 + :catchall_2cb
14648 + move-exception v1
14650 + :try_start_2cc
14651 + monitor-exit v4
14652 + :try_end_2cd
14653 + .catchall {:try_start_2cc .. :try_end_2cd} :catchall_2cb
14655 + :try_start_2cd
14656 + throw v1
14657 + :try_end_2ce
14658 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_2cd .. :try_end_2ce} :catch_2ce
14660 + :catch_2ce
14661 + move-exception v54
14663 + const-string v1, "PrivacyPersistenceAdapter"
14665 + const-string v4, "getSettings - database could not be opened"
14667 + move-object/from16 v0, v54
14669 + invoke-static {v1, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14671 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14673 + move-object/from16 v3, v55
14675 + goto :goto_2ca
14677 + :cond_2de
14678 + :try_start_2de
14679 + move-object/from16 v0, v52
14681 + invoke-virtual {v3, v0}, Landroid/privacy/PrivacySettings;->setAllowedContacts([I)V
14682 + :try_end_2e3
14683 + .catchall {:try_start_2de .. :try_end_2e3} :catchall_30a
14684 + .catch Ljava/lang/Exception; {:try_start_2de .. :try_end_2e3} :catch_29a
14686 + :cond_2e3
14687 + :goto_2e3
14688 + if-eqz v53, :cond_2e8
14690 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->close()V
14692 + :cond_2e8
14693 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14695 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14697 + move-result-object v1
14699 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
14701 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14703 + goto :goto_2c8
14705 + :catchall_2f5
14706 + move-exception v1
14708 + move-object/from16 v3, v55
14710 + :goto_2f8
14711 + if-eqz v53, :cond_2fd
14713 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->close()V
14715 + :cond_2fd
14716 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14718 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14720 + move-result-object v4
14722 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
14724 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14726 + throw v1
14728 + :catchall_30a
14729 + move-exception v1
14731 + goto :goto_2f8
14733 + :catch_30c
14734 + move-exception v54
14736 + move-object/from16 v3, v55
14738 + goto :goto_29b
14740 + :cond_310
14741 + move-object/from16 v3, v55
14743 + goto :goto_2e3
14744 +.end method
14746 +.method public getValue(Ljava/lang/String;)Ljava/lang/String;
14747 + .registers 15
14749 + const/4 v0, 0x0
14751 + const/4 v12, 0x0
14753 + :try_start_2
14754 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14756 + monitor-enter v2
14757 + :try_end_5
14758 + .catchall {:try_start_2 .. :try_end_5} :catchall_41
14760 + :try_start_5
14761 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14763 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14765 + invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
14767 + move-result v3
14769 + add-int/lit8 v3, v3, 0x1
14771 + invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
14773 + move-result-object v3
14775 + sput-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14777 + monitor-exit v2
14778 + :try_end_16
14779 + .catchall {:try_start_5 .. :try_end_16} :catchall_3e
14781 + :try_start_16
14782 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
14784 + move-result-object v1
14786 + if-eqz v1, :cond_22
14788 + invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
14790 + move-result v2
14792 + if-nez v2, :cond_46
14794 + :cond_22
14795 + const-string v2, "PrivacyPersistenceAdapter"
14797 + new-instance v3, Ljava/lang/StringBuilder;
14799 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
14801 + const-string v4, "PrivacyPersistenceAdapter:getValue: Database not obtained while getting value for name: "
14803 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14805 + move-result-object v3
14807 + invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14809 + move-result-object v3
14811 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14813 + move-result-object v3
14815 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
14816 + :try_end_3a
14817 + .catchall {:try_start_16 .. :try_end_3a} :catchall_41
14819 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14821 + :goto_3d
14822 + return-object v0
14824 + :catchall_3e
14825 + move-exception v0
14827 + :try_start_3f
14828 + monitor-exit v2
14829 + :try_end_40
14830 + .catchall {:try_start_3f .. :try_end_40} :catchall_3e
14832 + :try_start_40
14833 + throw v0
14834 + :try_end_41
14835 + .catchall {:try_start_40 .. :try_end_41} :catchall_41
14837 + :catchall_41
14838 + move-exception v0
14840 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14842 + throw v0
14844 + :cond_46
14845 + :try_start_46
14846 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14848 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14850 + move-result-object v0
14852 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
14853 + :try_end_4f
14854 + .catchall {:try_start_46 .. :try_end_4f} :catchall_41
14856 + :try_start_4f
14857 + const-string/jumbo v2, "map"
14859 + const/4 v0, 0x1
14861 + new-array v3, v0, [Ljava/lang/String;
14863 + const/4 v0, 0x0
14865 + const-string/jumbo v4, "value"
14867 + aput-object v4, v3, v0
14869 + const-string/jumbo v4, "name=?"
14871 + const/4 v0, 0x1
14873 + new-array v5, v0, [Ljava/lang/String;
14875 + const/4 v0, 0x0
14877 + aput-object p1, v5, v0
14879 + const/4 v6, 0x0
14881 + const/4 v7, 0x0
14883 + const/4 v8, 0x0
14885 + const/4 v9, 0x0
14887 + move-object v0, p0
14889 + 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;
14891 + move-result-object v10
14893 + if-eqz v10, :cond_97
14895 + invoke-interface {v10}, Landroid/database/Cursor;->getCount()I
14897 + move-result v0
14899 + if-lez v0, :cond_97
14901 + invoke-interface {v10}, Landroid/database/Cursor;->moveToFirst()Z
14903 + move-result v0
14905 + if-eqz v0, :cond_97
14907 + const-string/jumbo v0, "value"
14909 + invoke-interface {v10, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
14911 + move-result v0
14913 + invoke-interface {v10, v0}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14915 + move-result-object v12
14917 + invoke-interface {v10}, Landroid/database/Cursor;->close()V
14918 + :try_end_89
14919 + .catchall {:try_start_4f .. :try_end_89} :catchall_d3
14920 + .catch Ljava/lang/Exception; {:try_start_4f .. :try_end_89} :catch_b0
14922 + :goto_89
14923 + :try_start_89
14924 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14926 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14928 + move-result-object v0
14930 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
14931 + :try_end_92
14932 + .catchall {:try_start_89 .. :try_end_92} :catchall_41
14934 + :goto_92
14935 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14937 + move-object v0, v12
14939 + goto :goto_3d
14941 + :cond_97
14942 + :try_start_97
14943 + const-string v0, "PrivacyPersistenceAdapter"
14945 + new-instance v2, Ljava/lang/StringBuilder;
14947 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
14949 + const-string v3, "PrivacyPersistenceAdapter:getValue: Could not get value for name: "
14951 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14953 + move-result-object v2
14955 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14957 + move-result-object v2
14959 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14961 + move-result-object v2
14963 + invoke-static {v0, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
14964 + :try_end_af
14965 + .catchall {:try_start_97 .. :try_end_af} :catchall_d3
14966 + .catch Ljava/lang/Exception; {:try_start_97 .. :try_end_af} :catch_b0
14968 + goto :goto_89
14970 + :catch_b0
14971 + move-exception v11
14973 + :try_start_b1
14974 + const-string v0, "PrivacyPersistenceAdapter"
14976 + new-instance v2, Ljava/lang/StringBuilder;
14978 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
14980 + const-string v3, "PrivacyPersistenceAdapter:getValue: Exception occurred while getting value for name: "
14982 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14984 + move-result-object v2
14986 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14988 + move-result-object v2
14990 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14992 + move-result-object v2
14994 + invoke-static {v0, v2, v11}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14995 + :try_end_c9
14996 + .catchall {:try_start_b1 .. :try_end_c9} :catchall_d3
14998 + :try_start_c9
14999 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15001 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15003 + move-result-object v0
15005 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
15007 + goto :goto_92
15009 + :catchall_d3
15010 + move-exception v0
15012 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15014 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15016 + move-result-object v2
15018 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
15020 + throw v0
15021 + :try_end_de
15022 + .catchall {:try_start_c9 .. :try_end_de} :catchall_41
15023 +.end method
15025 +.method public purgeSettings()Z
15026 + .registers 26
15028 + const/16 v23, 0x1
15030 + new-instance v13, Ljava/util/HashSet;
15032 + invoke-direct {v13}, Ljava/util/HashSet;-><init>()V
15034 + move-object/from16 v0, p0
15036 + iget-object v2, v0, Landroid/privacy/PrivacyPersistenceAdapter;->mContext:Landroid/content/Context;
15038 + invoke-virtual {v2}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
15040 + move-result-object v20
15042 + const/4 v2, 0x0
15044 + move-object/from16 v0, v20
15046 + invoke-virtual {v0, v2}, Landroid/content/pm/PackageManager;->getInstalledApplications(I)Ljava/util/List;
15048 + move-result-object v18
15050 + invoke-interface/range {v18 .. v18}, Ljava/util/List;->iterator()Ljava/util/Iterator;
15052 + move-result-object v17
15054 + :goto_1a
15055 + invoke-interface/range {v17 .. v17}, Ljava/util/Iterator;->hasNext()Z
15057 + move-result v2
15059 + if-eqz v2, :cond_2c
15061 + invoke-interface/range {v17 .. v17}, Ljava/util/Iterator;->next()Ljava/lang/Object;
15063 + move-result-object v12
15065 + check-cast v12, Landroid/content/pm/ApplicationInfo;
15067 + iget-object v2, v12, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
15069 + invoke-interface {v13, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
15071 + goto :goto_1a
15073 + :cond_2c
15074 + const/4 v3, 0x0
15076 + :try_start_2d
15077 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15079 + monitor-enter v4
15080 + :try_end_30
15081 + .catchall {:try_start_2d .. :try_end_30} :catchall_11b
15082 + .catch Ljava/lang/Exception; {:try_start_2d .. :try_end_30} :catch_56
15084 + :try_start_30
15085 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15087 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15089 + invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
15091 + move-result v2
15093 + add-int/lit8 v2, v2, 0x1
15095 + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
15097 + move-result-object v2
15099 + sput-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15101 + monitor-exit v4
15102 + :try_end_41
15103 + .catchall {:try_start_30 .. :try_end_41} :catchall_53
15105 + :try_start_41
15106 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
15108 + move-result-object v3
15110 + if-nez v3, :cond_68
15112 + const-string v2, "PrivacyPersistenceAdapter"
15114 + const-string v4, "PrivacyPersistenceAdapter:purgeSettings: db could not be obtained"
15116 + invoke-static {v2, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
15117 + :try_end_4e
15118 + .catchall {:try_start_41 .. :try_end_4e} :catchall_11b
15119 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_4e} :catch_56
15121 + const/4 v2, 0x0
15123 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15125 + :goto_52
15126 + return v2
15128 + :catchall_53
15129 + move-exception v2
15131 + :try_start_54
15132 + monitor-exit v4
15133 + :try_end_55
15134 + .catchall {:try_start_54 .. :try_end_55} :catchall_53
15136 + :try_start_55
15137 + throw v2
15138 + :try_end_56
15139 + .catchall {:try_start_55 .. :try_end_56} :catchall_11b
15140 + .catch Ljava/lang/Exception; {:try_start_55 .. :try_end_56} :catch_56
15142 + :catch_56
15143 + move-exception v16
15145 + :try_start_57
15146 + const-string v2, "PrivacyPersistenceAdapter"
15148 + const-string v4, "PrivacyPersistenceAdapter:purgeSettings - purging DB failed"
15150 + move-object/from16 v0, v16
15152 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
15153 + :try_end_60
15154 + .catchall {:try_start_57 .. :try_end_60} :catchall_11b
15156 + const/16 v23, 0x0
15158 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15160 + :goto_65
15161 + move/from16 v2, v23
15163 + goto :goto_52
15165 + :cond_68
15166 + :try_start_68
15167 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15169 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15171 + move-result-object v2
15173 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->lock()V
15174 + :try_end_71
15175 + .catchall {:try_start_68 .. :try_end_71} :catchall_11b
15176 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_71} :catch_56
15178 + const/4 v15, 0x0
15180 + :try_start_72
15181 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
15182 + :try_end_75
15183 + .catchall {:try_start_72 .. :try_end_75} :catchall_110
15185 + :try_start_75
15186 + const-string/jumbo v4, "settings"
15188 + const/4 v2, 0x1
15190 + new-array v5, v2, [Ljava/lang/String;
15192 + const/4 v2, 0x0
15194 + const-string/jumbo v6, "packageName"
15196 + aput-object v6, v5, v2
15198 + const/4 v6, 0x0
15200 + const/4 v7, 0x0
15202 + const/4 v8, 0x0
15204 + const/4 v9, 0x0
15206 + const/4 v10, 0x0
15208 + const/4 v11, 0x0
15210 + move-object/from16 v2, p0
15212 + 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;
15214 + move-result-object v15
15216 + if-eqz v15, :cond_bd
15218 + invoke-interface {v15}, Landroid/database/Cursor;->getCount()I
15220 + move-result v2
15222 + if-lez v2, :cond_bd
15224 + invoke-interface {v15}, Landroid/database/Cursor;->moveToFirst()Z
15226 + move-result v2
15228 + if-eqz v2, :cond_bd
15230 + :cond_9b
15231 + const/4 v2, 0x0
15233 + invoke-interface {v15, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
15235 + move-result-object v22
15237 + move-object/from16 v0, v22
15239 + invoke-interface {v13, v0}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
15241 + move-result v2
15243 + if-nez v2, :cond_b7
15245 + const-string/jumbo v2, "settings"
15247 + const-string/jumbo v4, "packageName = ?"
15249 + const/4 v5, 0x1
15251 + new-array v5, v5, [Ljava/lang/String;
15253 + const/4 v6, 0x0
15255 + aput-object v22, v5, v6
15257 + invoke-virtual {v3, v2, v4, v5}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
15259 + :cond_b7
15260 + invoke-interface {v15}, Landroid/database/Cursor;->moveToNext()Z
15262 + move-result v2
15264 + if-nez v2, :cond_9b
15266 + :cond_bd
15267 + new-instance v24, Ljava/io/File;
15269 + const-string v2, "/data/system/privacy"
15271 + move-object/from16 v0, v24
15273 + invoke-direct {v0, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
15275 + invoke-virtual/range {v24 .. v24}, Ljava/io/File;->listFiles()[Ljava/io/File;
15277 + move-result-object v14
15279 + array-length v0, v14
15281 + move/from16 v19, v0
15283 + const/16 v17, 0x0
15285 + :goto_cf
15286 + move/from16 v0, v17
15288 + move/from16 v1, v19
15290 + if-ge v0, v1, :cond_ed
15292 + aget-object v21, v14, v17
15294 + invoke-virtual/range {v21 .. v21}, Ljava/io/File;->getName()Ljava/lang/String;
15296 + move-result-object v22
15298 + move-object/from16 v0, v22
15300 + invoke-interface {v13, v0}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
15302 + move-result v2
15304 + if-nez v2, :cond_ea
15306 + move-object/from16 v0, p0
15308 + move-object/from16 v1, v21
15310 + invoke-direct {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
15312 + :cond_ea
15313 + add-int/lit8 v17, v17, 0x1
15315 + goto :goto_cf
15317 + :cond_ed
15318 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
15319 + :try_end_f0
15320 + .catchall {:try_start_75 .. :try_end_f0} :catchall_106
15322 + if-eqz v15, :cond_f5
15324 + :try_start_f2
15325 + invoke-interface {v15}, Landroid/database/Cursor;->close()V
15327 + :cond_f5
15328 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
15329 + :try_end_f8
15330 + .catchall {:try_start_f2 .. :try_end_f8} :catchall_110
15332 + :try_start_f8
15333 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15335 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15337 + move-result-object v2
15339 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
15340 + :try_end_101
15341 + .catchall {:try_start_f8 .. :try_end_101} :catchall_11b
15342 + .catch Ljava/lang/Exception; {:try_start_f8 .. :try_end_101} :catch_56
15344 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15346 + goto/16 :goto_65
15348 + :catchall_106
15349 + move-exception v2
15351 + if-eqz v15, :cond_10c
15353 + :try_start_109
15354 + invoke-interface {v15}, Landroid/database/Cursor;->close()V
15356 + :cond_10c
15357 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
15359 + throw v2
15360 + :try_end_110
15361 + .catchall {:try_start_109 .. :try_end_110} :catchall_110
15363 + :catchall_110
15364 + move-exception v2
15366 + :try_start_111
15367 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15369 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15371 + move-result-object v4
15373 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
15375 + throw v2
15376 + :try_end_11b
15377 + .catchall {:try_start_111 .. :try_end_11b} :catchall_11b
15378 + .catch Ljava/lang/Exception; {:try_start_111 .. :try_end_11b} :catch_56
15380 + :catchall_11b
15381 + move-exception v2
15383 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15385 + throw v2
15386 +.end method
15388 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
15389 + .registers 25
15391 + const/16 v19, 0x0
15393 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
15395 + move-result-object v18
15397 + if-eqz v18, :cond_e
15399 + invoke-virtual/range {v18 .. v18}, Ljava/lang/String;->isEmpty()Z
15401 + move-result v4
15403 + if-eqz v4, :cond_18
15405 + :cond_e
15406 + const-string v4, "PrivacyPersistenceAdapter"
15408 + const-string/jumbo v5, "saveSettings - either package name is missing"
15410 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
15412 + const/4 v4, 0x0
15414 + :goto_17
15415 + return v4
15417 + :cond_18
15418 + new-instance v22, Landroid/content/ContentValues;
15420 + invoke-direct/range {v22 .. v22}, Landroid/content/ContentValues;-><init>()V
15422 + const-string/jumbo v4, "packageName"
15424 + move-object/from16 v0, v22
15426 + move-object/from16 v1, v18
15428 + invoke-virtual {v0, v4, v1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15430 + const-string/jumbo v4, "uid"
15432 + const/4 v5, -0x1
15434 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
15436 + move-result-object v5
15438 + move-object/from16 v0, v22
15440 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
15442 + const-string v4, "deviceIdSetting"
15444 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
15446 + move-result v5
15448 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15450 + move-result-object v5
15452 + move-object/from16 v0, v22
15454 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15456 + const-string v4, "deviceId"
15458 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
15460 + move-result-object v5
15462 + move-object/from16 v0, v22
15464 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15466 + const-string v4, "line1NumberSetting"
15468 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
15470 + move-result v5
15472 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15474 + move-result-object v5
15476 + move-object/from16 v0, v22
15478 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15480 + const-string v4, "line1Number"
15482 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
15484 + move-result-object v5
15486 + move-object/from16 v0, v22
15488 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15490 + const-string v4, "locationGpsSetting"
15492 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
15494 + move-result v5
15496 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15498 + move-result-object v5
15500 + move-object/from16 v0, v22
15502 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15504 + const-string v4, "locationGpsLat"
15506 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
15508 + move-result-object v5
15510 + move-object/from16 v0, v22
15512 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15514 + const-string v4, "locationGpsLon"
15516 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
15518 + move-result-object v5
15520 + move-object/from16 v0, v22
15522 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15524 + const-string v4, "locationNetworkSetting"
15526 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
15528 + move-result v5
15530 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15532 + move-result-object v5
15534 + move-object/from16 v0, v22
15536 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15538 + const-string v4, "locationNetworkLat"
15540 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
15542 + move-result-object v5
15544 + move-object/from16 v0, v22
15546 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15548 + const-string v4, "locationNetworkLon"
15550 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
15552 + move-result-object v5
15554 + move-object/from16 v0, v22
15556 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15558 + const-string/jumbo v4, "networkInfoSetting"
15560 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
15562 + move-result v5
15564 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15566 + move-result-object v5
15568 + move-object/from16 v0, v22
15570 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15572 + const-string/jumbo v4, "simInfoSetting"
15574 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
15576 + move-result v5
15578 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15580 + move-result-object v5
15582 + move-object/from16 v0, v22
15584 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15586 + const-string/jumbo v4, "simSerialNumberSetting"
15588 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
15590 + move-result v5
15592 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15594 + move-result-object v5
15596 + move-object/from16 v0, v22
15598 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15600 + const-string/jumbo v4, "simSerialNumber"
15602 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimSerialNumber()Ljava/lang/String;
15604 + move-result-object v5
15606 + move-object/from16 v0, v22
15608 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15610 + const-string/jumbo v4, "subscriberIdSetting"
15612 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
15614 + move-result v5
15616 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15618 + move-result-object v5
15620 + move-object/from16 v0, v22
15622 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15624 + const-string/jumbo v4, "subscriberId"
15626 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
15628 + move-result-object v5
15630 + move-object/from16 v0, v22
15632 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15634 + const-string v4, "accountsSetting"
15636 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
15638 + move-result v5
15640 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15642 + move-result-object v5
15644 + move-object/from16 v0, v22
15646 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15648 + const-string v4, "accountsAuthTokensSetting"
15650 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
15652 + move-result v5
15654 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15656 + move-result-object v5
15658 + move-object/from16 v0, v22
15660 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15662 + const-string/jumbo v4, "outgoingCallsSetting"
15664 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getOutgoingCallsSetting()B
15666 + move-result v5
15668 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15670 + move-result-object v5
15672 + move-object/from16 v0, v22
15674 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15676 + const-string v4, "incomingCallsSetting"
15678 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
15680 + move-result v5
15682 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15684 + move-result-object v5
15686 + move-object/from16 v0, v22
15688 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15690 + const-string v4, "contactsSetting"
15692 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
15694 + move-result v5
15696 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15698 + move-result-object v5
15700 + move-object/from16 v0, v22
15702 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15704 + const-string v4, "calendarSetting"
15706 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCalendarSetting()B
15708 + move-result v5
15710 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15712 + move-result-object v5
15714 + move-object/from16 v0, v22
15716 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15718 + const-string/jumbo v4, "mmsSetting"
15720 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
15722 + move-result v5
15724 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15726 + move-result-object v5
15728 + move-object/from16 v0, v22
15730 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15732 + const-string/jumbo v4, "smsSetting"
15734 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
15736 + move-result v5
15738 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15740 + move-result-object v5
15742 + move-object/from16 v0, v22
15744 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15746 + const-string v4, "callLogSetting"
15748 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCallLogSetting()B
15750 + move-result v5
15752 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15754 + move-result-object v5
15756 + move-object/from16 v0, v22
15758 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15760 + const-string v4, "bookmarksSetting"
15762 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getBookmarksSetting()B
15764 + move-result v5
15766 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15768 + move-result-object v5
15770 + move-object/from16 v0, v22
15772 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15774 + const-string/jumbo v4, "systemLogsSetting"
15776 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
15778 + move-result v5
15780 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15782 + move-result-object v5
15784 + move-object/from16 v0, v22
15786 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15788 + const-string/jumbo v4, "notificationSetting"
15790 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getNotificationSetting()B
15792 + move-result v5
15794 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15796 + move-result-object v5
15798 + move-object/from16 v0, v22
15800 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15802 + const-string v4, "intentBootCompletedSetting"
15804 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIntentBootCompletedSetting()B
15806 + move-result v5
15808 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15810 + move-result-object v5
15812 + move-object/from16 v0, v22
15814 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15816 + const-string v4, "cameraSetting"
15818 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
15820 + move-result v5
15822 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15824 + move-result-object v5
15826 + move-object/from16 v0, v22
15828 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15830 + const-string/jumbo v4, "recordAudioSetting"
15832 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
15834 + move-result v5
15836 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15838 + move-result-object v5
15840 + move-object/from16 v0, v22
15842 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15844 + const-string/jumbo v4, "smsSendSetting"
15846 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSmsSendSetting()B
15848 + move-result v5
15850 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15852 + move-result-object v5
15854 + move-object/from16 v0, v22
15856 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15858 + const-string/jumbo v4, "phoneCallSetting"
15860 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
15862 + move-result v5
15864 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15866 + move-result-object v5
15868 + move-object/from16 v0, v22
15870 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15872 + const-string v4, "ipTableProtectSetting"
15874 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
15876 + move-result v5
15878 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15880 + move-result-object v5
15882 + move-object/from16 v0, v22
15884 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15886 + const-string v4, "iccAccessSetting"
15888 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIccAccessSetting()B
15890 + move-result v5
15892 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15894 + move-result-object v5
15896 + move-object/from16 v0, v22
15898 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15900 + const-string v4, "addOnManagementSetting"
15902 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAddOnManagementSetting()B
15904 + move-result v5
15906 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15908 + move-result-object v5
15910 + move-object/from16 v0, v22
15912 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15914 + const-string v4, "androidIdSetting"
15916 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
15918 + move-result v5
15920 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15922 + move-result-object v5
15924 + move-object/from16 v0, v22
15926 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15928 + const-string v4, "androidId"
15930 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAndroidID()Ljava/lang/String;
15932 + move-result-object v5
15934 + move-object/from16 v0, v22
15936 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15938 + const-string/jumbo v4, "wifiInfoSetting"
15940 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
15942 + move-result v5
15944 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15946 + move-result-object v5
15948 + move-object/from16 v0, v22
15950 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15952 + const-string/jumbo v4, "switchConnectivitySetting"
15954 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSwitchConnectivitySetting()B
15956 + move-result v5
15958 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15960 + move-result-object v5
15962 + move-object/from16 v0, v22
15964 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15966 + const-string/jumbo v4, "sendMmsSetting"
15968 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSendMmsSetting()B
15970 + move-result v5
15972 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15974 + move-result-object v5
15976 + move-object/from16 v0, v22
15978 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15980 + const-string v4, "forceOnlineState"
15982 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
15984 + move-result v5
15986 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15988 + move-result-object v5
15990 + move-object/from16 v0, v22
15992 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15994 + const-string/jumbo v4, "switchWifiStateSetting"
15996 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSwitchWifiStateSetting()B
15998 + move-result v5
16000 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16002 + move-result-object v5
16004 + move-object/from16 v0, v22
16006 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16008 + const/4 v3, 0x0
16010 + const/4 v13, 0x0
16012 + :try_start_2a9
16013 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16015 + monitor-enter v5
16016 + :try_end_2ac
16017 + .catchall {:try_start_2a9 .. :try_end_2ac} :catchall_33c
16018 + .catch Ljava/lang/Exception; {:try_start_2a9 .. :try_end_2ac} :catch_311
16020 + :try_start_2ac
16021 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16023 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16025 + invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
16027 + move-result v4
16029 + add-int/lit8 v4, v4, 0x1
16031 + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16033 + move-result-object v4
16035 + sput-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16037 + monitor-exit v5
16038 + :try_end_2bd
16039 + .catchall {:try_start_2ac .. :try_end_2bd} :catchall_339
16041 + :try_start_2bd
16042 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
16044 + move-result-object v3
16046 + if-eqz v3, :cond_4f2
16048 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
16050 + move-result v4
16052 + if-eqz v4, :cond_4f2
16054 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16056 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16058 + move-result-object v4
16060 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->lock()V
16061 + :try_end_2d2
16062 + .catchall {:try_start_2bd .. :try_end_2d2} :catchall_33c
16063 + .catch Ljava/lang/Exception; {:try_start_2bd .. :try_end_2d2} :catch_311
16065 + :try_start_2d2
16066 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
16067 + :try_end_2d5
16068 + .catchall {:try_start_2d2 .. :try_end_2d5} :catchall_306
16070 + :try_start_2d5
16071 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->get_id()Ljava/lang/Integer;
16073 + move-result-object v16
16075 + if-eqz v16, :cond_38d
16077 + const-string/jumbo v4, "settings"
16079 + const-string v5, "_id=?"
16081 + const/4 v6, 0x1
16083 + new-array v6, v6, [Ljava/lang/String;
16085 + const/4 v7, 0x0
16087 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16089 + move-result-object v8
16091 + aput-object v8, v6, v7
16093 + move-object/from16 v0, v22
16095 + 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
16097 + move-result v4
16099 + const/4 v5, 0x1
16101 + if-ge v4, v5, :cond_341
16103 + new-instance v4, Ljava/lang/Exception;
16105 + const-string/jumbo v5, "saveSettings - failed to update database entry"
16107 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16109 + throw v4
16110 + :try_end_2fc
16111 + .catchall {:try_start_2d5 .. :try_end_2fc} :catchall_2fc
16113 + :catchall_2fc
16114 + move-exception v4
16116 + :try_start_2fd
16117 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
16119 + if-eqz v13, :cond_305
16121 + invoke-interface {v13}, Landroid/database/Cursor;->close()V
16123 + :cond_305
16124 + throw v4
16125 + :try_end_306
16126 + .catchall {:try_start_2fd .. :try_end_306} :catchall_306
16128 + :catchall_306
16129 + move-exception v4
16131 + :try_start_307
16132 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16134 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16136 + move-result-object v5
16138 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->unlock()V
16140 + throw v4
16141 + :try_end_311
16142 + .catchall {:try_start_307 .. :try_end_311} :catchall_33c
16143 + .catch Ljava/lang/Exception; {:try_start_307 .. :try_end_311} :catch_311
16145 + :catch_311
16146 + move-exception v14
16148 + :try_start_312
16149 + const-string v4, "PrivacyPersistenceAdapter"
16151 + new-instance v5, Ljava/lang/StringBuilder;
16153 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16155 + const-string v6, "PrivacyPersistenceAdapter:saveSettings: saving for "
16157 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16159 + move-result-object v5
16161 + move-object/from16 v0, v18
16163 + invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16165 + move-result-object v5
16167 + const-string v6, " failed"
16169 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16171 + move-result-object v5
16173 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16175 + move-result-object v5
16177 + invoke-static {v4, v5, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
16178 + :try_end_332
16179 + .catchall {:try_start_312 .. :try_end_332} :catchall_33c
16181 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16183 + :goto_335
16184 + move/from16 v4, v19
16186 + goto/16 :goto_17
16188 + :catchall_339
16189 + move-exception v4
16191 + :try_start_33a
16192 + monitor-exit v5
16193 + :try_end_33b
16194 + .catchall {:try_start_33a .. :try_end_33b} :catchall_339
16196 + :try_start_33b
16197 + throw v4
16198 + :try_end_33c
16199 + .catchall {:try_start_33b .. :try_end_33c} :catchall_33c
16200 + .catch Ljava/lang/Exception; {:try_start_33b .. :try_end_33c} :catch_311
16202 + :catchall_33c
16203 + move-exception v4
16205 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16207 + throw v4
16209 + :cond_341
16210 + :try_start_341
16211 + const-string v4, "allowed_contacts"
16213 + const-string/jumbo v5, "settings_id=?"
16215 + const/4 v6, 0x1
16217 + new-array v6, v6, [Ljava/lang/String;
16219 + const/4 v7, 0x0
16221 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16223 + move-result-object v8
16225 + aput-object v8, v6, v7
16227 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16229 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16231 + move-result-object v11
16233 + if-eqz v11, :cond_4af
16235 + new-instance v12, Landroid/content/ContentValues;
16237 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16239 + const/4 v15, 0x0
16241 + :goto_35f
16242 + array-length v4, v11
16244 + if-ge v15, v4, :cond_4af
16246 + const-string/jumbo v4, "settings_id"
16248 + move-object/from16 v0, v16
16250 + invoke-virtual {v12, v4, v0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16252 + const-string v4, "contact_id"
16254 + aget v5, v11, v15
16256 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16258 + move-result-object v5
16260 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16262 + const-string v4, "allowed_contacts"
16264 + const/4 v5, 0x0
16266 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16268 + move-result-wide v4
16270 + const-wide/16 v6, -0x1
16272 + cmp-long v4, v4, v6
16274 + if-nez v4, :cond_38a
16276 + new-instance v4, Ljava/lang/Exception;
16278 + const-string v5, "PrivacyPersistenceAdapter:saveSettings: failed to update database entry (contacts)"
16280 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16282 + throw v4
16284 + :cond_38a
16285 + add-int/lit8 v15, v15, 0x1
16287 + goto :goto_35f
16289 + :cond_38d
16290 + const-string/jumbo v4, "settings"
16292 + const/4 v5, 0x1
16294 + new-array v5, v5, [Ljava/lang/String;
16296 + const/4 v6, 0x0
16298 + const-string v7, "_id"
16300 + aput-object v7, v5, v6
16302 + const-string/jumbo v6, "packageName=?"
16304 + const/4 v7, 0x1
16306 + new-array v7, v7, [Ljava/lang/String;
16308 + const/4 v8, 0x0
16310 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
16312 + move-result-object v9
16314 + aput-object v9, v7, v8
16316 + const/4 v8, 0x0
16318 + const/4 v9, 0x0
16320 + const/4 v10, 0x0
16322 + 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;
16324 + move-result-object v13
16326 + if-eqz v13, :cond_4a7
16328 + invoke-interface {v13}, Landroid/database/Cursor;->getCount()I
16330 + move-result v4
16332 + const/4 v5, 0x1
16334 + if-ne v4, v5, :cond_433
16336 + const-string/jumbo v4, "settings"
16338 + const-string/jumbo v5, "packageName=?"
16340 + const/4 v6, 0x1
16342 + new-array v6, v6, [Ljava/lang/String;
16344 + const/4 v7, 0x0
16346 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
16348 + move-result-object v8
16350 + aput-object v8, v6, v7
16352 + move-object/from16 v0, v22
16354 + 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
16356 + move-result v4
16358 + const/4 v5, 0x1
16360 + if-ge v4, v5, :cond_3d7
16362 + new-instance v4, Ljava/lang/Exception;
16364 + const-string/jumbo v5, "saveSettings - failed to update database entry"
16366 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16368 + throw v4
16370 + :cond_3d7
16371 + invoke-interface {v13}, Landroid/database/Cursor;->moveToFirst()Z
16373 + move-result v4
16375 + if-eqz v4, :cond_4af
16377 + const/4 v4, 0x0
16379 + invoke-interface {v13, v4}, Landroid/database/Cursor;->getInt(I)I
16381 + move-result v4
16383 + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16385 + move-result-object v17
16387 + const-string v4, "allowed_contacts"
16389 + const-string/jumbo v5, "settings_id=?"
16391 + const/4 v6, 0x1
16393 + new-array v6, v6, [Ljava/lang/String;
16395 + const/4 v7, 0x0
16397 + invoke-virtual/range {v17 .. v17}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16399 + move-result-object v8
16401 + aput-object v8, v6, v7
16403 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16405 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16407 + move-result-object v11
16409 + if-eqz v11, :cond_4af
16411 + new-instance v12, Landroid/content/ContentValues;
16413 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16415 + const/4 v15, 0x0
16417 + :goto_404
16418 + array-length v4, v11
16420 + if-ge v15, v4, :cond_4af
16422 + const-string/jumbo v4, "settings_id"
16424 + move-object/from16 v0, v17
16426 + invoke-virtual {v12, v4, v0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16428 + const-string v4, "contact_id"
16430 + aget v5, v11, v15
16432 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16434 + move-result-object v5
16436 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16438 + const-string v4, "allowed_contacts"
16440 + const/4 v5, 0x0
16442 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16444 + move-result-wide v4
16446 + const-wide/16 v6, -0x1
16448 + cmp-long v4, v4, v6
16450 + if-nez v4, :cond_430
16452 + new-instance v4, Ljava/lang/Exception;
16454 + const-string/jumbo v5, "saveSettings - failed to update database entry (contacts)"
16456 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16458 + throw v4
16460 + :cond_430
16461 + add-int/lit8 v15, v15, 0x1
16463 + goto :goto_404
16465 + :cond_433
16466 + invoke-interface {v13}, Landroid/database/Cursor;->getCount()I
16468 + move-result v4
16470 + if-nez v4, :cond_49f
16472 + const-string/jumbo v4, "settings"
16474 + const/4 v5, 0x0
16476 + move-object/from16 v0, v22
16478 + invoke-virtual {v3, v4, v5, v0}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16480 + move-result-wide v20
16482 + const-wide/16 v4, -0x1
16484 + cmp-long v4, v20, v4
16486 + if-nez v4, :cond_451
16488 + new-instance v4, Ljava/lang/Exception;
16490 + const-string v5, "PrivacyPersistenceAdapter:saveSettings - failed to insert new record into DB"
16492 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16494 + throw v4
16496 + :cond_451
16497 + const-string v4, "allowed_contacts"
16499 + const-string/jumbo v5, "settings_id=?"
16501 + const/4 v6, 0x1
16503 + new-array v6, v6, [Ljava/lang/String;
16505 + const/4 v7, 0x0
16507 + invoke-static/range {v20 .. v21}, Ljava/lang/Long;->toString(J)Ljava/lang/String;
16509 + move-result-object v8
16511 + aput-object v8, v6, v7
16513 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16515 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16517 + move-result-object v11
16519 + if-eqz v11, :cond_4af
16521 + new-instance v12, Landroid/content/ContentValues;
16523 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16525 + const/4 v15, 0x0
16527 + :goto_46f
16528 + array-length v4, v11
16530 + if-ge v15, v4, :cond_4af
16532 + const-string/jumbo v4, "settings_id"
16534 + invoke-static/range {v20 .. v21}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
16536 + move-result-object v5
16538 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
16540 + const-string v4, "contact_id"
16542 + aget v5, v11, v15
16544 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16546 + move-result-object v5
16548 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16550 + const-string v4, "allowed_contacts"
16552 + const/4 v5, 0x0
16554 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16556 + move-result-wide v4
16558 + const-wide/16 v6, -0x1
16560 + cmp-long v4, v4, v6
16562 + if-nez v4, :cond_49c
16564 + new-instance v4, Ljava/lang/Exception;
16566 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to update database entry (contacts)"
16568 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16570 + throw v4
16572 + :cond_49c
16573 + add-int/lit8 v15, v15, 0x1
16575 + goto :goto_46f
16577 + :cond_49f
16578 + new-instance v4, Ljava/lang/Exception;
16580 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:duplicate entries in the privacy.db"
16582 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16584 + throw v4
16586 + :cond_4a7
16587 + new-instance v4, Ljava/lang/Exception;
16589 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:cursor is null, database access failed"
16591 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16593 + throw v4
16595 + :cond_4af
16596 + const-string/jumbo v4, "systemLogsSetting"
16598 + move-object/from16 v0, p0
16600 + move-object/from16 v1, v18
16602 + move-object/from16 v2, p1
16604 + invoke-direct {v0, v4, v1, v2}, Landroid/privacy/PrivacyPersistenceAdapter;->writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
16606 + move-result v4
16608 + if-nez v4, :cond_4c6
16610 + new-instance v4, Ljava/lang/Exception;
16612 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to write systemLogsSettings file"
16614 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16616 + throw v4
16618 + :cond_4c6
16619 + const-string v4, "ipTableProtectSetting"
16621 + move-object/from16 v0, p0
16623 + move-object/from16 v1, v18
16625 + move-object/from16 v2, p1
16627 + invoke-direct {v0, v4, v1, v2}, Landroid/privacy/PrivacyPersistenceAdapter;->writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
16629 + move-result v4
16631 + if-nez v4, :cond_4dc
16633 + new-instance v4, Ljava/lang/Exception;
16635 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to write ipTableProtectSetting file"
16637 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16639 + throw v4
16641 + :cond_4dc
16642 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
16643 + :try_end_4df
16644 + .catchall {:try_start_341 .. :try_end_4df} :catchall_2fc
16646 + :try_start_4df
16647 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
16649 + if-eqz v13, :cond_4e7
16651 + invoke-interface {v13}, Landroid/database/Cursor;->close()V
16652 + :try_end_4e7
16653 + .catchall {:try_start_4df .. :try_end_4e7} :catchall_306
16655 + :cond_4e7
16656 + :try_start_4e7
16657 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16659 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16661 + move-result-object v4
16663 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
16664 + :try_end_4f0
16665 + .catchall {:try_start_4e7 .. :try_end_4f0} :catchall_33c
16666 + .catch Ljava/lang/Exception; {:try_start_4e7 .. :try_end_4f0} :catch_311
16668 + const/16 v19, 0x1
16670 + :cond_4f2
16671 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16673 + goto/16 :goto_335
16674 +.end method
16676 +.method public setValue(Ljava/lang/String;Ljava/lang/String;)Z
16677 + .registers 11
16679 + const/4 v3, 0x0
16681 + const-string v4, "PrivacyPersistenceAdapter"
16683 + new-instance v5, Ljava/lang/StringBuilder;
16685 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16687 + const-string/jumbo v6, "setValue - name "
16689 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16691 + move-result-object v5
16693 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16695 + move-result-object v5
16697 + const-string v6, " value "
16699 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16701 + move-result-object v5
16703 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16705 + move-result-object v5
16707 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16709 + move-result-object v5
16711 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
16713 + new-instance v2, Landroid/content/ContentValues;
16715 + invoke-direct {v2}, Landroid/content/ContentValues;-><init>()V
16717 + const-string/jumbo v4, "name"
16719 + invoke-virtual {v2, v4, p1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16721 + const-string/jumbo v4, "value"
16723 + invoke-virtual {v2, v4, p2}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16725 + const/4 v1, 0x0
16727 + :try_start_36
16728 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16730 + monitor-enter v4
16731 + :try_end_39
16732 + .catchall {:try_start_36 .. :try_end_39} :catchall_75
16734 + :try_start_39
16735 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16737 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16739 + invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
16741 + move-result v5
16743 + add-int/lit8 v5, v5, 0x1
16745 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16747 + move-result-object v5
16749 + sput-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16751 + monitor-exit v4
16752 + :try_end_4a
16753 + .catchall {:try_start_39 .. :try_end_4a} :catchall_72
16755 + :try_start_4a
16756 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
16758 + move-result-object v0
16760 + if-eqz v0, :cond_56
16762 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
16764 + move-result v4
16766 + if-nez v4, :cond_7a
16768 + :cond_56
16769 + const-string v4, "PrivacyPersistenceAdapter"
16771 + new-instance v5, Ljava/lang/StringBuilder;
16773 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16775 + const-string v6, "PrivacyPersistenceAdapter:setValue: Database not obtained while setting value for name: "
16777 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16779 + move-result-object v5
16781 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16783 + move-result-object v5
16785 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16787 + move-result-object v5
16789 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
16790 + :try_end_6e
16791 + .catchall {:try_start_4a .. :try_end_6e} :catchall_75
16793 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16795 + :goto_71
16796 + return v3
16798 + :catchall_72
16799 + move-exception v3
16801 + :try_start_73
16802 + monitor-exit v4
16803 + :try_end_74
16804 + .catchall {:try_start_73 .. :try_end_74} :catchall_72
16806 + :try_start_74
16807 + throw v3
16808 + :try_end_75
16809 + .catchall {:try_start_74 .. :try_end_75} :catchall_75
16811 + :catchall_75
16812 + move-exception v3
16814 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16816 + throw v3
16818 + :cond_7a
16819 + :try_start_7a
16820 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16822 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16824 + move-result-object v4
16826 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->lock()V
16827 + :try_end_83
16828 + .catchall {:try_start_7a .. :try_end_83} :catchall_75
16830 + :try_start_83
16831 + const-string/jumbo v4, "map"
16833 + const/4 v5, 0x0
16835 + invoke-virtual {v0, v4, v5, v2}, Landroid/database/sqlite/SQLiteDatabase;->replace(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16836 + :try_end_8a
16837 + .catchall {:try_start_83 .. :try_end_8a} :catchall_a2
16839 + move-result-wide v4
16841 + const-wide/16 v6, -0x1
16843 + cmp-long v4, v4, v6
16845 + if-eqz v4, :cond_a0
16847 + const/4 v1, 0x1
16849 + :goto_92
16850 + :try_start_92
16851 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16853 + invoke-interface {v3}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16855 + move-result-object v3
16857 + invoke-interface {v3}, Ljava/util/concurrent/locks/Lock;->unlock()V
16858 + :try_end_9b
16859 + .catchall {:try_start_92 .. :try_end_9b} :catchall_75
16861 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16863 + move v3, v1
16865 + goto :goto_71
16867 + :cond_a0
16868 + move v1, v3
16870 + goto :goto_92
16872 + :catchall_a2
16873 + move-exception v3
16875 + :try_start_a3
16876 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16878 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16880 + move-result-object v4
16882 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
16884 + throw v3
16885 + :try_end_ad
16886 + .catchall {:try_start_a3 .. :try_end_ad} :catchall_75
16887 +.end method
16888 diff -Npru stock-framework/smali/android/privacy/PrivacySettings$1.smali opd-framework/smali/android/privacy/PrivacySettings$1.smali
16889 --- stock-framework/smali/android/privacy/PrivacySettings$1.smali 1969-12-31 18:00:00.000000000 -0600
16890 +++ opd-framework/smali/android/privacy/PrivacySettings$1.smali 2013-01-20 23:05:45.903697529 -0600
16891 @@ -0,0 +1,77 @@
16892 +.class final Landroid/privacy/PrivacySettings$1;
16893 +.super Ljava/lang/Object;
16894 +.source "PrivacySettings.java"
16896 +# interfaces
16897 +.implements Landroid/os/Parcelable$Creator;
16900 +# annotations
16901 +.annotation system Ldalvik/annotation/EnclosingClass;
16902 + value = Landroid/privacy/PrivacySettings;
16903 +.end annotation
16905 +.annotation system Ldalvik/annotation/InnerClass;
16906 + accessFlags = 0x8
16907 + name = null
16908 +.end annotation
16910 +.annotation system Ldalvik/annotation/Signature;
16911 + value = {
16912 + "Ljava/lang/Object;",
16913 + "Landroid/os/Parcelable$Creator",
16914 + "<",
16915 + "Landroid/privacy/PrivacySettings;",
16916 + ">;"
16918 +.end annotation
16921 +# direct methods
16922 +.method constructor <init>()V
16923 + .registers 1
16925 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
16927 + return-void
16928 +.end method
16931 +# virtual methods
16932 +.method public createFromParcel(Landroid/os/Parcel;)Landroid/privacy/PrivacySettings;
16933 + .registers 3
16935 + new-instance v0, Landroid/privacy/PrivacySettings;
16937 + invoke-direct {v0, p1}, Landroid/privacy/PrivacySettings;-><init>(Landroid/os/Parcel;)V
16939 + return-object v0
16940 +.end method
16942 +.method public bridge synthetic createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
16943 + .registers 3
16945 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettings$1;->createFromParcel(Landroid/os/Parcel;)Landroid/privacy/PrivacySettings;
16947 + move-result-object v0
16949 + return-object v0
16950 +.end method
16952 +.method public newArray(I)[Landroid/privacy/PrivacySettings;
16953 + .registers 3
16955 + new-array v0, p1, [Landroid/privacy/PrivacySettings;
16957 + return-object v0
16958 +.end method
16960 +.method public bridge synthetic newArray(I)[Ljava/lang/Object;
16961 + .registers 3
16963 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettings$1;->newArray(I)[Landroid/privacy/PrivacySettings;
16965 + move-result-object v0
16967 + return-object v0
16968 +.end method
16969 diff -Npru stock-framework/smali/android/privacy/PrivacySettingsManagerService.smali opd-framework/smali/android/privacy/PrivacySettingsManagerService.smali
16970 --- stock-framework/smali/android/privacy/PrivacySettingsManagerService.smali 1969-12-31 18:00:00.000000000 -0600
16971 +++ opd-framework/smali/android/privacy/PrivacySettingsManagerService.smali 2013-01-20 23:05:45.907697479 -0600
16972 @@ -0,0 +1,665 @@
16973 +.class public final Landroid/privacy/PrivacySettingsManagerService;
16974 +.super Landroid/privacy/IPrivacySettingsManager$Stub;
16975 +.source "PrivacySettingsManagerService.java"
16978 +# static fields
16979 +.field private static final READ_PRIVACY_SETTINGS:Ljava/lang/String; = "android.privacy.READ_PRIVACY_SETTINGS"
16981 +.field private static final TAG:Ljava/lang/String; = "PrivacySettingsManagerService"
16983 +.field private static final VERSION:D = 1.51
16985 +.field private static final WRITE_PRIVACY_SETTINGS:Ljava/lang/String; = "android.privacy.WRITE_PRIVACY_SETTINGS"
16987 +.field public static obs:Landroid/privacy/PrivacyFileObserver;
16990 +# instance fields
16991 +.field private bootCompleted:Z
16993 +.field private context:Landroid/content/Context;
16995 +.field private enabled:Z
16997 +.field private notificationsEnabled:Z
16999 +.field private persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17002 +# direct methods
17003 +.method public constructor <init>(Landroid/content/Context;)V
17004 + .registers 5
17006 + invoke-direct {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;-><init>()V
17008 + const-string v0, "PrivacySettingsManagerService"
17010 + new-instance v1, Ljava/lang/StringBuilder;
17012 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
17014 + const-string v2, "PrivacySettingsManagerService - initializing for package: "
17016 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17018 + move-result-object v1
17020 + invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17022 + move-result-object v2
17024 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17026 + move-result-object v1
17028 + const-string v2, " UID: "
17030 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17032 + move-result-object v1
17034 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17036 + move-result v2
17038 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
17040 + move-result-object v1
17042 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17044 + move-result-object v1
17046 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
17048 + iput-object p1, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17050 + new-instance v0, Landroid/privacy/PrivacyPersistenceAdapter;
17052 + invoke-direct {v0, p1}, Landroid/privacy/PrivacyPersistenceAdapter;-><init>(Landroid/content/Context;)V
17054 + iput-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17056 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
17058 + const-string v1, "/data/system/privacy"
17060 + invoke-direct {v0, v1, p0}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
17062 + sput-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17064 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17066 + const-string v1, "enabled"
17068 + invoke-virtual {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
17070 + move-result-object v0
17072 + const-string v1, "1"
17074 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17076 + move-result v0
17078 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17080 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17082 + const-string/jumbo v1, "notifications_enabled"
17084 + invoke-virtual {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
17086 + move-result-object v0
17088 + const-string v1, "1"
17090 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17092 + move-result v0
17094 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17096 + const/4 v0, 0x0
17098 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17100 + return-void
17101 +.end method
17103 +.method private checkCallerCanReadOrThrow()V
17104 + .registers 4
17106 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17108 + move-result v0
17110 + const/16 v1, 0x3e8
17112 + if-ne v0, v1, :cond_9
17114 + :goto_8
17115 + return-void
17117 + :cond_9
17118 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17120 + const-string v1, "android.privacy.READ_PRIVACY_SETTINGS"
17122 + const-string v2, "Requires READ_PRIVACY_SETTINGS"
17124 + invoke-virtual {v0, v1, v2}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
17126 + goto :goto_8
17127 +.end method
17129 +.method private checkCallerCanReadSettings()Z
17130 + .registers 3
17132 + :try_start_0
17133 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanReadOrThrow()V
17134 + :try_end_3
17135 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_3} :catch_5
17137 + const/4 v1, 0x1
17139 + :goto_4
17140 + return v1
17142 + :catch_5
17143 + move-exception v0
17145 + const/4 v1, 0x0
17147 + goto :goto_4
17148 +.end method
17150 +.method private checkCallerCanWriteOrThrow()V
17151 + .registers 4
17152 + .annotation system Ldalvik/annotation/Throws;
17153 + value = {
17154 + Landroid/os/RemoteException;
17156 + .end annotation
17158 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17160 + const-string v1, "android.privacy.WRITE_PRIVACY_SETTINGS"
17162 + const-string v2, "Requires WRITE_PRIVACY_SETTINGS"
17164 + invoke-virtual {v0, v1, v2}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
17166 + return-void
17167 +.end method
17169 +.method private checkCallerCanWriteSettings()Z
17170 + .registers 3
17171 + .annotation system Ldalvik/annotation/Throws;
17172 + value = {
17173 + Landroid/os/RemoteException;
17175 + .end annotation
17177 + :try_start_0
17178 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17179 + :try_end_3
17180 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_3} :catch_5
17182 + const/4 v1, 0x1
17184 + :goto_4
17185 + return v1
17187 + :catch_5
17188 + move-exception v0
17190 + const/4 v1, 0x0
17192 + goto :goto_4
17193 +.end method
17196 +# virtual methods
17197 +.method public addObserver(Ljava/lang/String;)V
17198 + .registers 3
17199 + .annotation system Ldalvik/annotation/Throws;
17200 + value = {
17201 + Landroid/os/RemoteException;
17203 + .end annotation
17205 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17207 + sget-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17209 + invoke-virtual {v0, p1}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17211 + return-void
17212 +.end method
17214 +.method public deleteSettings(Ljava/lang/String;)Z
17215 + .registers 7
17216 + .annotation system Ldalvik/annotation/Throws;
17217 + value = {
17218 + Landroid/os/RemoteException;
17220 + .end annotation
17222 + const/4 v4, 0x1
17224 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17226 + move-result v2
17228 + const/16 v3, 0x3e8
17230 + if-eq v2, v3, :cond_c
17232 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17234 + :cond_c
17235 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17237 + invoke-virtual {v2, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteSettings(Ljava/lang/String;)Z
17239 + move-result v1
17241 + new-instance v2, Ljava/lang/StringBuilder;
17243 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17245 + const-string v3, "/data/system/privacy/"
17247 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17249 + move-result-object v2
17251 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17253 + move-result-object v2
17255 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17257 + move-result-object v0
17259 + new-instance v2, Ljava/io/File;
17261 + invoke-direct {v2, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
17263 + invoke-virtual {v2}, Ljava/io/File;->exists()Z
17265 + move-result v2
17267 + if-eqz v2, :cond_38
17269 + if-ne v1, v4, :cond_38
17271 + sget-object v2, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17273 + invoke-virtual {v2, v0}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17275 + :cond_37
17276 + :goto_37
17277 + return v1
17279 + :cond_38
17280 + if-ne v1, v4, :cond_37
17282 + sget-object v2, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17284 + iget-object v2, v2, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
17286 + invoke-virtual {v2, v0}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
17288 + goto :goto_37
17289 +.end method
17291 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17292 + .registers 4
17294 + iget-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17296 + if-nez v0, :cond_2e
17298 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17300 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17302 + move-result-object v0
17304 + const-string v1, "com.privacy.pdroid"
17306 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17308 + move-result v0
17310 + if-nez v0, :cond_2e
17312 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17314 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17316 + move-result-object v0
17318 + const-string v1, "com.privacy.pdroid.Addon"
17320 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17322 + move-result v0
17324 + if-nez v0, :cond_2e
17326 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17328 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17330 + move-result-object v0
17332 + const-string v1, "com.android.privacy.pdroid.extension"
17334 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17336 + move-result v0
17338 + if-eqz v0, :cond_35
17340 + :cond_2e
17341 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17343 + invoke-virtual {v0, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17345 + move-result-object v0
17347 + :goto_34
17348 + return-object v0
17350 + :cond_35
17351 + const/4 v0, 0x0
17353 + goto :goto_34
17354 +.end method
17356 +.method public getVersion()D
17357 + .registers 3
17359 + const-wide v0, 0x3ff828f5c28f5c29L
17361 + return-wide v0
17362 +.end method
17364 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17365 + .registers 8
17367 + iget-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17369 + if-eqz v1, :cond_34
17371 + iget-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17373 + if-eqz v1, :cond_34
17375 + new-instance v0, Landroid/content/Intent;
17377 + invoke-direct {v0}, Landroid/content/Intent;-><init>()V
17379 + const-string v1, "com.privacy.pdroid.PRIVACY_NOTIFICATION"
17381 + invoke-virtual {v0, v1}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
17383 + const-string/jumbo v1, "packageName"
17385 + invoke-virtual {v0, v1, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17387 + const-string/jumbo v1, "uid"
17389 + const/4 v2, -0x1
17391 + invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
17393 + const-string v1, "accessMode"
17395 + invoke-virtual {v0, v1, p2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;B)Landroid/content/Intent;
17397 + const-string v1, "dataType"
17399 + invoke-virtual {v0, v1, p3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17401 + const-string/jumbo v1, "output"
17403 + invoke-virtual {v0, v1, p4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17405 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17407 + invoke-virtual {v1, v0}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
17409 + :cond_34
17410 + return-void
17411 +.end method
17413 +.method public purgeSettings()Z
17414 + .registers 2
17416 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17418 + invoke-virtual {v0}, Landroid/privacy/PrivacyPersistenceAdapter;->purgeSettings()Z
17420 + move-result v0
17422 + return v0
17423 +.end method
17425 +.method public registerObservers()V
17426 + .registers 3
17427 + .annotation system Ldalvik/annotation/Throws;
17428 + value = {
17429 + Landroid/os/RemoteException;
17431 + .end annotation
17433 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17435 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
17437 + const-string v1, "/data/system/privacy"
17439 + invoke-direct {v0, v1, p0}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
17441 + sput-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17443 + return-void
17444 +.end method
17446 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
17447 + .registers 6
17448 + .annotation system Ldalvik/annotation/Throws;
17449 + value = {
17450 + Landroid/os/RemoteException;
17452 + .end annotation
17454 + const-string v1, "PrivacySettingsManagerService"
17456 + new-instance v2, Ljava/lang/StringBuilder;
17458 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17460 + const-string/jumbo v3, "saveSettings - checking if caller (UID: "
17462 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17464 + move-result-object v2
17466 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17468 + move-result v3
17470 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
17472 + move-result-object v2
17474 + const-string v3, ") has sufficient permissions"
17476 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17478 + move-result-object v2
17480 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17482 + move-result-object v2
17484 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
17486 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17488 + move-result v1
17490 + const/16 v2, 0x3e8
17492 + if-eq v1, v2, :cond_2e
17494 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17496 + :cond_2e
17497 + const-string v1, "PrivacySettingsManagerService"
17499 + new-instance v2, Ljava/lang/StringBuilder;
17501 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17503 + const-string/jumbo v3, "saveSettings - "
17505 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17507 + move-result-object v2
17509 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
17511 + move-result-object v2
17513 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17515 + move-result-object v2
17517 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
17519 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17521 + invoke-virtual {v1, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->saveSettings(Landroid/privacy/PrivacySettings;)Z
17523 + move-result v0
17525 + const/4 v1, 0x1
17527 + if-ne v0, v1, :cond_59
17529 + sget-object v1, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17531 + invoke-virtual {p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
17533 + move-result-object v2
17535 + invoke-virtual {v1, v2}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17537 + :cond_59
17538 + return v0
17539 +.end method
17541 +.method public setBootCompleted()V
17542 + .registers 2
17544 + const/4 v0, 0x1
17546 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17548 + return-void
17549 +.end method
17551 +.method public setEnabled(Z)Z
17552 + .registers 6
17553 + .annotation system Ldalvik/annotation/Throws;
17554 + value = {
17555 + Landroid/os/RemoteException;
17557 + .end annotation
17559 + const/4 v1, 0x1
17561 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17563 + if-eqz p1, :cond_15
17565 + const-string v0, "1"
17567 + :goto_8
17568 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17570 + const-string v3, "enabled"
17572 + invoke-virtual {v2, v3, v0}, Landroid/privacy/PrivacyPersistenceAdapter;->setValue(Ljava/lang/String;Ljava/lang/String;)Z
17574 + move-result v2
17576 + if-eqz v2, :cond_18
17578 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17580 + :goto_14
17581 + return v1
17583 + :cond_15
17584 + const-string v0, "0"
17586 + goto :goto_8
17588 + :cond_18
17589 + const/4 v1, 0x0
17591 + goto :goto_14
17592 +.end method
17594 +.method public setNotificationsEnabled(Z)Z
17595 + .registers 6
17596 + .annotation system Ldalvik/annotation/Throws;
17597 + value = {
17598 + Landroid/os/RemoteException;
17600 + .end annotation
17602 + const/4 v1, 0x1
17604 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17606 + if-eqz p1, :cond_18
17608 + const-string v0, "1"
17610 + :goto_8
17611 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17613 + const-string/jumbo v3, "notifications_enabled"
17615 + invoke-virtual {v2, v3, v0}, Landroid/privacy/PrivacyPersistenceAdapter;->setValue(Ljava/lang/String;Ljava/lang/String;)Z
17617 + move-result v2
17619 + if-eqz v2, :cond_1b
17621 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17623 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17625 + :goto_17
17626 + return v1
17628 + :cond_18
17629 + const-string v0, "0"
17631 + goto :goto_8
17633 + :cond_1b
17634 + const/4 v1, 0x0
17636 + goto :goto_17
17637 +.end method
17638 diff -Npru stock-framework/smali/android/privacy/PrivacySettingsManager.smali opd-framework/smali/android/privacy/PrivacySettingsManager.smali
17639 --- stock-framework/smali/android/privacy/PrivacySettingsManager.smali 1969-12-31 18:00:00.000000000 -0600
17640 +++ opd-framework/smali/android/privacy/PrivacySettingsManager.smali 2013-01-20 23:05:45.907697479 -0600
17641 @@ -0,0 +1,537 @@
17642 +.class public final Landroid/privacy/PrivacySettingsManager;
17643 +.super Ljava/lang/Object;
17644 +.source "PrivacySettingsManager.java"
17647 +# static fields
17648 +.field public static final ACTION_PRIVACY_NOTIFICATION:Ljava/lang/String; = "com.privacy.pdroid.PRIVACY_NOTIFICATION"
17650 +.field public static final ACTION_PRIVACY_NOTIFICATION_ADDON:Ljava/lang/String; = "com.privacy.pdroid.PRIVACY_NOTIFICATION_ADDON"
17652 +.field private static final TAG:Ljava/lang/String; = "PrivacySettingsManager"
17655 +# instance fields
17656 +.field private service:Landroid/privacy/IPrivacySettingsManager;
17659 +# direct methods
17660 +.method public constructor <init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
17661 + .registers 3
17663 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
17665 + iput-object p2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17667 + return-void
17668 +.end method
17671 +# virtual methods
17672 +.method public addObserver(Ljava/lang/String;)V
17673 + .registers 5
17675 + :try_start_0
17676 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17678 + if-eqz v1, :cond_a
17680 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17682 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->addObserver(Ljava/lang/String;)V
17684 + :goto_9
17685 + return-void
17687 + :cond_a
17688 + const-string v1, "PrivacySettingsManager"
17690 + const-string v2, "deleteSettings - PrivacySettingsManagerService is null"
17692 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17693 + :try_end_11
17694 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
17696 + goto :goto_9
17698 + :catch_12
17699 + move-exception v0
17701 + const-string v1, "PrivacySettingsManager"
17703 + const-string v2, "RemoteException in addObserver: "
17705 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17707 + goto :goto_9
17708 +.end method
17710 +.method public deleteSettings(Ljava/lang/String;)Z
17711 + .registers 6
17713 + const/4 v1, 0x0
17715 + :try_start_1
17716 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17718 + if-eqz v2, :cond_c
17720 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17722 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->deleteSettings(Ljava/lang/String;)Z
17724 + move-result v1
17726 + :goto_b
17727 + return v1
17729 + :cond_c
17730 + const-string v2, "PrivacySettingsManager"
17732 + const-string v3, "deleteSettings - PrivacySettingsManagerService is null"
17734 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17735 + :try_end_13
17736 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_13} :catch_14
17738 + goto :goto_b
17740 + :catch_14
17741 + move-exception v0
17743 + const-string v2, "PrivacySettingsManager"
17745 + const-string v3, "RemoteException in deleteSettings: "
17747 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17749 + goto :goto_b
17750 +.end method
17752 +.method public deleteSettings(Ljava/lang/String;I)Z
17753 + .registers 4
17754 + .annotation runtime Ljava/lang/Deprecated;
17755 + .end annotation
17757 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettingsManager;->deleteSettings(Ljava/lang/String;)Z
17759 + move-result v0
17761 + return v0
17762 +.end method
17764 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17765 + .registers 6
17767 + const/4 v1, 0x0
17769 + :try_start_1
17770 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17772 + if-eqz v2, :cond_c
17774 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17776 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17778 + move-result-object v1
17780 + :goto_b
17781 + return-object v1
17783 + :cond_c
17784 + const-string v2, "PrivacySettingsManager"
17786 + const-string v3, "getSettings - PrivacySettingsManagerService is null"
17788 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17789 + :try_end_13
17790 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_13} :catch_14
17792 + goto :goto_b
17794 + :catch_14
17795 + move-exception v0
17797 + invoke-virtual {v0}, Landroid/os/RemoteException;->printStackTrace()V
17799 + goto :goto_b
17800 +.end method
17802 +.method public getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
17803 + .registers 4
17804 + .annotation runtime Ljava/lang/Deprecated;
17805 + .end annotation
17807 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17809 + move-result-object v0
17811 + return-object v0
17812 +.end method
17814 +.method public getVersion()D
17815 + .registers 4
17817 + :try_start_0
17818 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17820 + if-eqz v1, :cond_b
17822 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17824 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->getVersion()D
17826 + move-result-wide v1
17828 + :goto_a
17829 + return-wide v1
17831 + :cond_b
17832 + const-string v1, "PrivacySettingsManager"
17834 + const-string v2, "getVersion - PrivacySettingsManagerService is null"
17836 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17837 + :try_end_12
17838 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_15
17840 + :goto_12
17841 + const-wide/16 v1, 0x0
17843 + goto :goto_a
17845 + :catch_15
17846 + move-exception v0
17848 + const-string v1, "PrivacySettingsManager"
17850 + const-string v2, "RemoteException in getVersion: "
17852 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17854 + goto :goto_12
17855 +.end method
17857 +.method public isServiceAvailable()Z
17858 + .registers 2
17860 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17862 + if-eqz v0, :cond_6
17864 + const/4 v0, 0x1
17866 + :goto_5
17867 + return v0
17869 + :cond_6
17870 + const/4 v0, 0x0
17872 + goto :goto_5
17873 +.end method
17875 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17876 + .registers 8
17878 + :try_start_0
17879 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17881 + if-eqz v1, :cond_a
17883 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17885 + invoke-interface {v1, p1, p2, p3, p4}, Landroid/privacy/IPrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17887 + :goto_9
17888 + return-void
17890 + :cond_a
17891 + const-string v1, "PrivacySettingsManager"
17893 + const-string v2, "deleteSettings - PrivacySettingsManagerService is null"
17895 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17896 + :try_end_11
17897 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
17899 + goto :goto_9
17901 + :catch_12
17902 + move-exception v0
17904 + const-string v1, "PrivacySettingsManager"
17906 + const-string v2, "RemoteException in notification: "
17908 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17910 + goto :goto_9
17911 +.end method
17913 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
17914 + .registers 6
17915 + .annotation runtime Ljava/lang/Deprecated;
17916 + .end annotation
17918 + invoke-virtual {p0, p1, p2, p3, p4}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17920 + return-void
17921 +.end method
17923 +.method public notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
17924 + .registers 7
17925 + .annotation runtime Ljava/lang/Deprecated;
17926 + .end annotation
17928 + invoke-virtual {p0, p1, p3, p4, p5}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17930 + return-void
17931 +.end method
17933 +.method public purgeSettings()Z
17934 + .registers 4
17936 + :try_start_0
17937 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17939 + if-eqz v1, :cond_b
17941 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17943 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->purgeSettings()Z
17945 + move-result v1
17947 + :goto_a
17948 + return v1
17950 + :cond_b
17951 + const-string v1, "PrivacySettingsManager"
17953 + const-string/jumbo v2, "purgeSettings - PrivacySettingsManagerService is null"
17955 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17956 + :try_end_13
17957 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_13} :catch_15
17959 + :goto_13
17960 + const/4 v1, 0x0
17962 + goto :goto_a
17964 + :catch_15
17965 + move-exception v0
17967 + const-string v1, "PrivacySettingsManager"
17969 + const-string v2, "RemoteException in purgeSettings: "
17971 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17973 + goto :goto_13
17974 +.end method
17976 +.method public registerObservers()V
17977 + .registers 4
17979 + :try_start_0
17980 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17982 + if-eqz v1, :cond_a
17984 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17986 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->registerObservers()V
17988 + :goto_9
17989 + return-void
17991 + :cond_a
17992 + const-string v1, "PrivacySettingsManager"
17994 + const-string v2, "deleteSettings - PrivacySettingsManagerService is null"
17996 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17997 + :try_end_11
17998 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
18000 + goto :goto_9
18002 + :catch_12
18003 + move-exception v0
18005 + const-string v1, "PrivacySettingsManager"
18007 + const-string v2, "RemoteException in registerObservers: "
18009 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18011 + goto :goto_9
18012 +.end method
18014 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
18015 + .registers 6
18017 + const/4 v1, 0x0
18019 + :try_start_1
18020 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18022 + if-eqz v2, :cond_c
18024 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18026 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->saveSettings(Landroid/privacy/PrivacySettings;)Z
18028 + move-result v1
18030 + :goto_b
18031 + return v1
18033 + :cond_c
18034 + const-string v2, "PrivacySettingsManager"
18036 + const-string/jumbo v3, "saveSettings - PrivacySettingsManagerService is null"
18038 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18039 + :try_end_14
18040 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_14} :catch_15
18042 + goto :goto_b
18044 + :catch_15
18045 + move-exception v0
18047 + const-string v2, "PrivacySettingsManager"
18049 + const-string v3, "RemoteException in saveSettings: "
18051 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18053 + goto :goto_b
18054 +.end method
18056 +.method public setBootCompleted()V
18057 + .registers 4
18059 + :try_start_0
18060 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18062 + if-eqz v1, :cond_a
18064 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18066 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->setBootCompleted()V
18068 + :goto_9
18069 + return-void
18071 + :cond_a
18072 + const-string v1, "PrivacySettingsManager"
18074 + const-string/jumbo v2, "setBootCompleted - PrivacySettingsManagerService is null"
18076 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18077 + :try_end_12
18078 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_13
18080 + goto :goto_9
18082 + :catch_13
18083 + move-exception v0
18085 + const-string v1, "PrivacySettingsManager"
18087 + const-string v2, "RemoteException in setBootCompleted: "
18089 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18091 + goto :goto_9
18092 +.end method
18094 +.method public setEnabled(Z)Z
18095 + .registers 5
18097 + :try_start_0
18098 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18100 + if-eqz v1, :cond_b
18102 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18104 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->setEnabled(Z)Z
18106 + move-result v1
18108 + :goto_a
18109 + return v1
18111 + :cond_b
18112 + const-string v1, "PrivacySettingsManager"
18114 + const-string/jumbo v2, "setEnabled - PrivacySettingsManagerService is null"
18116 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18117 + :try_end_13
18118 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_13} :catch_15
18120 + :goto_13
18121 + const/4 v1, 0x0
18123 + goto :goto_a
18125 + :catch_15
18126 + move-exception v0
18128 + const-string v1, "PrivacySettingsManager"
18130 + const-string v2, "RemoteException in setEnabled: "
18132 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18134 + goto :goto_13
18135 +.end method
18137 +.method public setNotificationsEnabled(Z)Z
18138 + .registers 5
18140 + :try_start_0
18141 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18143 + if-eqz v1, :cond_b
18145 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18147 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->setNotificationsEnabled(Z)Z
18149 + move-result v1
18151 + :goto_a
18152 + return v1
18154 + :cond_b
18155 + const-string v1, "PrivacySettingsManager"
18157 + const-string/jumbo v2, "setNotificationsEnabled - PrivacySettingsManagerService is null"
18159 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18160 + :try_end_13
18161 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_13} :catch_15
18163 + :goto_13
18164 + const/4 v1, 0x0
18166 + goto :goto_a
18168 + :catch_15
18169 + move-exception v0
18171 + const-string v1, "PrivacySettingsManager"
18173 + const-string v2, "RemoteException in setNotificationsEnabled: "
18175 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18177 + goto :goto_13
18178 +.end method
18179 diff -Npru stock-framework/smali/android/privacy/PrivacySettings.smali opd-framework/smali/android/privacy/PrivacySettings.smali
18180 --- stock-framework/smali/android/privacy/PrivacySettings.smali 1969-12-31 18:00:00.000000000 -0600
18181 +++ opd-framework/smali/android/privacy/PrivacySettings.smali 2013-01-20 23:05:45.907697479 -0600
18182 @@ -0,0 +1,3295 @@
18183 +.class public final Landroid/privacy/PrivacySettings;
18184 +.super Ljava/lang/Object;
18185 +.source "PrivacySettings.java"
18187 +# interfaces
18188 +.implements Landroid/os/Parcelable;
18191 +# static fields
18192 +.field public static final CREATOR:Landroid/os/Parcelable$Creator; = null
18193 + .annotation system Ldalvik/annotation/Signature;
18194 + value = {
18195 + "Landroid/os/Parcelable$Creator",
18196 + "<",
18197 + "Landroid/privacy/PrivacySettings;",
18198 + ">;"
18200 + .end annotation
18201 +.end field
18203 +.field public static final CUSTOM:B = 0x2t
18205 +.field public static final DATA_ACCOUNTS_LIST:Ljava/lang/String; = "accountsList"
18207 +.field public static final DATA_ANDROID_ID:Ljava/lang/String; = "android_id"
18209 +.field public static final DATA_AUTH_TOKENS:Ljava/lang/String; = "authTokens"
18211 +.field public static final DATA_BOOKMARKS:Ljava/lang/String; = "bookmarks"
18213 +.field public static final DATA_CALENDAR:Ljava/lang/String; = "calendar"
18215 +.field public static final DATA_CALL_LOG:Ljava/lang/String; = "callLog"
18217 +.field public static final DATA_CAMERA:Ljava/lang/String; = "camera"
18219 +.field public static final DATA_CONTACTS:Ljava/lang/String; = "contacts"
18221 +.field public static final DATA_DEVICE_ID:Ljava/lang/String; = "deviceID"
18223 +.field public static final DATA_ICC_ACCESS:Ljava/lang/String; = "iccAccess"
18225 +.field public static final DATA_INCOMING_CALL:Ljava/lang/String; = "incomingCall"
18227 +.field public static final DATA_INTENT_BOOT_COMPLETED:Ljava/lang/String; = "intentBootCompleted"
18229 +.field public static final DATA_IP_TABLES:Ljava/lang/String; = "iptables"
18231 +.field public static final DATA_LINE_1_NUMBER:Ljava/lang/String; = "line1Number"
18233 +.field public static final DATA_LOCATION_GPS:Ljava/lang/String; = "locationGPS"
18235 +.field public static final DATA_LOCATION_NETWORK:Ljava/lang/String; = "locationNetwork"
18237 +.field public static final DATA_MMS:Ljava/lang/String; = "mms"
18239 +.field public static final DATA_MMS_SMS:Ljava/lang/String; = "mmsSms"
18241 +.field public static final DATA_NETWORK_INFO_CURRENT:Ljava/lang/String; = "networkInfoCurrent"
18243 +.field public static final DATA_NETWORK_INFO_SIM:Ljava/lang/String; = "networkInfoSIM"
18245 +.field public static final DATA_OUTGOING_CALL:Ljava/lang/String; = "outgoingCall"
18247 +.field public static final DATA_PHONE_CALL:Ljava/lang/String; = "phoneCall"
18249 +.field public static final DATA_RECORD_AUDIO:Ljava/lang/String; = "recordAudio"
18251 +.field public static final DATA_SEND_MMS:Ljava/lang/String; = "sendMms"
18253 +.field public static final DATA_SIM_SERIAL:Ljava/lang/String; = "simSerial"
18255 +.field public static final DATA_SMS:Ljava/lang/String; = "sms"
18257 +.field public static final DATA_SMS_SEND:Ljava/lang/String; = "SmsSend"
18259 +.field public static final DATA_SUBSCRIBER_ID:Ljava/lang/String; = "subscriberID"
18261 +.field public static final DATA_SWITCH_CONNECTIVITY:Ljava/lang/String; = "switchconnectivity"
18263 +.field public static final DATA_SWITCH_WIFI_STATE:Ljava/lang/String; = "switchWifiState"
18265 +.field public static final DATA_SYSTEM_LOGS:Ljava/lang/String; = "systemLogs"
18267 +.field public static final DATA_WIFI_INFO:Ljava/lang/String; = "wifiInfo"
18269 +.field public static final EMPTY:B = 0x1t
18271 +.field public static final ID_PATTERN:[Ljava/lang/String; = null
18273 +.field public static final RANDOM:B = 0x3t
18275 +.field public static final REAL:B = 0x0t
18277 +.field public static final SETTING_NOTIFY_OFF:B = 0x0t
18279 +.field public static final SETTING_NOTIFY_ON:B = 0x1t
18282 +# instance fields
18283 +.field private final _id:Ljava/lang/Integer;
18285 +.field private accountsAuthTokensSetting:B
18287 +.field private accountsSetting:B
18289 +.field private addOnManagementSetting:B
18291 +.field private allowedContacts:[I
18293 +.field private androidID:Ljava/lang/String;
18295 +.field private androidIdSetting:B
18297 +.field private bookmarksSetting:B
18299 +.field private calendarSetting:B
18301 +.field private callLogSetting:B
18303 +.field private cameraSetting:B
18305 +.field private contactsSetting:B
18307 +.field private deviceId:Ljava/lang/String;
18309 +.field private deviceIdSetting:B
18311 +.field private forceOnlineState:B
18313 +.field private iccAccessSetting:B
18315 +.field private incomingCallsSetting:B
18317 +.field private intentBootCompletedSetting:B
18319 +.field private ipTableProtectSetting:B
18321 +.field private line1Number:Ljava/lang/String;
18323 +.field private line1NumberSetting:B
18325 +.field private locationGpsLat:Ljava/lang/String;
18327 +.field private locationGpsLon:Ljava/lang/String;
18329 +.field private locationGpsSetting:B
18331 +.field private locationNetworkLat:Ljava/lang/String;
18333 +.field private locationNetworkLon:Ljava/lang/String;
18335 +.field private locationNetworkSetting:B
18337 +.field private mmsSetting:B
18339 +.field private networkInfoSetting:B
18341 +.field private notificationSetting:B
18343 +.field private outgoingCallsSetting:B
18345 +.field private packageName:Ljava/lang/String;
18347 +.field private phoneCallSetting:B
18349 +.field private recordAudioSetting:B
18351 +.field private sendMmsSetting:B
18353 +.field private simInfoSetting:B
18355 +.field private simSerialNumber:Ljava/lang/String;
18357 +.field private simSerialNumberSetting:B
18359 +.field private smsSendSetting:B
18361 +.field private smsSetting:B
18363 +.field private subscriberId:Ljava/lang/String;
18365 +.field private subscriberIdSetting:B
18367 +.field private switchConnectivitySetting:B
18369 +.field private switchWifiStateSetting:B
18371 +.field private systemLogsSetting:B
18373 +.field private uid:I
18375 +.field private wifiInfoSetting:B
18378 +# direct methods
18379 +.method static constructor <clinit>()V
18380 + .registers 3
18382 + const/16 v0, 0x10
18384 + new-array v0, v0, [Ljava/lang/String;
18386 + const/4 v1, 0x0
18388 + const-string v2, "0"
18390 + aput-object v2, v0, v1
18392 + const/4 v1, 0x1
18394 + const-string v2, "1"
18396 + aput-object v2, v0, v1
18398 + const/4 v1, 0x2
18400 + const-string v2, "2"
18402 + aput-object v2, v0, v1
18404 + const/4 v1, 0x3
18406 + const-string v2, "3"
18408 + aput-object v2, v0, v1
18410 + const/4 v1, 0x4
18412 + const-string v2, "4"
18414 + aput-object v2, v0, v1
18416 + const/4 v1, 0x5
18418 + const-string v2, "5"
18420 + aput-object v2, v0, v1
18422 + const/4 v1, 0x6
18424 + const-string v2, "6"
18426 + aput-object v2, v0, v1
18428 + const/4 v1, 0x7
18430 + const-string v2, "7"
18432 + aput-object v2, v0, v1
18434 + const/16 v1, 0x8
18436 + const-string v2, "8"
18438 + aput-object v2, v0, v1
18440 + const/16 v1, 0x9
18442 + const-string v2, "9"
18444 + aput-object v2, v0, v1
18446 + const/16 v1, 0xa
18448 + const-string v2, "a"
18450 + aput-object v2, v0, v1
18452 + const/16 v1, 0xb
18454 + const-string v2, "b"
18456 + aput-object v2, v0, v1
18458 + const/16 v1, 0xc
18460 + const-string v2, "c"
18462 + aput-object v2, v0, v1
18464 + const/16 v1, 0xd
18466 + const-string v2, "d"
18468 + aput-object v2, v0, v1
18470 + const/16 v1, 0xe
18472 + const-string v2, "e"
18474 + aput-object v2, v0, v1
18476 + const/16 v1, 0xf
18478 + const-string v2, "f"
18480 + aput-object v2, v0, v1
18482 + sput-object v0, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
18484 + new-instance v0, Landroid/privacy/PrivacySettings$1;
18486 + invoke-direct {v0}, Landroid/privacy/PrivacySettings$1;-><init>()V
18488 + sput-object v0, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
18490 + return-void
18491 +.end method
18493 +.method public constructor <init>(Landroid/os/Parcel;)V
18494 + .registers 4
18496 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
18498 + invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
18500 + move-result v0
18502 + const/4 v1, -0x1
18504 + if-ne v0, v1, :cond_122
18506 + const/4 v1, 0x0
18508 + :goto_b
18509 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
18511 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18513 + move-result-object v1
18515 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
18517 + invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
18519 + move-result v1
18521 + iput v1, p0, Landroid/privacy/PrivacySettings;->uid:I
18523 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18525 + move-result v1
18527 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
18529 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18531 + move-result-object v1
18533 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
18535 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18537 + move-result v1
18539 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
18541 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18543 + move-result-object v1
18545 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
18547 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18549 + move-result v1
18551 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
18553 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18555 + move-result-object v1
18557 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
18559 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18561 + move-result-object v1
18563 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
18565 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18567 + move-result v1
18569 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
18571 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18573 + move-result-object v1
18575 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
18577 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18579 + move-result-object v1
18581 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
18583 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18585 + move-result v1
18587 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
18589 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18591 + move-result v1
18593 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
18595 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18597 + move-result v1
18599 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
18601 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18603 + move-result-object v1
18605 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
18607 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18609 + move-result v1
18611 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
18613 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18615 + move-result-object v1
18617 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
18619 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18621 + move-result v1
18623 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
18625 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18627 + move-result v1
18629 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
18631 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18633 + move-result v1
18635 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
18637 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18639 + move-result v1
18641 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
18643 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18645 + move-result v1
18647 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
18649 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18651 + move-result v1
18653 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
18655 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18657 + move-result v1
18659 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
18661 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18663 + move-result v1
18665 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
18667 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18669 + move-result v1
18671 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
18673 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18675 + move-result v1
18677 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
18679 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18681 + move-result v1
18683 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
18685 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18687 + move-result v1
18689 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
18691 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18693 + move-result v1
18695 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
18697 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18699 + move-result v1
18701 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
18703 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18705 + move-result v1
18707 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
18709 + invoke-virtual {p1}, Landroid/os/Parcel;->createIntArray()[I
18711 + move-result-object v1
18713 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
18715 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18717 + move-result v1
18719 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
18721 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18723 + move-result v1
18725 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
18727 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18729 + move-result v1
18731 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
18733 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18735 + move-result v1
18737 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
18739 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18741 + move-result v1
18743 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
18745 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18747 + move-result v1
18749 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
18751 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18753 + move-result-object v1
18755 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
18757 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18759 + move-result v1
18761 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
18763 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18765 + move-result v1
18767 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
18769 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18771 + move-result v1
18773 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
18775 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18777 + move-result v1
18779 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
18781 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18783 + move-result v1
18785 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
18787 + return-void
18789 + :cond_122
18790 + invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
18792 + move-result-object v1
18794 + goto/16 :goto_b
18795 +.end method
18797 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;I)V
18798 + .registers 7
18800 + const/4 v2, 0x1
18802 + const/4 v1, 0x0
18804 + const/4 v0, 0x0
18806 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
18808 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
18810 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
18812 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
18814 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
18816 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
18818 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
18820 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
18822 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
18824 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
18826 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
18828 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
18830 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
18832 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
18834 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
18836 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
18838 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
18840 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
18842 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
18844 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
18846 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
18848 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
18850 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
18852 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
18854 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
18856 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
18858 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
18860 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
18862 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
18864 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
18866 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
18868 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
18870 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
18872 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
18874 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
18876 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
18878 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
18880 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
18882 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
18884 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
18886 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
18888 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
18890 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
18892 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
18894 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
18896 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
18898 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
18900 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
18902 + return-void
18903 +.end method
18905 +.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
18906 + .registers 50
18908 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
18910 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
18912 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
18914 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
18916 + iput-byte p4, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
18918 + iput-object p5, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
18920 + iput-byte p6, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
18922 + iput-object p7, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
18924 + iput-byte p8, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
18926 + iput-object p9, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
18928 + iput-object p10, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
18930 + iput-byte p11, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
18932 + iput-object p12, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
18934 + iput-object p13, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
18936 + iput-byte p14, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
18938 + move/from16 v0, p15
18940 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
18942 + move/from16 v0, p16
18944 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
18946 + move-object/from16 v0, p17
18948 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
18950 + move/from16 v0, p18
18952 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
18954 + move-object/from16 v0, p19
18956 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
18958 + move/from16 v0, p20
18960 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
18962 + move/from16 v0, p21
18964 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
18966 + move/from16 v0, p22
18968 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
18970 + move/from16 v0, p23
18972 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
18974 + move/from16 v0, p24
18976 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
18978 + move/from16 v0, p25
18980 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
18982 + move/from16 v0, p26
18984 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
18986 + move/from16 v0, p27
18988 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
18990 + move/from16 v0, p28
18992 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
18994 + move/from16 v0, p29
18996 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
18998 + move/from16 v0, p30
19000 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19002 + move/from16 v0, p34
19004 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19006 + move/from16 v0, p35
19008 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19010 + move/from16 v0, p32
19012 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19014 + move/from16 v0, p33
19016 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19018 + move-object/from16 v0, p36
19020 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19022 + move/from16 v0, p37
19024 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19026 + move/from16 v0, p38
19028 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19030 + move/from16 v0, p39
19032 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19034 + move/from16 v0, p40
19036 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19038 + move/from16 v0, p41
19040 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19042 + move/from16 v0, p42
19044 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19046 + move-object/from16 v0, p43
19048 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19050 + move/from16 v0, p44
19052 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19054 + move/from16 v0, p45
19056 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19058 + move/from16 v0, p46
19060 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19062 + move/from16 v0, p47
19064 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19066 + move/from16 v0, p48
19068 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19070 + return-void
19071 +.end method
19073 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;IZ)V
19074 + .registers 9
19076 + const/4 v3, 0x0
19078 + const/4 v2, 0x3
19080 + const/4 v1, 0x0
19082 + const/4 v0, 0x1
19084 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
19086 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
19088 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
19090 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
19092 + if-eqz p4, :cond_68
19094 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19096 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19098 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19100 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19102 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19104 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19106 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19108 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19110 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19112 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19114 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19116 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19118 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19120 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19122 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19124 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19126 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19128 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19130 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19132 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19134 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19136 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19138 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19140 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19142 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19144 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19146 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19148 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19150 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19152 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19154 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19156 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19158 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19160 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19162 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19164 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19166 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19168 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19170 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19172 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19174 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19176 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19178 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19180 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19182 + :goto_67
19183 + return-void
19185 + :cond_68
19186 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19188 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19190 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19192 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19194 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19196 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19198 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19200 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19202 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19204 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19206 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19208 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19210 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19212 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19214 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19216 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19218 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19220 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19222 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19224 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19226 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19228 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19230 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19232 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19234 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19236 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19238 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19240 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19242 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19244 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19246 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19248 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19250 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19252 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19254 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19256 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19258 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19260 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19262 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19264 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19266 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19268 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19270 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19272 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19274 + goto :goto_67
19275 +.end method
19277 +.method private getRandomLat()Ljava/lang/String;
19278 + .registers 10
19280 + const-wide v7, 0x4056800000000000L
19282 + invoke-static {}, Ljava/lang/Math;->random()D
19284 + move-result-wide v3
19286 + const-wide v5, 0x4066800000000000L
19288 + mul-double v0, v3, v5
19290 + cmpl-double v3, v0, v7
19292 + if-lez v3, :cond_35
19294 + new-instance v2, Ljava/math/BigDecimal;
19296 + sub-double v3, v0, v7
19298 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19300 + :goto_1b
19301 + new-instance v3, Ljava/lang/StringBuilder;
19303 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19305 + const/4 v4, 0x6
19307 + const/4 v5, 0x4
19309 + invoke-virtual {v2, v4, v5}, Ljava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
19311 + move-result-object v4
19313 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
19315 + move-result-object v3
19317 + const-string v4, ""
19319 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19321 + move-result-object v3
19323 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19325 + move-result-object v3
19327 + return-object v3
19329 + :cond_35
19330 + new-instance v2, Ljava/math/BigDecimal;
19332 + neg-double v3, v0
19334 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19336 + goto :goto_1b
19337 +.end method
19339 +.method private getRandomLon()Ljava/lang/String;
19340 + .registers 10
19342 + const-wide v7, 0x4066800000000000L
19344 + invoke-static {}, Ljava/lang/Math;->random()D
19346 + move-result-wide v3
19348 + const-wide v5, 0x4076800000000000L
19350 + mul-double v0, v3, v5
19352 + cmpl-double v3, v0, v7
19354 + if-lez v3, :cond_35
19356 + new-instance v2, Ljava/math/BigDecimal;
19358 + sub-double v3, v0, v7
19360 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19362 + :goto_1b
19363 + new-instance v3, Ljava/lang/StringBuilder;
19365 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19367 + const/4 v4, 0x6
19369 + const/4 v5, 0x4
19371 + invoke-virtual {v2, v4, v5}, Ljava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
19373 + move-result-object v4
19375 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
19377 + move-result-object v3
19379 + const-string v4, ""
19381 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19383 + move-result-object v3
19385 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19387 + move-result-object v3
19389 + return-object v3
19391 + :cond_35
19392 + new-instance v2, Ljava/math/BigDecimal;
19394 + neg-double v3, v0
19396 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19398 + goto :goto_1b
19399 +.end method
19402 +# virtual methods
19403 +.method public describeContents()I
19404 + .registers 2
19406 + const/4 v0, 0x0
19408 + return v0
19409 +.end method
19411 +.method public getAccountsAuthTokensSetting()B
19412 + .registers 2
19414 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19416 + return v0
19417 +.end method
19419 +.method public getAccountsSetting()B
19420 + .registers 2
19422 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19424 + return v0
19425 +.end method
19427 +.method public getAddOnManagementSetting()B
19428 + .registers 2
19430 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19432 + return v0
19433 +.end method
19435 +.method public getAllowedContacts()[I
19436 + .registers 2
19438 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19440 + return-object v0
19441 +.end method
19443 +.method public getAndroidID()Ljava/lang/String;
19444 + .registers 6
19446 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19448 + const/4 v4, 0x1
19450 + if-ne v3, v4, :cond_9
19452 + const-string/jumbo v3, "q4a5w896ay21dr46"
19454 + :goto_8
19455 + return-object v3
19457 + :cond_9
19458 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19460 + const/4 v4, 0x3
19462 + if-ne v3, v4, :cond_36
19464 + new-instance v2, Ljava/util/Random;
19466 + invoke-direct {v2}, Ljava/util/Random;-><init>()V
19468 + new-instance v1, Ljava/lang/StringBuilder;
19470 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
19472 + const/4 v0, 0x0
19474 + :goto_19
19475 + sget-object v3, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19477 + array-length v3, v3
19479 + if-ge v0, v3, :cond_31
19481 + sget-object v3, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19483 + sget-object v4, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19485 + array-length v4, v4
19487 + add-int/lit8 v4, v4, -0x1
19489 + invoke-virtual {v2, v4}, Ljava/util/Random;->nextInt(I)I
19491 + move-result v4
19493 + aget-object v3, v3, v4
19495 + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19497 + add-int/lit8 v0, v0, 0x1
19499 + goto :goto_19
19501 + :cond_31
19502 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19504 + move-result-object v3
19506 + goto :goto_8
19508 + :cond_36
19509 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19511 + goto :goto_8
19512 +.end method
19514 +.method public getAndroidIdSetting()B
19515 + .registers 2
19517 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19519 + return v0
19520 +.end method
19522 +.method public getBookmarksSetting()B
19523 + .registers 2
19525 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19527 + return v0
19528 +.end method
19530 +.method public getCalendarSetting()B
19531 + .registers 2
19533 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19535 + return v0
19536 +.end method
19538 +.method public getCallLogSetting()B
19539 + .registers 2
19541 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19543 + return v0
19544 +.end method
19546 +.method public getCameraSetting()B
19547 + .registers 2
19549 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19551 + return v0
19552 +.end method
19554 +.method public getContactsSetting()B
19555 + .registers 2
19557 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19559 + return v0
19560 +.end method
19562 +.method public getDeviceId()Ljava/lang/String;
19563 + .registers 9
19565 + const/4 v7, 0x0
19567 + const/16 v6, 0xf
19569 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19571 + const/4 v4, 0x1
19573 + if-ne v3, v4, :cond_b
19575 + const-string v3, ""
19577 + :goto_a
19578 + return-object v3
19580 + :cond_b
19581 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19583 + const/4 v4, 0x3
19585 + if-ne v3, v4, :cond_62
19587 + new-instance v1, Ljava/util/Random;
19589 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
19591 + new-instance v3, Ljava/lang/StringBuilder;
19593 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19595 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
19597 + move-result-wide v4
19599 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
19601 + move-result-wide v4
19603 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
19605 + move-result-object v3
19607 + const-string v4, ""
19609 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19611 + move-result-object v3
19613 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19615 + move-result-object v2
19617 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19619 + move-result v3
19621 + if-le v3, v6, :cond_3b
19623 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19625 + move-result-object v3
19627 + goto :goto_a
19629 + :cond_3b
19630 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19632 + move-result v0
19634 + :goto_3f
19635 + const/16 v3, 0x10
19637 + if-gt v0, v3, :cond_5d
19639 + new-instance v3, Ljava/lang/StringBuilder;
19641 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19643 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19645 + move-result-object v3
19647 + const/16 v4, 0x9
19649 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
19651 + move-result v4
19653 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
19655 + move-result-object v3
19657 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19659 + move-result-object v2
19661 + add-int/lit8 v0, v0, 0x1
19663 + goto :goto_3f
19665 + :cond_5d
19666 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19668 + move-result-object v3
19670 + goto :goto_a
19672 + :cond_62
19673 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19675 + goto :goto_a
19676 +.end method
19678 +.method public getDeviceIdSetting()B
19679 + .registers 2
19681 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19683 + return v0
19684 +.end method
19686 +.method public getForceOnlineState()B
19687 + .registers 2
19689 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19691 + return v0
19692 +.end method
19694 +.method public getIccAccessSetting()B
19695 + .registers 2
19697 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19699 + return v0
19700 +.end method
19702 +.method public getIncomingCallsSetting()B
19703 + .registers 2
19705 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19707 + return v0
19708 +.end method
19710 +.method public getIntentBootCompletedSetting()B
19711 + .registers 2
19713 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19715 + return v0
19716 +.end method
19718 +.method public getIpTableProtectSetting()B
19719 + .registers 2
19721 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19723 + return v0
19724 +.end method
19726 +.method public getLine1Number()Ljava/lang/String;
19727 + .registers 9
19729 + const/4 v7, 0x0
19731 + const/16 v6, 0xd
19733 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19735 + const/4 v4, 0x1
19737 + if-ne v3, v4, :cond_b
19739 + const-string v3, ""
19741 + :goto_a
19742 + return-object v3
19744 + :cond_b
19745 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19747 + const/4 v4, 0x3
19749 + if-ne v3, v4, :cond_68
19751 + new-instance v1, Ljava/util/Random;
19753 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
19755 + new-instance v3, Ljava/lang/StringBuilder;
19757 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19759 + const-string v4, "+"
19761 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19763 + move-result-object v3
19765 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
19767 + move-result-wide v4
19769 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
19771 + move-result-wide v4
19773 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
19775 + move-result-object v3
19777 + const-string v4, ""
19779 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19781 + move-result-object v3
19783 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19785 + move-result-object v2
19787 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19789 + move-result v3
19791 + if-le v3, v6, :cond_41
19793 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19795 + move-result-object v3
19797 + goto :goto_a
19799 + :cond_41
19800 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19802 + move-result v0
19804 + :goto_45
19805 + const/16 v3, 0xe
19807 + if-gt v0, v3, :cond_63
19809 + new-instance v3, Ljava/lang/StringBuilder;
19811 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19813 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19815 + move-result-object v3
19817 + const/16 v4, 0x9
19819 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
19821 + move-result v4
19823 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
19825 + move-result-object v3
19827 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19829 + move-result-object v2
19831 + add-int/lit8 v0, v0, 0x1
19833 + goto :goto_45
19835 + :cond_63
19836 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19838 + move-result-object v3
19840 + goto :goto_a
19842 + :cond_68
19843 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19845 + goto :goto_a
19846 +.end method
19848 +.method public getLine1NumberSetting()B
19849 + .registers 2
19851 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19853 + return v0
19854 +.end method
19856 +.method public getLocationGpsLat()Ljava/lang/String;
19857 + .registers 3
19859 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19861 + const/4 v1, 0x1
19863 + if-ne v0, v1, :cond_8
19865 + const-string v0, ""
19867 + :goto_7
19868 + return-object v0
19870 + :cond_8
19871 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19873 + const/4 v1, 0x3
19875 + if-ne v0, v1, :cond_12
19877 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLat()Ljava/lang/String;
19879 + move-result-object v0
19881 + goto :goto_7
19883 + :cond_12
19884 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19886 + goto :goto_7
19887 +.end method
19889 +.method public getLocationGpsLon()Ljava/lang/String;
19890 + .registers 3
19892 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19894 + const/4 v1, 0x1
19896 + if-ne v0, v1, :cond_8
19898 + const-string v0, ""
19900 + :goto_7
19901 + return-object v0
19903 + :cond_8
19904 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19906 + const/4 v1, 0x3
19908 + if-ne v0, v1, :cond_12
19910 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLon()Ljava/lang/String;
19912 + move-result-object v0
19914 + goto :goto_7
19916 + :cond_12
19917 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19919 + goto :goto_7
19920 +.end method
19922 +.method public getLocationGpsSetting()B
19923 + .registers 2
19925 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19927 + return v0
19928 +.end method
19930 +.method public getLocationNetworkLat()Ljava/lang/String;
19931 + .registers 3
19933 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19935 + const/4 v1, 0x1
19937 + if-ne v0, v1, :cond_8
19939 + const-string v0, ""
19941 + :goto_7
19942 + return-object v0
19944 + :cond_8
19945 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19947 + const/4 v1, 0x3
19949 + if-ne v0, v1, :cond_12
19951 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLat()Ljava/lang/String;
19953 + move-result-object v0
19955 + goto :goto_7
19957 + :cond_12
19958 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19960 + goto :goto_7
19961 +.end method
19963 +.method public getLocationNetworkLon()Ljava/lang/String;
19964 + .registers 3
19966 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19968 + const/4 v1, 0x1
19970 + if-ne v0, v1, :cond_8
19972 + const-string v0, ""
19974 + :goto_7
19975 + return-object v0
19977 + :cond_8
19978 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19980 + const/4 v1, 0x3
19982 + if-ne v0, v1, :cond_12
19984 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLon()Ljava/lang/String;
19986 + move-result-object v0
19988 + goto :goto_7
19990 + :cond_12
19991 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19993 + goto :goto_7
19994 +.end method
19996 +.method public getLocationNetworkSetting()B
19997 + .registers 2
19999 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20001 + return v0
20002 +.end method
20004 +.method public getMmsSetting()B
20005 + .registers 2
20007 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
20009 + return v0
20010 +.end method
20012 +.method public getNetworkInfoSetting()B
20013 + .registers 2
20015 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
20017 + return v0
20018 +.end method
20020 +.method public getNotificationSetting()B
20021 + .registers 2
20023 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
20025 + return v0
20026 +.end method
20028 +.method public getOutgoingCallsSetting()B
20029 + .registers 2
20031 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
20033 + return v0
20034 +.end method
20036 +.method public getPackageName()Ljava/lang/String;
20037 + .registers 2
20039 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
20041 + return-object v0
20042 +.end method
20044 +.method public getPhoneCallSetting()B
20045 + .registers 2
20047 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
20049 + return v0
20050 +.end method
20052 +.method public getRecordAudioSetting()B
20053 + .registers 2
20055 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
20057 + return v0
20058 +.end method
20060 +.method public getSendMmsSetting()B
20061 + .registers 2
20063 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
20065 + return v0
20066 +.end method
20068 +.method public getSimInfoSetting()B
20069 + .registers 2
20071 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
20073 + return v0
20074 +.end method
20076 +.method public getSimSerialNumber()Ljava/lang/String;
20077 + .registers 5
20079 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20081 + const/4 v2, 0x1
20083 + if-ne v1, v2, :cond_8
20085 + const-string v1, ""
20087 + :goto_7
20088 + return-object v1
20090 + :cond_8
20091 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20093 + const/4 v2, 0x3
20095 + if-ne v1, v2, :cond_2e
20097 + new-instance v0, Ljava/util/Random;
20099 + invoke-direct {v0}, Ljava/util/Random;-><init>()V
20101 + new-instance v1, Ljava/lang/StringBuilder;
20103 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
20105 + invoke-virtual {v0}, Ljava/util/Random;->nextLong()J
20107 + move-result-wide v2
20109 + invoke-static {v2, v3}, Ljava/lang/Math;->abs(J)J
20111 + move-result-wide v2
20113 + invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20115 + move-result-object v1
20117 + const-string v2, ""
20119 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20121 + move-result-object v1
20123 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20125 + move-result-object v1
20127 + goto :goto_7
20129 + :cond_2e
20130 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
20132 + goto :goto_7
20133 +.end method
20135 +.method public getSimSerialNumberSetting()B
20136 + .registers 2
20138 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20140 + return v0
20141 +.end method
20143 +.method public getSmsSendSetting()B
20144 + .registers 2
20146 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
20148 + return v0
20149 +.end method
20151 +.method public getSmsSetting()B
20152 + .registers 2
20154 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
20156 + return v0
20157 +.end method
20159 +.method public getSubscriberId()Ljava/lang/String;
20160 + .registers 9
20162 + const/4 v7, 0x0
20164 + const/16 v6, 0xf
20166 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20168 + const/4 v4, 0x1
20170 + if-ne v3, v4, :cond_b
20172 + const-string v3, ""
20174 + :goto_a
20175 + return-object v3
20177 + :cond_b
20178 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20180 + const/4 v4, 0x3
20182 + if-ne v3, v4, :cond_62
20184 + new-instance v1, Ljava/util/Random;
20186 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
20188 + new-instance v3, Ljava/lang/StringBuilder;
20190 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20192 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
20194 + move-result-wide v4
20196 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
20198 + move-result-wide v4
20200 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20202 + move-result-object v3
20204 + const-string v4, ""
20206 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20208 + move-result-object v3
20210 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20212 + move-result-object v2
20214 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20216 + move-result v3
20218 + if-le v3, v6, :cond_3b
20220 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20222 + move-result-object v3
20224 + goto :goto_a
20226 + :cond_3b
20227 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20229 + move-result v0
20231 + :goto_3f
20232 + const/16 v3, 0x10
20234 + if-gt v0, v3, :cond_5d
20236 + new-instance v3, Ljava/lang/StringBuilder;
20238 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20240 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20242 + move-result-object v3
20244 + const/16 v4, 0x9
20246 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
20248 + move-result v4
20250 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20252 + move-result-object v3
20254 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20256 + move-result-object v2
20258 + add-int/lit8 v0, v0, 0x1
20260 + goto :goto_3f
20262 + :cond_5d
20263 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20265 + move-result-object v3
20267 + goto :goto_a
20269 + :cond_62
20270 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
20272 + goto :goto_a
20273 +.end method
20275 +.method public getSubscriberIdSetting()B
20276 + .registers 2
20278 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20280 + return v0
20281 +.end method
20283 +.method public getSwitchConnectivitySetting()B
20284 + .registers 2
20286 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
20288 + return v0
20289 +.end method
20291 +.method public getSwitchWifiStateSetting()B
20292 + .registers 2
20294 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
20296 + return v0
20297 +.end method
20299 +.method public getSystemLogsSetting()B
20300 + .registers 2
20302 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
20304 + return v0
20305 +.end method
20307 +.method public getUid()I
20308 + .registers 2
20310 + iget v0, p0, Landroid/privacy/PrivacySettings;->uid:I
20312 + return v0
20313 +.end method
20315 +.method public getWifiInfoSetting()B
20316 + .registers 2
20318 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
20320 + return v0
20321 +.end method
20323 +.method public get_id()Ljava/lang/Integer;
20324 + .registers 2
20326 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
20328 + return-object v0
20329 +.end method
20331 +.method public setAccountsAuthTokensSetting(B)V
20332 + .registers 2
20334 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
20336 + return-void
20337 +.end method
20339 +.method public setAccountsSetting(B)V
20340 + .registers 2
20342 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
20344 + return-void
20345 +.end method
20347 +.method public setAddOnManagementSetting(B)V
20348 + .registers 2
20350 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
20352 + return-void
20353 +.end method
20355 +.method public setAllowedContacts([I)V
20356 + .registers 2
20358 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
20360 + return-void
20361 +.end method
20363 +.method public setAndroidID(Ljava/lang/String;)V
20364 + .registers 2
20366 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
20368 + return-void
20369 +.end method
20371 +.method public setAndroidIdSetting(B)V
20372 + .registers 2
20374 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
20376 + return-void
20377 +.end method
20379 +.method public setBookmarksSetting(B)V
20380 + .registers 2
20382 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
20384 + return-void
20385 +.end method
20387 +.method public setCalendarSetting(B)V
20388 + .registers 2
20390 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
20392 + return-void
20393 +.end method
20395 +.method public setCallLogSetting(B)V
20396 + .registers 2
20398 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
20400 + return-void
20401 +.end method
20403 +.method public setCameraSetting(B)V
20404 + .registers 2
20406 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
20408 + return-void
20409 +.end method
20411 +.method public setContactsSetting(B)V
20412 + .registers 2
20414 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
20416 + return-void
20417 +.end method
20419 +.method public setDeviceId(Ljava/lang/String;)V
20420 + .registers 2
20422 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
20424 + return-void
20425 +.end method
20427 +.method public setDeviceIdSetting(B)V
20428 + .registers 2
20430 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
20432 + return-void
20433 +.end method
20435 +.method public setForceOnlineState(B)V
20436 + .registers 2
20438 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
20440 + return-void
20441 +.end method
20443 +.method public setIccAccessSetting(B)V
20444 + .registers 2
20446 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
20448 + return-void
20449 +.end method
20451 +.method public setIncomingCallsSetting(B)V
20452 + .registers 2
20454 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
20456 + return-void
20457 +.end method
20459 +.method public setIntentBootCompletedSetting(B)V
20460 + .registers 2
20462 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
20464 + return-void
20465 +.end method
20467 +.method public setIpTableProtectSetting(B)V
20468 + .registers 2
20470 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
20472 + return-void
20473 +.end method
20475 +.method public setLine1Number(Ljava/lang/String;)V
20476 + .registers 2
20478 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
20480 + return-void
20481 +.end method
20483 +.method public setLine1NumberSetting(B)V
20484 + .registers 2
20486 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
20488 + return-void
20489 +.end method
20491 +.method public setLocationGpsLat(Ljava/lang/String;)V
20492 + .registers 2
20494 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
20496 + return-void
20497 +.end method
20499 +.method public setLocationGpsLon(Ljava/lang/String;)V
20500 + .registers 2
20502 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
20504 + return-void
20505 +.end method
20507 +.method public setLocationGpsSetting(B)V
20508 + .registers 2
20510 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20512 + return-void
20513 +.end method
20515 +.method public setLocationNetworkLat(Ljava/lang/String;)V
20516 + .registers 2
20518 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20520 + return-void
20521 +.end method
20523 +.method public setLocationNetworkLon(Ljava/lang/String;)V
20524 + .registers 2
20526 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20528 + return-void
20529 +.end method
20531 +.method public setLocationNetworkSetting(B)V
20532 + .registers 2
20534 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20536 + return-void
20537 +.end method
20539 +.method public setMmsSetting(B)V
20540 + .registers 2
20542 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
20544 + return-void
20545 +.end method
20547 +.method public setNetworkInfoSetting(B)V
20548 + .registers 2
20550 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
20552 + return-void
20553 +.end method
20555 +.method public setNotificationSetting(B)V
20556 + .registers 2
20558 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
20560 + return-void
20561 +.end method
20563 +.method public setOutgoingCallsSetting(B)V
20564 + .registers 2
20566 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
20568 + return-void
20569 +.end method
20571 +.method public setPackageName(Ljava/lang/String;)V
20572 + .registers 2
20574 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
20576 + return-void
20577 +.end method
20579 +.method public setPhoneCallSetting(B)V
20580 + .registers 2
20582 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
20584 + return-void
20585 +.end method
20587 +.method public setRecordAudioSetting(B)V
20588 + .registers 2
20590 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
20592 + return-void
20593 +.end method
20595 +.method public setSendMmsSetting(B)V
20596 + .registers 2
20598 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
20600 + return-void
20601 +.end method
20603 +.method public setSimInfoSetting(B)V
20604 + .registers 2
20606 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
20608 + return-void
20609 +.end method
20611 +.method public setSimSerialNumber(Ljava/lang/String;)V
20612 + .registers 2
20614 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
20616 + return-void
20617 +.end method
20619 +.method public setSimSerialNumberSetting(B)V
20620 + .registers 2
20622 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20624 + return-void
20625 +.end method
20627 +.method public setSmsSendSetting(B)V
20628 + .registers 2
20630 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
20632 + return-void
20633 +.end method
20635 +.method public setSmsSetting(B)V
20636 + .registers 2
20638 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
20640 + return-void
20641 +.end method
20643 +.method public setSubscriberId(Ljava/lang/String;)V
20644 + .registers 2
20646 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
20648 + return-void
20649 +.end method
20651 +.method public setSubscriberIdSetting(B)V
20652 + .registers 2
20654 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20656 + return-void
20657 +.end method
20659 +.method public setSwitchConnectivitySetting(B)V
20660 + .registers 2
20662 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
20664 + return-void
20665 +.end method
20667 +.method public setSwitchWifiStateSetting(B)V
20668 + .registers 2
20670 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
20672 + return-void
20673 +.end method
20675 +.method public setSystemLogsSetting(B)V
20676 + .registers 2
20678 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
20680 + return-void
20681 +.end method
20683 +.method public setUid(I)V
20684 + .registers 2
20686 + iput p1, p0, Landroid/privacy/PrivacySettings;->uid:I
20688 + return-void
20689 +.end method
20691 +.method public setWifiInfoSetting(B)V
20692 + .registers 2
20694 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
20696 + return-void
20697 +.end method
20699 +.method public toString()Ljava/lang/String;
20700 + .registers 3
20702 + new-instance v0, Ljava/lang/StringBuilder;
20704 + invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
20706 + const-string v1, "PrivacySettings [_id="
20708 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20710 + move-result-object v0
20712 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
20714 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
20716 + move-result-object v0
20718 + const-string v1, ", accountsAuthTokensSetting="
20720 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20722 + move-result-object v0
20724 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
20726 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20728 + move-result-object v0
20730 + const-string v1, ", accountsSetting="
20732 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20734 + move-result-object v0
20736 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
20738 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20740 + move-result-object v0
20742 + const-string v1, ", bookmarksSetting="
20744 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20746 + move-result-object v0
20748 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
20750 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20752 + move-result-object v0
20754 + const-string v1, ", calendarSetting="
20756 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20758 + move-result-object v0
20760 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
20762 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20764 + move-result-object v0
20766 + const-string v1, ", callLogSetting="
20768 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20770 + move-result-object v0
20772 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
20774 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20776 + move-result-object v0
20778 + const-string v1, ", contactsSetting="
20780 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20782 + move-result-object v0
20784 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
20786 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20788 + move-result-object v0
20790 + const-string v1, ", deviceId="
20792 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20794 + move-result-object v0
20796 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
20798 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20800 + move-result-object v0
20802 + const-string v1, ", deviceIdSetting="
20804 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20806 + move-result-object v0
20808 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
20810 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20812 + move-result-object v0
20814 + const-string v1, ", incomingCallsSetting="
20816 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20818 + move-result-object v0
20820 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
20822 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20824 + move-result-object v0
20826 + const-string v1, ", intentBootCompletedSetting="
20828 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20830 + move-result-object v0
20832 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
20834 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20836 + move-result-object v0
20838 + const-string v1, ", line1Number="
20840 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20842 + move-result-object v0
20844 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
20846 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20848 + move-result-object v0
20850 + const-string v1, ", line1NumberSetting="
20852 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20854 + move-result-object v0
20856 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
20858 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20860 + move-result-object v0
20862 + const-string v1, ", locationGpsLat="
20864 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20866 + move-result-object v0
20868 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
20870 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20872 + move-result-object v0
20874 + const-string v1, ", locationGpsLon="
20876 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20878 + move-result-object v0
20880 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
20882 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20884 + move-result-object v0
20886 + const-string v1, ", locationGpsSetting="
20888 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20890 + move-result-object v0
20892 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20894 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20896 + move-result-object v0
20898 + const-string v1, ", locationNetworkLat="
20900 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20902 + move-result-object v0
20904 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20906 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20908 + move-result-object v0
20910 + const-string v1, ", locationNetworkLon="
20912 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20914 + move-result-object v0
20916 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20918 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20920 + move-result-object v0
20922 + const-string v1, ", locationNetworkSetting="
20924 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20926 + move-result-object v0
20928 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20930 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20932 + move-result-object v0
20934 + const-string v1, ", mmsSetting="
20936 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20938 + move-result-object v0
20940 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
20942 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20944 + move-result-object v0
20946 + const-string v1, ", networkInfoSetting="
20948 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20950 + move-result-object v0
20952 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
20954 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20956 + move-result-object v0
20958 + const-string v1, ", notificationSetting="
20960 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20962 + move-result-object v0
20964 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
20966 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20968 + move-result-object v0
20970 + const-string v1, ", outgoingCallsSetting="
20972 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20974 + move-result-object v0
20976 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
20978 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20980 + move-result-object v0
20982 + const-string v1, ", packageName="
20984 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20986 + move-result-object v0
20988 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
20990 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20992 + move-result-object v0
20994 + const-string v1, ", simInfoSetting="
20996 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20998 + move-result-object v0
21000 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
21002 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21004 + move-result-object v0
21006 + const-string v1, ", simSerialNumber="
21008 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21010 + move-result-object v0
21012 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
21014 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21016 + move-result-object v0
21018 + const-string v1, ", simSerialNumberSetting="
21020 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21022 + move-result-object v0
21024 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
21026 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21028 + move-result-object v0
21030 + const-string v1, ", smsSetting="
21032 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21034 + move-result-object v0
21036 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
21038 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21040 + move-result-object v0
21042 + const-string v1, ", subscriberId="
21044 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21046 + move-result-object v0
21048 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
21050 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21052 + move-result-object v0
21054 + const-string v1, ", subscriberIdSetting="
21056 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21058 + move-result-object v0
21060 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
21062 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21064 + move-result-object v0
21066 + const-string v1, ", systemLogsSetting="
21068 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21070 + move-result-object v0
21072 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
21074 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21076 + move-result-object v0
21078 + const-string v1, ", uid="
21080 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21082 + move-result-object v0
21084 + iget v1, p0, Landroid/privacy/PrivacySettings;->uid:I
21086 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21088 + move-result-object v0
21090 + const-string v1, ", phoneCallSetting="
21092 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21094 + move-result-object v0
21096 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
21098 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21100 + move-result-object v0
21102 + const-string v1, ", smsSendSetting="
21104 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21106 + move-result-object v0
21108 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
21110 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21112 + move-result-object v0
21114 + const-string v1, ", recordAudioSetting="
21116 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21118 + move-result-object v0
21120 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
21122 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21124 + move-result-object v0
21126 + const-string v1, ", cameraSetting="
21128 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21130 + move-result-object v0
21132 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
21134 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21136 + move-result-object v0
21138 + const-string v1, ", ipTableProtectSetting="
21140 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21142 + move-result-object v0
21144 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
21146 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21148 + move-result-object v0
21150 + const-string v1, ", iccAccessSetting="
21152 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21154 + move-result-object v0
21156 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
21158 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21160 + move-result-object v0
21162 + const-string v1, ", addOnManagementSetting="
21164 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21166 + move-result-object v0
21168 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
21170 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21172 + move-result-object v0
21174 + const-string v1, ", android ID="
21176 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21178 + move-result-object v0
21180 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
21182 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21184 + move-result-object v0
21186 + const-string v1, ", androidIdSetting="
21188 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21190 + move-result-object v0
21192 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
21194 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21196 + move-result-object v0
21198 + const-string v1, ", wifiInfoSetting="
21200 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21202 + move-result-object v0
21204 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
21206 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21208 + move-result-object v0
21210 + const-string v1, ", switchConnectivitySetting="
21212 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21214 + move-result-object v0
21216 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
21218 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21220 + move-result-object v0
21222 + const-string v1, ", sendMmsSetting="
21224 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21226 + move-result-object v0
21228 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
21230 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21232 + move-result-object v0
21234 + const-string v1, ", forceOnlineState="
21236 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21238 + move-result-object v0
21240 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
21242 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21244 + move-result-object v0
21246 + const-string v1, ", switchWifiStateSetting="
21248 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21250 + move-result-object v0
21252 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
21254 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21256 + move-result-object v0
21258 + const-string v1, "]"
21260 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21262 + move-result-object v0
21264 + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
21266 + move-result-object v0
21268 + return-object v0
21269 +.end method
21271 +.method public writeToParcel(Landroid/os/Parcel;I)V
21272 + .registers 4
21274 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
21276 + if-nez v0, :cond_ef
21278 + const/4 v0, -0x1
21280 + :goto_5
21281 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeInt(I)V
21283 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
21285 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21287 + iget v0, p0, Landroid/privacy/PrivacySettings;->uid:I
21289 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeInt(I)V
21291 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
21293 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21295 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
21297 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21299 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
21301 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21303 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
21305 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21307 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
21309 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21311 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
21313 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21315 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
21317 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21319 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
21321 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21323 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
21325 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21327 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
21329 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21331 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
21333 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21335 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
21337 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21339 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
21341 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21343 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
21345 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21347 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
21349 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21351 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
21353 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21355 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
21357 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21359 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
21361 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21363 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
21365 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21367 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
21369 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21371 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
21373 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21375 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
21377 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21379 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
21381 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21383 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
21385 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21387 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
21389 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21391 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
21393 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21395 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
21397 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21399 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
21401 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21403 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
21405 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21407 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
21409 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21411 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
21413 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21415 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
21417 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeIntArray([I)V
21419 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
21421 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21423 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
21425 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21427 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
21429 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21431 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
21433 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21435 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
21437 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21439 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
21441 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21443 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
21445 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21447 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
21449 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21451 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
21453 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21455 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
21457 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21459 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
21461 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21463 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
21465 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21467 + return-void
21469 + :cond_ef
21470 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
21472 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
21474 + move-result v0
21476 + goto/16 :goto_5
21477 +.end method
21478 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali opd-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali
21479 --- stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali 1969-12-31 18:00:00.000000000 -0600
21480 +++ opd-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali 2013-01-20 23:05:45.907697479 -0600
21481 @@ -0,0 +1,129 @@
21482 +.class Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
21483 +.super Ljava/lang/Object;
21484 +.source "PrivacyAccountManager.java"
21486 +# interfaces
21487 +.implements Landroid/accounts/AccountManagerFuture;
21490 +# annotations
21491 +.annotation system Ldalvik/annotation/EnclosingClass;
21492 + value = Landroid/privacy/surrogate/PrivacyAccountManager;
21493 +.end annotation
21495 +.annotation system Ldalvik/annotation/InnerClass;
21496 + accessFlags = 0x2
21497 + name = "PrivacyAccountManagerFuture"
21498 +.end annotation
21500 +.annotation system Ldalvik/annotation/Signature;
21501 + value = {
21502 + "<V:",
21503 + "Ljava/lang/Object;",
21504 + ">",
21505 + "Ljava/lang/Object;",
21506 + "Landroid/accounts/AccountManagerFuture",
21507 + "<TV;>;"
21509 +.end annotation
21512 +# instance fields
21513 +.field private result:Ljava/lang/Object;
21514 + .annotation system Ldalvik/annotation/Signature;
21515 + value = {
21516 + "TV;"
21518 + .end annotation
21519 +.end field
21521 +.field final synthetic this$0:Landroid/privacy/surrogate/PrivacyAccountManager;
21524 +# direct methods
21525 +.method public constructor <init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
21526 + .registers 3
21527 + .annotation system Ldalvik/annotation/Signature;
21528 + value = {
21529 + "(TV;)V"
21531 + .end annotation
21533 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->this$0:Landroid/privacy/surrogate/PrivacyAccountManager;
21535 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
21537 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21539 + return-void
21540 +.end method
21543 +# virtual methods
21544 +.method public cancel(Z)Z
21545 + .registers 3
21547 + const/4 v0, 0x0
21549 + return v0
21550 +.end method
21552 +.method public getResult()Ljava/lang/Object;
21553 + .registers 2
21554 + .annotation system Ldalvik/annotation/Signature;
21555 + value = {
21556 + "()TV;"
21558 + .end annotation
21560 + .annotation system Ldalvik/annotation/Throws;
21561 + value = {
21562 + Landroid/accounts/OperationCanceledException;,
21563 + Ljava/io/IOException;,
21564 + Landroid/accounts/AuthenticatorException;
21566 + .end annotation
21568 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21570 + return-object v0
21571 +.end method
21573 +.method public getResult(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
21574 + .registers 5
21575 + .annotation system Ldalvik/annotation/Signature;
21576 + value = {
21577 + "(J",
21578 + "Ljava/util/concurrent/TimeUnit;",
21579 + ")TV;"
21581 + .end annotation
21583 + .annotation system Ldalvik/annotation/Throws;
21584 + value = {
21585 + Landroid/accounts/OperationCanceledException;,
21586 + Ljava/io/IOException;,
21587 + Landroid/accounts/AuthenticatorException;
21589 + .end annotation
21591 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21593 + return-object v0
21594 +.end method
21596 +.method public isCancelled()Z
21597 + .registers 2
21599 + const/4 v0, 0x0
21601 + return v0
21602 +.end method
21604 +.method public isDone()Z
21605 + .registers 2
21607 + const/4 v0, 0x1
21609 + return v0
21610 +.end method
21611 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali
21612 --- stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali 1969-12-31 18:00:00.000000000 -0600
21613 +++ opd-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali 2013-01-20 23:05:45.907697479 -0600
21614 @@ -0,0 +1,701 @@
21615 +.class public final Landroid/privacy/surrogate/PrivacyAccountManager;
21616 +.super Landroid/accounts/AccountManager;
21617 +.source "PrivacyAccountManager.java"
21620 +# annotations
21621 +.annotation system Ldalvik/annotation/MemberClasses;
21622 + value = {
21623 + Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
21625 +.end annotation
21628 +# static fields
21629 +.field private static final TAG:Ljava/lang/String; = "PrivacyAccountManager"
21632 +# instance fields
21633 +.field private context:Landroid/content/Context;
21635 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
21638 +# direct methods
21639 +.method public constructor <init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
21640 + .registers 5
21642 + invoke-direct {p0, p1, p2}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
21644 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21646 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
21648 + const-string/jumbo v1, "privacy"
21650 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
21652 + move-result-object v1
21654 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
21656 + move-result-object v1
21658 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
21660 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21662 + return-void
21663 +.end method
21665 +.method public constructor <init>(Landroid/content/Context;Landroid/accounts/IAccountManager;Landroid/os/Handler;)V
21666 + .registers 6
21668 + invoke-direct {p0, p1, p2, p3}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;Landroid/os/Handler;)V
21670 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21672 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
21674 + const-string/jumbo v1, "privacy"
21676 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
21678 + move-result-object v1
21680 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
21682 + move-result-object v1
21684 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
21686 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21688 + return-void
21689 +.end method
21692 +# virtual methods
21693 +.method public blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;
21694 + .registers 12
21695 + .annotation system Ldalvik/annotation/Throws;
21696 + value = {
21697 + Landroid/accounts/OperationCanceledException;,
21698 + Ljava/io/IOException;,
21699 + Landroid/accounts/AuthenticatorException;
21701 + .end annotation
21703 + const/4 v5, 0x0
21705 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21707 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21709 + move-result-object v1
21711 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21713 + move-result v2
21715 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21717 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21719 + move-result-object v6
21721 + if-eqz v6, :cond_23
21723 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
21725 + move-result v0
21727 + if-eqz v0, :cond_23
21729 + const/4 v7, 0x0
21731 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21733 + const/4 v3, 0x1
21735 + const-string v4, "authTokens"
21737 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21739 + :goto_22
21740 + return-object v7
21742 + :cond_23
21743 + invoke-super {p0, p1, p2, p3}, Landroid/accounts/AccountManager;->blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;
21745 + move-result-object v7
21747 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21749 + const/4 v3, 0x0
21751 + const-string v4, "authTokens"
21753 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21755 + goto :goto_22
21756 +.end method
21758 +.method public getAccounts()[Landroid/accounts/Account;
21759 + .registers 10
21761 + const/4 v5, 0x0
21763 + const/4 v3, 0x0
21765 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21767 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21769 + move-result-object v1
21771 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21773 + move-result v2
21775 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21777 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21779 + move-result-object v6
21781 + if-eqz v6, :cond_27
21783 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
21785 + move-result v0
21787 + if-eqz v0, :cond_27
21789 + const-string v8, "[empty accounts list]"
21791 + new-array v7, v3, [Landroid/accounts/Account;
21793 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21795 + const/4 v3, 0x1
21797 + const-string v4, "accountsList"
21799 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21801 + :goto_26
21802 + return-object v7
21804 + :cond_27
21805 + const-string v8, "[real value]"
21807 + invoke-super {p0}, Landroid/accounts/AccountManager;->getAccounts()[Landroid/accounts/Account;
21809 + move-result-object v7
21811 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21813 + const-string v4, "accountsList"
21815 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21817 + goto :goto_26
21818 +.end method
21820 +.method public getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
21821 + .registers 11
21823 + const/4 v5, 0x0
21825 + const/4 v3, 0x0
21827 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21829 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21831 + move-result-object v1
21833 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21835 + move-result v2
21837 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21839 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21841 + move-result-object v6
21843 + if-eqz v6, :cond_27
21845 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
21847 + move-result v0
21849 + if-eqz v0, :cond_27
21851 + const-string v8, "[empty accounts list]"
21853 + new-array v7, v3, [Landroid/accounts/Account;
21855 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21857 + const/4 v3, 0x1
21859 + const-string v4, "accountsList"
21861 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21863 + :goto_26
21864 + return-object v7
21866 + :cond_27
21867 + const-string v8, "[real value]"
21869 + invoke-super {p0, p1}, Landroid/accounts/AccountManager;->getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
21871 + move-result-object v7
21873 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21875 + const-string v4, "accountsList"
21877 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21879 + goto :goto_26
21880 +.end method
21882 +.method public getAccountsByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
21883 + .registers 14
21884 + .annotation system Ldalvik/annotation/Signature;
21885 + value = {
21886 + "(",
21887 + "Ljava/lang/String;",
21888 + "[",
21889 + "Ljava/lang/String;",
21890 + "Landroid/accounts/AccountManagerCallback",
21891 + "<[",
21892 + "Landroid/accounts/Account;",
21893 + ">;",
21894 + "Landroid/os/Handler;",
21895 + ")",
21896 + "Landroid/accounts/AccountManagerFuture",
21897 + "<[",
21898 + "Landroid/accounts/Account;",
21899 + ">;"
21901 + .end annotation
21903 + const/4 v5, 0x0
21905 + const/4 v3, 0x0
21907 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21909 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21911 + move-result-object v1
21913 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21915 + move-result v2
21917 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21919 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21921 + move-result-object v6
21923 + if-eqz v6, :cond_2c
21925 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
21927 + move-result v0
21929 + if-eqz v0, :cond_2c
21931 + const-string v8, "[false]"
21933 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
21935 + new-array v0, v3, [Landroid/accounts/Account;
21937 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
21939 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21941 + const/4 v3, 0x1
21943 + const-string v4, "accountsList"
21945 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21947 + :goto_2b
21948 + return-object v7
21950 + :cond_2c
21951 + const-string v8, "[real value]"
21953 + 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;
21955 + move-result-object v7
21957 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21959 + const-string v4, "accountsList"
21961 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21963 + goto :goto_2b
21964 +.end method
21966 +.method public getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
21967 + .registers 16
21968 + .annotation system Ldalvik/annotation/Signature;
21969 + value = {
21970 + "(",
21971 + "Landroid/accounts/Account;",
21972 + "Ljava/lang/String;",
21973 + "Landroid/os/Bundle;",
21974 + "Landroid/app/Activity;",
21975 + "Landroid/accounts/AccountManagerCallback",
21976 + "<",
21977 + "Landroid/os/Bundle;",
21978 + ">;",
21979 + "Landroid/os/Handler;",
21980 + ")",
21981 + "Landroid/accounts/AccountManagerFuture",
21982 + "<",
21983 + "Landroid/os/Bundle;",
21984 + ">;"
21986 + .end annotation
21988 + const/4 v5, 0x0
21990 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21992 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21994 + move-result-object v1
21996 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21998 + move-result v2
22000 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22002 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22004 + move-result-object v6
22006 + if-eqz v6, :cond_2e
22008 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22010 + move-result v0
22012 + if-eqz v0, :cond_2e
22014 + const-string v8, "[empty]"
22016 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22018 + new-instance v0, Landroid/os/Bundle;
22020 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22022 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22024 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22026 + const/4 v3, 0x1
22028 + const-string v4, "authTokens"
22030 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22032 + :goto_2d
22033 + return-object v7
22035 + :cond_2e
22036 + const-string v8, "[real value]"
22038 + 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;
22040 + move-result-object v7
22042 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22044 + const/4 v3, 0x0
22046 + const-string v4, "authTokens"
22048 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22050 + goto :goto_2d
22051 +.end method
22053 +.method public getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22054 + .registers 15
22055 + .annotation system Ldalvik/annotation/Signature;
22056 + value = {
22057 + "(",
22058 + "Landroid/accounts/Account;",
22059 + "Ljava/lang/String;",
22060 + "Z",
22061 + "Landroid/accounts/AccountManagerCallback",
22062 + "<",
22063 + "Landroid/os/Bundle;",
22064 + ">;",
22065 + "Landroid/os/Handler;",
22066 + ")",
22067 + "Landroid/accounts/AccountManagerFuture",
22068 + "<",
22069 + "Landroid/os/Bundle;",
22070 + ">;"
22072 + .end annotation
22074 + const/4 v5, 0x0
22076 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22078 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22080 + move-result-object v1
22082 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22084 + move-result v2
22086 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22088 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22090 + move-result-object v6
22092 + if-eqz v6, :cond_2e
22094 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22096 + move-result v0
22098 + if-eqz v0, :cond_2e
22100 + const-string v8, "[empty]"
22102 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22104 + new-instance v0, Landroid/os/Bundle;
22106 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22108 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22110 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22112 + const/4 v3, 0x1
22114 + const-string v4, "authTokens"
22116 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22118 + :goto_2d
22119 + return-object v7
22121 + :cond_2e
22122 + const-string v8, "[real value]"
22124 + invoke-super/range {p0 .. p5}, Landroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22126 + move-result-object v7
22128 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22130 + const/4 v3, 0x0
22132 + const-string v4, "authTokens"
22134 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22136 + goto :goto_2d
22137 +.end method
22139 +.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;
22140 + .registers 18
22141 + .annotation system Ldalvik/annotation/Signature;
22142 + value = {
22143 + "(",
22144 + "Ljava/lang/String;",
22145 + "Ljava/lang/String;",
22146 + "[",
22147 + "Ljava/lang/String;",
22148 + "Landroid/app/Activity;",
22149 + "Landroid/os/Bundle;",
22150 + "Landroid/os/Bundle;",
22151 + "Landroid/accounts/AccountManagerCallback",
22152 + "<",
22153 + "Landroid/os/Bundle;",
22154 + ">;",
22155 + "Landroid/os/Handler;",
22156 + ")",
22157 + "Landroid/accounts/AccountManagerFuture",
22158 + "<",
22159 + "Landroid/os/Bundle;",
22160 + ">;"
22162 + .end annotation
22164 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22166 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22168 + move-result-object v1
22170 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22172 + move-result v2
22174 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22176 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22178 + move-result-object v6
22180 + if-eqz v6, :cond_2e
22182 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22184 + move-result v0
22186 + if-eqz v0, :cond_2e
22188 + const-string v8, "[empty]"
22190 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22192 + new-instance v0, Landroid/os/Bundle;
22194 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22196 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22198 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22200 + const/4 v3, 0x1
22202 + const-string v4, "authTokens"
22204 + const/4 v5, 0x0
22206 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22208 + :goto_2d
22209 + return-object v7
22211 + :cond_2e
22212 + const-string v8, "[real value]"
22214 + 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;
22216 + move-result-object v7
22218 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22220 + const/4 v3, 0x0
22222 + const-string v4, "authTokens"
22224 + const/4 v5, 0x0
22226 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22228 + goto :goto_2d
22229 +.end method
22231 +.method public hasFeatures(Landroid/accounts/Account;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22232 + .registers 14
22233 + .annotation system Ldalvik/annotation/Signature;
22234 + value = {
22235 + "(",
22236 + "Landroid/accounts/Account;",
22237 + "[",
22238 + "Ljava/lang/String;",
22239 + "Landroid/accounts/AccountManagerCallback",
22240 + "<",
22241 + "Ljava/lang/Boolean;",
22242 + ">;",
22243 + "Landroid/os/Handler;",
22244 + ")",
22245 + "Landroid/accounts/AccountManagerFuture",
22246 + "<",
22247 + "Ljava/lang/Boolean;",
22248 + ">;"
22250 + .end annotation
22252 + const/4 v5, 0x0
22254 + const/4 v3, 0x0
22256 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22258 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22260 + move-result-object v1
22262 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22264 + move-result v2
22266 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22268 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22270 + move-result-object v6
22272 + if-eqz v6, :cond_2e
22274 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
22276 + move-result v0
22278 + if-eqz v0, :cond_2e
22280 + const-string v8, "[false]"
22282 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22284 + invoke-static {v3}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
22286 + move-result-object v0
22288 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22290 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22292 + const/4 v3, 0x1
22294 + const-string v4, "accountsList"
22296 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22298 + :goto_2d
22299 + return-object v7
22301 + :cond_2e
22302 + const-string v8, "[real value]"
22304 + 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;
22306 + move-result-object v7
22308 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22310 + const-string v4, "accountsList"
22312 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22314 + goto :goto_2d
22315 +.end method
22316 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali opd-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali
22317 --- stock-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali 1969-12-31 18:00:00.000000000 -0600
22318 +++ opd-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali 2013-01-20 23:05:45.911697429 -0600
22319 @@ -0,0 +1,1223 @@
22320 +.class public final Landroid/privacy/surrogate/PrivacyActivityManagerService;
22321 +.super Ljava/lang/Object;
22322 +.source "PrivacyActivityManagerService.java"
22325 +# static fields
22326 +.field private static final DATA_SMS_RECEIVED_INTENT:Ljava/lang/String; = "android.intent.action.DATA_SMS_RECEIVED"
22328 +.field private static final SMS_RECEIVED_ACTION_INTENT:Ljava/lang/String; = "android.provider.Telephony.SMS_RECEIVED"
22330 +.field private static final TAG:Ljava/lang/String; = "PrivacyActivityManagerService"
22332 +.field private static final WAP_PUSH_RECEIVED_INTENT:Ljava/lang/String; = "android.provider.Telephony.WAP_PUSH_RECEIVED"
22334 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
22336 +.field private static tmpIn:Landroid/content/Intent;
22338 +.field private static tmpInHash:J
22340 +.field private static tmpInReceivers:I
22342 +.field private static tmpMms:Landroid/content/Intent;
22344 +.field private static tmpMmsHash:J
22346 +.field private static tmpMmsReceivers:I
22348 +.field private static tmpOut:Landroid/content/Intent;
22350 +.field private static tmpOutHash:J
22352 +.field private static tmpOutReceivers:I
22354 +.field private static tmpPackageAddedHash:J
22356 +.field private static tmpSms:Landroid/content/Intent;
22358 +.field private static tmpSmsHash:J
22360 +.field private static tmpSmsReceivers:I
22363 +# direct methods
22364 +.method static constructor <clinit>()V
22365 + .registers 3
22367 + const/4 v2, 0x0
22369 + const-wide/16 v0, 0x0
22371 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22373 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22375 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22377 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22379 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22381 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
22383 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
22385 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
22387 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
22389 + return-void
22390 +.end method
22392 +.method public constructor <init>()V
22393 + .registers 1
22395 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
22397 + return-void
22398 +.end method
22400 +.method public static enforcePrivacyPermission(Ljava/lang/String;ILandroid/content/Intent;Landroid/content/Context;I)V
22401 + .registers 29
22403 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22405 + if-nez v2, :cond_13
22407 + if-eqz p3, :cond_13
22409 + const-string/jumbo v2, "privacy"
22411 + move-object/from16 v0, p3
22413 + invoke-virtual {v0, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
22415 + move-result-object v2
22417 + check-cast v2, Landroid/privacy/PrivacySettingsManager;
22419 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22421 + :cond_13
22422 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22424 + if-nez v2, :cond_2c
22426 + if-nez p3, :cond_2c
22428 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
22430 + const/4 v3, 0x0
22432 + const-string/jumbo v4, "privacy"
22434 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
22436 + move-result-object v4
22438 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
22440 + move-result-object v4
22442 + invoke-direct {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
22444 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22446 + :cond_2c
22447 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
22449 + move-result-object v16
22451 + const-string v2, "android.intent.action.NEW_OUTGOING_CALL"
22453 + move-object/from16 v0, v16
22455 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22457 + move-result v2
22459 + if-eqz v2, :cond_cc
22461 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22463 + move-object/from16 v0, p0
22465 + move/from16 v1, p1
22467 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22469 + move-result-object v8
22471 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22473 + move-object/from16 v0, p2
22475 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22477 + move-result-object v23
22479 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22481 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22483 + move-result-wide v4
22485 + cmp-long v2, v2, v4
22487 + if-eqz v2, :cond_66
22489 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22491 + move-result-object v2
22493 + check-cast v2, Landroid/content/Intent;
22495 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22497 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22499 + move-result-wide v2
22501 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22503 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22505 + :cond_66
22506 + if-eqz v8, :cond_93
22508 + :try_start_68
22509 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getOutgoingCallsSetting()B
22511 + move-result v2
22513 + if-eqz v2, :cond_93
22515 + const-string v23, ""
22517 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22519 + move-object/from16 v0, p2
22521 + move-object/from16 v1, v23
22523 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22525 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22527 + const/4 v5, 0x1
22529 + const-string/jumbo v6, "outgoingCall"
22531 + const/4 v7, 0x0
22533 + move-object/from16 v3, p0
22535 + move/from16 v4, p1
22537 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22538 + :try_end_87
22539 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_87} :catch_bd
22541 + :cond_87
22542 + :goto_87
22543 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22545 + const/4 v3, 0x1
22547 + if-le v2, v3, :cond_c8
22549 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22551 + add-int/lit8 v2, v2, -0x1
22553 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22555 + :cond_92
22556 + :goto_92
22557 + return-void
22559 + :cond_93
22560 + :try_start_93
22561 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22563 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22565 + move-result-wide v4
22567 + cmp-long v2, v2, v4
22569 + if-nez v2, :cond_87
22571 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22573 + const-string v3, "android.intent.extra.PHONE_NUMBER"
22575 + invoke-virtual {v2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22577 + move-result-object v23
22579 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22581 + move-object/from16 v0, p2
22583 + move-object/from16 v1, v23
22585 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22587 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22589 + const/4 v5, 0x0
22591 + const-string/jumbo v6, "outgoingCall"
22593 + const/4 v7, 0x0
22595 + move-object/from16 v3, p0
22597 + move/from16 v4, p1
22599 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22600 + :try_end_bc
22601 + .catch Ljava/lang/Exception; {:try_start_93 .. :try_end_bc} :catch_bd
22603 + goto :goto_87
22605 + :catch_bd
22606 + move-exception v20
22608 + const-string v2, "PrivacyActivityManagerService"
22610 + const-string v3, "failed to enforce intent broadcast permission"
22612 + move-object/from16 v0, v20
22614 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
22616 + goto :goto_87
22618 + :cond_c8
22619 + const/4 v2, 0x0
22621 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22623 + goto :goto_92
22625 + :cond_cc
22626 + const-string v2, "android.intent.action.PHONE_STATE"
22628 + move-object/from16 v0, v16
22630 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22632 + move-result v2
22634 + if-eqz v2, :cond_170
22636 + const-string v2, "incoming_number"
22638 + move-object/from16 v0, p2
22640 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22642 + move-result-object v23
22644 + if-eqz v23, :cond_92
22646 + invoke-virtual/range {v23 .. v23}, Ljava/lang/String;->isEmpty()Z
22648 + move-result v2
22650 + if-nez v2, :cond_92
22652 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22654 + move-object/from16 v0, p0
22656 + move/from16 v1, p1
22658 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22660 + move-result-object v8
22662 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22664 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22666 + move-result-wide v4
22668 + cmp-long v2, v2, v4
22670 + if-eqz v2, :cond_10a
22672 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22674 + move-result-object v2
22676 + check-cast v2, Landroid/content/Intent;
22678 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22680 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22682 + move-result-wide v2
22684 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22686 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22688 + :cond_10a
22689 + if-eqz v8, :cond_137
22691 + :try_start_10c
22692 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
22694 + move-result v2
22696 + if-eqz v2, :cond_137
22698 + const-string v23, ""
22700 + const-string v2, "incoming_number"
22702 + move-object/from16 v0, p2
22704 + move-object/from16 v1, v23
22706 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22708 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22710 + const/4 v5, 0x1
22712 + const-string v6, "incomingCall"
22714 + const/4 v7, 0x0
22716 + move-object/from16 v3, p0
22718 + move/from16 v4, p1
22720 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22721 + :try_end_12a
22722 + .catch Ljava/lang/Exception; {:try_start_10c .. :try_end_12a} :catch_160
22724 + :cond_12a
22725 + :goto_12a
22726 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22728 + const/4 v3, 0x1
22730 + if-le v2, v3, :cond_16b
22732 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22734 + add-int/lit8 v2, v2, -0x1
22736 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22738 + goto/16 :goto_92
22740 + :cond_137
22741 + :try_start_137
22742 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22744 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22746 + move-result-wide v4
22748 + cmp-long v2, v2, v4
22750 + if-nez v2, :cond_12a
22752 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22754 + const-string v3, "incoming_number"
22756 + invoke-virtual {v2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22758 + move-result-object v23
22760 + const-string v2, "incoming_number"
22762 + move-object/from16 v0, p2
22764 + move-object/from16 v1, v23
22766 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22768 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22770 + const/4 v5, 0x0
22772 + const-string v6, "incomingCall"
22774 + const/4 v7, 0x0
22776 + move-object/from16 v3, p0
22778 + move/from16 v4, p1
22780 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22781 + :try_end_15f
22782 + .catch Ljava/lang/Exception; {:try_start_137 .. :try_end_15f} :catch_160
22784 + goto :goto_12a
22786 + :catch_160
22787 + move-exception v20
22789 + const-string v2, "PrivacyActivityManagerService"
22791 + const-string v3, "failed to enforce intent broadcast permission"
22793 + move-object/from16 v0, v20
22795 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
22797 + goto :goto_12a
22799 + :cond_16b
22800 + const/4 v2, 0x0
22802 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22804 + goto/16 :goto_92
22806 + :cond_170
22807 + const-string v2, "android.provider.Telephony.SMS_RECEIVED"
22809 + move-object/from16 v0, v16
22811 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22813 + move-result v2
22815 + if-eqz v2, :cond_253
22817 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22819 + move-object/from16 v0, p0
22821 + move/from16 v1, p1
22823 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22825 + move-result-object v8
22827 + const-string v23, "[real]"
22829 + const-string/jumbo v2, "pdus"
22831 + move-object/from16 v0, p2
22833 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
22835 + move-result-object v2
22837 + check-cast v2, [Ljava/lang/Object;
22839 + move-object/from16 v22, v2
22841 + check-cast v22, [Ljava/lang/Object;
22843 + if-eqz v22, :cond_1f8
22845 + const/4 v2, 0x0
22847 + aget-object v2, v22, v2
22849 + check-cast v2, [B
22851 + check-cast v2, [B
22853 + move-object/from16 v19, v2
22855 + :goto_1a0
22856 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22858 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22860 + move-result-wide v4
22862 + cmp-long v2, v2, v4
22864 + if-eqz v2, :cond_1ba
22866 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22868 + move-result-object v2
22870 + check-cast v2, Landroid/content/Intent;
22872 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
22874 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22876 + move-result-wide v2
22878 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22880 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
22882 + :cond_1ba
22883 + if-eqz v8, :cond_1fb
22885 + :try_start_1bc
22886 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
22888 + move-result v2
22890 + if-eqz v2, :cond_1fb
22892 + const-string v23, "[empty]"
22894 + const/4 v2, 0x1
22896 + new-array v0, v2, [Ljava/lang/Object;
22898 + move-object/from16 v21, v0
22900 + const/4 v2, 0x0
22902 + const/16 v3, 0x10
22904 + new-array v3, v3, [B
22906 + fill-array-data v3, :array_3da
22908 + aput-object v3, v21, v2
22910 + const-string/jumbo v2, "pdus"
22912 + move-object/from16 v0, p2
22914 + move-object/from16 v1, v21
22916 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
22918 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22920 + const/4 v5, 0x1
22922 + const-string/jumbo v6, "sms"
22924 + const/4 v7, 0x0
22926 + move-object/from16 v3, p0
22928 + move/from16 v4, p1
22930 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22931 + :try_end_1eb
22932 + .catch Ljava/lang/Exception; {:try_start_1bc .. :try_end_1eb} :catch_240
22934 + :cond_1eb
22935 + :goto_1eb
22936 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
22938 + const/4 v3, 0x1
22940 + if-le v2, v3, :cond_24e
22942 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
22944 + add-int/lit8 v2, v2, -0x1
22946 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
22948 + goto/16 :goto_92
22950 + :cond_1f8
22951 + const/16 v19, 0x0
22953 + goto :goto_1a0
22955 + :cond_1fb
22956 + :try_start_1fb
22957 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22959 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22961 + move-result-wide v4
22963 + cmp-long v2, v2, v4
22965 + if-nez v2, :cond_1eb
22967 + const-string/jumbo v2, "pdus"
22969 + sget-object v3, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
22971 + const-string/jumbo v4, "pdus"
22973 + invoke-virtual {v3, v4}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
22975 + move-result-object v3
22977 + move-object/from16 v0, p2
22979 + invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
22981 + const-string/jumbo v2, "pdus"
22983 + move-object/from16 v0, p2
22985 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
22987 + move-result-object v2
22989 + check-cast v2, [Ljava/lang/Object;
22991 + move-object v0, v2
22993 + check-cast v0, [Ljava/lang/Object;
22995 + move-object/from16 v22, v0
22997 + if-eqz v22, :cond_24b
22999 + const/4 v2, 0x0
23001 + aget-object v2, v22, v2
23003 + check-cast v2, [B
23005 + check-cast v2, [B
23007 + move-object/from16 v19, v2
23009 + :goto_231
23010 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23012 + const/4 v5, 0x0
23014 + const-string/jumbo v6, "sms"
23016 + const/4 v7, 0x0
23018 + move-object/from16 v3, p0
23020 + move/from16 v4, p1
23022 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23023 + :try_end_23f
23024 + .catch Ljava/lang/Exception; {:try_start_1fb .. :try_end_23f} :catch_240
23026 + goto :goto_1eb
23028 + :catch_240
23029 + move-exception v20
23031 + const-string v2, "PrivacyActivityManagerService"
23033 + const-string v3, "failed to enforce intent broadcast permission"
23035 + move-object/from16 v0, v20
23037 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23039 + goto :goto_1eb
23041 + :cond_24b
23042 + const/16 v19, 0x0
23044 + goto :goto_231
23046 + :cond_24e
23047 + const/4 v2, 0x0
23049 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
23051 + goto/16 :goto_92
23053 + :cond_253
23054 + const-string v2, "android.provider.Telephony.WAP_PUSH_RECEIVED"
23056 + move-object/from16 v0, v16
23058 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23060 + move-result v2
23062 + if-nez v2, :cond_267
23064 + const-string v2, "android.intent.action.DATA_SMS_RECEIVED"
23066 + move-object/from16 v0, v16
23068 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23070 + move-result v2
23072 + if-eqz v2, :cond_340
23074 + :cond_267
23075 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23077 + move-object/from16 v0, p0
23079 + move/from16 v1, p1
23081 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23083 + move-result-object v8
23085 + const-string v23, "[real]"
23087 + const-string/jumbo v2, "pdus"
23089 + move-object/from16 v0, p2
23091 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23093 + move-result-object v2
23095 + check-cast v2, [Ljava/lang/Object;
23097 + move-object/from16 v22, v2
23099 + check-cast v22, [Ljava/lang/Object;
23101 + if-eqz v22, :cond_2e5
23103 + const/4 v2, 0x0
23105 + aget-object v2, v22, v2
23107 + check-cast v2, [B
23109 + check-cast v2, [B
23111 + move-object/from16 v19, v2
23113 + :goto_28d
23114 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23116 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23118 + move-result-wide v4
23120 + cmp-long v2, v2, v4
23122 + if-eqz v2, :cond_2a7
23124 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
23126 + move-result-object v2
23128 + check-cast v2, Landroid/content/Intent;
23130 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23132 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23134 + move-result-wide v2
23136 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23138 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23140 + :cond_2a7
23141 + if-eqz v8, :cond_2e8
23143 + :try_start_2a9
23144 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
23146 + move-result v2
23148 + if-eqz v2, :cond_2e8
23150 + const-string v23, "[empty]"
23152 + const/4 v2, 0x1
23154 + new-array v0, v2, [Ljava/lang/Object;
23156 + move-object/from16 v21, v0
23158 + const/4 v2, 0x0
23160 + const/16 v3, 0x10
23162 + new-array v3, v3, [B
23164 + fill-array-data v3, :array_3e6
23166 + aput-object v3, v21, v2
23168 + const-string/jumbo v2, "pdus"
23170 + move-object/from16 v0, p2
23172 + move-object/from16 v1, v21
23174 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23176 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23178 + const/4 v5, 0x1
23180 + const-string/jumbo v6, "mms"
23182 + const/4 v7, 0x0
23184 + move-object/from16 v3, p0
23186 + move/from16 v4, p1
23188 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23189 + :try_end_2d8
23190 + .catch Ljava/lang/Exception; {:try_start_2a9 .. :try_end_2d8} :catch_32d
23192 + :cond_2d8
23193 + :goto_2d8
23194 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23196 + const/4 v3, 0x1
23198 + if-le v2, v3, :cond_33b
23200 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23202 + add-int/lit8 v2, v2, -0x1
23204 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23206 + goto/16 :goto_92
23208 + :cond_2e5
23209 + const/16 v19, 0x0
23211 + goto :goto_28d
23213 + :cond_2e8
23214 + :try_start_2e8
23215 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23217 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23219 + move-result-wide v4
23221 + cmp-long v2, v2, v4
23223 + if-nez v2, :cond_2d8
23225 + const-string/jumbo v2, "pdus"
23227 + sget-object v3, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23229 + const-string/jumbo v4, "pdus"
23231 + invoke-virtual {v3, v4}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23233 + move-result-object v3
23235 + move-object/from16 v0, p2
23237 + invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23239 + const-string/jumbo v2, "pdus"
23241 + move-object/from16 v0, p2
23243 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23245 + move-result-object v2
23247 + check-cast v2, [Ljava/lang/Object;
23249 + move-object v0, v2
23251 + check-cast v0, [Ljava/lang/Object;
23253 + move-object/from16 v22, v0
23255 + if-eqz v22, :cond_338
23257 + const/4 v2, 0x0
23259 + aget-object v2, v22, v2
23261 + check-cast v2, [B
23263 + check-cast v2, [B
23265 + move-object/from16 v19, v2
23267 + :goto_31e
23268 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23270 + const/4 v5, 0x0
23272 + const-string/jumbo v6, "mms"
23274 + const/4 v7, 0x0
23276 + move-object/from16 v3, p0
23278 + move/from16 v4, p1
23280 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23281 + :try_end_32c
23282 + .catch Ljava/lang/Exception; {:try_start_2e8 .. :try_end_32c} :catch_32d
23284 + goto :goto_2d8
23286 + :catch_32d
23287 + move-exception v20
23289 + const-string v2, "PrivacyActivityManagerService"
23291 + const-string v3, "failed to enforce intent broadcast permission"
23293 + move-object/from16 v0, v20
23295 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23297 + goto :goto_2d8
23299 + :cond_338
23300 + const/16 v19, 0x0
23302 + goto :goto_31e
23304 + :cond_33b
23305 + const/4 v2, 0x0
23307 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23309 + goto/16 :goto_92
23311 + :cond_340
23312 + const-string v2, "android.intent.action.BOOT_COMPLETED"
23314 + move-object/from16 v0, v16
23316 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23318 + move-result v2
23320 + if-eqz v2, :cond_38d
23322 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23324 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->setBootCompleted()V
23326 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23328 + move-object/from16 v0, p0
23330 + invoke-virtual {v2, v0}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
23332 + move-result-object v8
23334 + if-eqz v8, :cond_376
23336 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIntentBootCompletedSetting()B
23338 + move-result v2
23340 + if-eqz v2, :cond_376
23342 + const-string v2, "catchBootComplete"
23344 + move-object/from16 v0, p2
23346 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
23348 + sget-object v9, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23350 + const/4 v12, 0x1
23352 + const-string v13, "intentBootCompleted"
23354 + const/4 v14, 0x0
23356 + const/4 v15, 0x0
23358 + move-object/from16 v10, p0
23360 + move/from16 v11, p1
23362 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23364 + goto/16 :goto_92
23366 + :cond_376
23367 + const-string v2, "android.intent.action.BOOT_COMPLETED"
23369 + move-object/from16 v0, p2
23371 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
23373 + sget-object v9, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23375 + const/4 v12, 0x0
23377 + const-string v13, "intentBootCompleted"
23379 + const/4 v14, 0x0
23381 + const/4 v15, 0x0
23383 + move-object/from16 v10, p0
23385 + move/from16 v11, p1
23387 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23389 + goto/16 :goto_92
23391 + :cond_38d
23392 + const-string v2, "android.intent.action.PACKAGE_ADDED"
23394 + move-object/from16 v0, v16
23396 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23398 + move-result v2
23400 + if-eqz v2, :cond_92
23402 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
23404 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23406 + move-result-wide v4
23408 + cmp-long v2, v2, v4
23410 + if-eqz v2, :cond_92
23412 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23414 + move-result-wide v2
23416 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
23418 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getData()Landroid/net/Uri;
23420 + move-result-object v2
23422 + invoke-virtual {v2}, Landroid/net/Uri;->getSchemeSpecificPart()Ljava/lang/String;
23424 + move-result-object v17
23426 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle;
23428 + move-result-object v2
23430 + const-string v3, "android.intent.extra.UID"
23432 + invoke-virtual {v2, v3}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I
23434 + move-result v18
23436 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23438 + move-object/from16 v0, v17
23440 + move/from16 v1, v18
23442 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23444 + move-result-object v8
23446 + if-eqz v8, :cond_92
23448 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getUid()I
23450 + move-result v2
23452 + move/from16 v0, v18
23454 + if-eq v2, v0, :cond_92
23456 + move/from16 v0, v18
23458 + invoke-virtual {v8, v0}, Landroid/privacy/PrivacySettings;->setUid(I)V
23460 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23462 + invoke-virtual {v2, v8}, Landroid/privacy/PrivacySettingsManager;->saveSettings(Landroid/privacy/PrivacySettings;)Z
23464 + goto/16 :goto_92
23466 + nop
23468 + :array_3da
23469 + .array-data 0x1
23470 + 0x0t
23471 + 0x20t
23472 + 0x1t
23473 + 0x81t
23474 + 0xf0t
23475 + 0x0t
23476 + 0x0t
23477 + 0x11t
23478 + 0x90t
23479 + 0x1t
23480 + 0x30t
23481 + 0x22t
23482 + 0x22t
23483 + 0x80t
23484 + 0x1t
23485 + 0x20t
23486 + .end array-data
23488 + :array_3e6
23489 + .array-data 0x1
23490 + 0x0t
23491 + 0x20t
23492 + 0x1t
23493 + 0x81t
23494 + 0xf0t
23495 + 0x0t
23496 + 0x0t
23497 + 0x11t
23498 + 0x90t
23499 + 0x1t
23500 + 0x30t
23501 + 0x22t
23502 + 0x22t
23503 + 0x80t
23504 + 0x1t
23505 + 0x20t
23506 + .end array-data
23507 +.end method
23509 +.method private static hashCode(Landroid/content/Intent;)J
23510 + .registers 7
23512 + const-wide/16 v3, 0x0
23514 + const-string/jumbo v2, "privacy_hash"
23516 + invoke-virtual {p0, v2, v3, v4}, Landroid/content/Intent;->getLongExtra(Ljava/lang/String;J)J
23518 + move-result-wide v0
23520 + cmp-long v2, v0, v3
23522 + if-nez v2, :cond_1e
23524 + invoke-virtual {p0}, Landroid/content/Intent;->filterHashCode()I
23526 + move-result v2
23528 + int-to-long v2, v2
23530 + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
23532 + move-result-wide v4
23534 + add-long v0, v2, v4
23536 + const-string/jumbo v2, "privacy_hash"
23538 + invoke-virtual {p0, v2, v0, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent;
23540 + :cond_1e
23541 + return-wide v0
23542 +.end method
23543 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali
23544 --- stock-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali 1969-12-31 18:00:00.000000000 -0600
23545 +++ opd-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali 2013-01-20 23:05:45.911697429 -0600
23546 @@ -0,0 +1,1045 @@
23547 +.class public Landroid/privacy/surrogate/PrivacyConnectivityManager;
23548 +.super Landroid/net/ConnectivityManager;
23549 +.source "PrivacyConnectivityManager.java"
23552 +# static fields
23553 +.field private static final P_TAG:Ljava/lang/String; = "PrivacyConnectivityManager"
23556 +# instance fields
23557 +.field private context:Landroid/content/Context;
23559 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
23562 +# direct methods
23563 +.method public constructor <init>(Landroid/net/IConnectivityManager;Landroid/content/Context;)V
23564 + .registers 6
23566 + invoke-direct {p0, p1}, Landroid/net/ConnectivityManager;-><init>(Landroid/net/IConnectivityManager;)V
23568 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23570 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
23572 + const-string/jumbo v1, "privacy"
23574 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
23576 + move-result-object v1
23578 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
23580 + move-result-object v1
23582 + invoke-direct {v0, p2, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
23584 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23586 + const-string v0, "PrivacyConnectivityManager"
23588 + new-instance v1, Ljava/lang/StringBuilder;
23590 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
23592 + const-string/jumbo v2, "now in constructor for package: "
23594 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
23596 + move-result-object v1
23598 + invoke-virtual {p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23600 + move-result-object v2
23602 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
23604 + move-result-object v1
23606 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
23608 + move-result-object v1
23610 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
23612 + return-void
23613 +.end method
23616 +# virtual methods
23617 +.method public getActiveLinkProperties()Landroid/net/LinkProperties;
23618 + .registers 10
23620 + const/4 v2, -0x1
23622 + const/4 v5, 0x0
23624 + new-instance v7, Landroid/net/LinkProperties;
23626 + invoke-direct {v7}, Landroid/net/LinkProperties;-><init>()V
23628 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23630 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23632 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23634 + move-result-object v1
23636 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23638 + move-result v3
23640 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23642 + move-result-object v8
23644 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23646 + if-eqz v0, :cond_34
23648 + if-eqz v8, :cond_34
23650 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23652 + move-result v0
23654 + if-eqz v0, :cond_34
23656 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23658 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23660 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23662 + move-result-object v1
23664 + const/4 v3, 0x1
23666 + const-string/jumbo v4, "networkInfoCurrent"
23668 + move-object v6, v5
23670 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23672 + :goto_33
23673 + return-object v7
23675 + :cond_34
23676 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23678 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23680 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23682 + move-result-object v1
23684 + const/4 v3, 0x0
23686 + const-string/jumbo v4, "networkInfoCurrent"
23688 + move-object v6, v5
23690 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23692 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getActiveLinkProperties()Landroid/net/LinkProperties;
23694 + move-result-object v7
23696 + goto :goto_33
23697 +.end method
23699 +.method public getActiveNetworkInfo()Landroid/net/NetworkInfo;
23700 + .registers 10
23702 + const/4 v3, 0x1
23704 + const/4 v2, -0x1
23706 + const/4 v6, 0x0
23708 + const/4 v5, 0x0
23710 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23712 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23714 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23716 + move-result-object v1
23718 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23720 + move-result v4
23722 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23724 + move-result-object v8
23726 + new-instance v7, Landroid/net/NetworkInfo;
23728 + const-string v0, "MOBILE"
23730 + const-string v1, "UNKNOWN"
23732 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
23734 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23736 + if-eqz v0, :cond_31
23738 + if-eqz v8, :cond_31
23740 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
23742 + move-result v0
23744 + if-nez v0, :cond_31
23746 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
23748 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
23750 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
23752 + :cond_31
23753 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23755 + if-eqz v0, :cond_4d
23757 + if-eqz v8, :cond_4d
23759 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23761 + move-result v0
23763 + if-eqz v0, :cond_4d
23765 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23767 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23769 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23771 + move-result-object v1
23773 + const-string/jumbo v4, "networkInfoCurrent"
23775 + move-object v6, v5
23777 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23779 + :goto_4c
23780 + return-object v7
23782 + :cond_4d
23783 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23785 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23787 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23789 + move-result-object v1
23791 + const-string/jumbo v4, "networkInfoCurrent"
23793 + move v3, v6
23795 + move-object v6, v5
23797 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23799 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
23801 + move-result-object v7
23803 + goto :goto_4c
23804 +.end method
23806 +.method public getActiveNetworkInfoForUid(I)Landroid/net/NetworkInfo;
23807 + .registers 11
23809 + const/4 v3, 0x1
23811 + const/4 v2, -0x1
23813 + const/4 v6, 0x0
23815 + const/4 v5, 0x0
23817 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23819 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23821 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23823 + move-result-object v1
23825 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23827 + move-result v4
23829 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23831 + move-result-object v8
23833 + new-instance v7, Landroid/net/NetworkInfo;
23835 + const-string v0, "MOBILE"
23837 + const-string v1, "UNKNOWN"
23839 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
23841 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23843 + if-eqz v0, :cond_31
23845 + if-eqz v8, :cond_31
23847 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
23849 + move-result v0
23851 + if-nez v0, :cond_31
23853 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
23855 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
23857 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
23859 + :cond_31
23860 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23862 + if-eqz v0, :cond_4d
23864 + if-eqz v8, :cond_4d
23866 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23868 + move-result v0
23870 + if-eqz v0, :cond_4d
23872 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23874 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23876 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23878 + move-result-object v1
23880 + const-string/jumbo v4, "networkInfoCurrent"
23882 + move-object v6, v5
23884 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23886 + :goto_4c
23887 + return-object v7
23889 + :cond_4d
23890 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23892 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23894 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23896 + move-result-object v1
23898 + const-string/jumbo v4, "networkInfoCurrent"
23900 + move v3, v6
23902 + move-object v6, v5
23904 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23906 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getActiveNetworkInfoForUid(I)Landroid/net/NetworkInfo;
23908 + move-result-object v7
23910 + goto :goto_4c
23911 +.end method
23913 +.method public getAllNetworkInfo()[Landroid/net/NetworkInfo;
23914 + .registers 10
23916 + const/4 v2, -0x1
23918 + const/4 v3, 0x1
23920 + const/4 v5, 0x0
23922 + const/4 v6, 0x0
23924 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23926 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23928 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23930 + move-result-object v1
23932 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23934 + move-result v4
23936 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23938 + move-result-object v8
23940 + new-array v7, v3, [Landroid/net/NetworkInfo;
23942 + new-instance v0, Landroid/net/NetworkInfo;
23944 + const-string v1, "MOBILE"
23946 + const-string v4, "CONNECTED"
23948 + invoke-direct {v0, v6, v6, v1, v4}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
23950 + aput-object v0, v7, v6
23952 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23954 + if-eqz v0, :cond_39
23956 + if-eqz v8, :cond_39
23958 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
23960 + move-result v0
23962 + if-nez v0, :cond_39
23964 + aget-object v0, v7, v6
23966 + invoke-virtual {v0, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
23968 + aget-object v0, v7, v6
23970 + sget-object v1, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
23972 + invoke-virtual {v0, v1}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
23974 + :cond_39
23975 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23977 + if-eqz v0, :cond_55
23979 + if-eqz v8, :cond_55
23981 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23983 + move-result v0
23985 + if-eqz v0, :cond_55
23987 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23989 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23991 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23993 + move-result-object v1
23995 + const-string/jumbo v4, "networkInfoCurrent"
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 + :goto_54
24002 + return-object v7
24004 + :cond_55
24005 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24007 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24009 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24011 + move-result-object v1
24013 + const-string/jumbo v4, "networkInfoCurrent"
24015 + move v3, v6
24017 + move-object v6, v5
24019 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24021 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getAllNetworkInfo()[Landroid/net/NetworkInfo;
24023 + move-result-object v7
24025 + goto :goto_54
24026 +.end method
24028 +.method public getLinkProperties(I)Landroid/net/LinkProperties;
24029 + .registers 11
24031 + const/4 v2, -0x1
24033 + const/4 v5, 0x0
24035 + new-instance v7, Landroid/net/LinkProperties;
24037 + invoke-direct {v7}, Landroid/net/LinkProperties;-><init>()V
24039 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24041 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24043 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24045 + move-result-object v1
24047 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24049 + move-result v3
24051 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24053 + move-result-object v8
24055 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24057 + if-eqz v0, :cond_34
24059 + if-eqz v8, :cond_34
24061 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24063 + move-result v0
24065 + if-eqz v0, :cond_34
24067 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24069 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24071 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24073 + move-result-object v1
24075 + const/4 v3, 0x1
24077 + const-string/jumbo v4, "networkInfoCurrent"
24079 + move-object v6, v5
24081 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24083 + :goto_33
24084 + return-object v7
24086 + :cond_34
24087 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24089 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24091 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24093 + move-result-object v1
24095 + const/4 v3, 0x0
24097 + const-string/jumbo v4, "networkInfoCurrent"
24099 + move-object v6, v5
24101 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24103 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getLinkProperties(I)Landroid/net/LinkProperties;
24105 + move-result-object v7
24107 + goto :goto_33
24108 +.end method
24110 +.method public getMobileDataEnabled()Z
24111 + .registers 9
24113 + const/4 v3, 0x1
24115 + const/4 v2, -0x1
24117 + const/4 v5, 0x0
24119 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24121 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24123 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24125 + move-result-object v1
24127 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24129 + move-result v4
24131 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24133 + move-result-object v7
24135 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24137 + if-eqz v0, :cond_2f
24139 + if-eqz v7, :cond_2f
24141 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24143 + move-result v0
24145 + if-nez v0, :cond_2f
24147 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24149 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24151 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24153 + move-result-object v1
24155 + const-string/jumbo v4, "networkInfoCurrent"
24157 + move-object v6, v5
24159 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24161 + :goto_2e
24162 + return v3
24164 + :cond_2f
24165 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24167 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24169 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24171 + move-result-object v1
24173 + const/4 v3, 0x0
24175 + const-string/jumbo v4, "networkInfoCurrent"
24177 + move-object v6, v5
24179 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24181 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getMobileDataEnabled()Z
24183 + move-result v3
24185 + goto :goto_2e
24186 +.end method
24188 +.method public getNetworkInfo(I)Landroid/net/NetworkInfo;
24189 + .registers 11
24191 + const/4 v3, 0x1
24193 + const/4 v2, -0x1
24195 + const/4 v6, 0x0
24197 + const/4 v5, 0x0
24199 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24201 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24203 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24205 + move-result-object v1
24207 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24209 + move-result v4
24211 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24213 + move-result-object v8
24215 + new-instance v7, Landroid/net/NetworkInfo;
24217 + const-string v0, "MOBILE"
24219 + const-string v1, "CONNECTED"
24221 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24223 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24225 + if-eqz v0, :cond_31
24227 + if-eqz v8, :cond_31
24229 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24231 + move-result v0
24233 + if-nez v0, :cond_31
24235 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24237 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24239 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24241 + :cond_31
24242 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24244 + if-eqz v0, :cond_4d
24246 + if-eqz v8, :cond_4d
24248 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24250 + move-result v0
24252 + if-eqz v0, :cond_4d
24254 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24256 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24258 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24260 + move-result-object v1
24262 + const-string/jumbo v4, "networkInfoCurrent"
24264 + move-object v6, v5
24266 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24268 + :goto_4c
24269 + return-object v7
24271 + :cond_4d
24272 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24274 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24276 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24278 + move-result-object v1
24280 + const-string/jumbo v4, "networkInfoCurrent"
24282 + move v3, v6
24284 + move-object v6, v5
24286 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24288 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
24290 + move-result-object v7
24292 + goto :goto_4c
24293 +.end method
24295 +.method public requestRouteToHost(II)Z
24296 + .registers 12
24298 + const/4 v8, 0x0
24300 + const/4 v3, 0x1
24302 + const/4 v2, -0x1
24304 + const/4 v5, 0x0
24306 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24308 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24310 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24312 + move-result-object v1
24314 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24316 + move-result v4
24318 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24320 + move-result-object v7
24322 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24324 + if-eqz v0, :cond_30
24326 + if-eqz v7, :cond_30
24328 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24330 + move-result v0
24332 + if-nez v0, :cond_30
24334 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24336 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24338 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24340 + move-result-object v1
24342 + const-string/jumbo v4, "networkInfoCurrent"
24344 + move-object v6, v5
24346 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24348 + :goto_2f
24349 + return v3
24351 + :cond_30
24352 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24354 + if-eqz v0, :cond_4d
24356 + if-eqz v7, :cond_4d
24358 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24360 + move-result v0
24362 + if-eqz v0, :cond_4d
24364 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24366 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24368 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24370 + move-result-object v1
24372 + const-string/jumbo v4, "networkInfoCurrent"
24374 + move-object v6, v5
24376 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24378 + move v3, v8
24380 + goto :goto_2f
24382 + :cond_4d
24383 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24385 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24387 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24389 + move-result-object v1
24391 + const-string/jumbo v4, "networkInfoCurrent"
24393 + move v3, v8
24395 + move-object v6, v5
24397 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24399 + invoke-super {p0, p1, p2}, Landroid/net/ConnectivityManager;->requestRouteToHost(II)Z
24401 + move-result v3
24403 + goto :goto_2f
24404 +.end method
24406 +.method public requestRouteToHostAddress(ILjava/net/InetAddress;)Z
24407 + .registers 12
24409 + const/4 v8, 0x0
24411 + const/4 v3, 0x1
24413 + const/4 v2, -0x1
24415 + const/4 v5, 0x0
24417 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24419 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24421 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24423 + move-result-object v1
24425 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24427 + move-result v4
24429 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24431 + move-result-object v7
24433 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24435 + if-eqz v0, :cond_30
24437 + if-eqz v7, :cond_30
24439 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24441 + move-result v0
24443 + if-nez v0, :cond_30
24445 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24447 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24449 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24451 + move-result-object v1
24453 + const-string/jumbo v4, "networkInfoCurrent"
24455 + move-object v6, v5
24457 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24459 + :goto_2f
24460 + return v3
24462 + :cond_30
24463 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24465 + if-eqz v0, :cond_4d
24467 + if-eqz v7, :cond_4d
24469 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24471 + move-result v0
24473 + if-eqz v0, :cond_4d
24475 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24477 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24479 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24481 + move-result-object v1
24483 + const-string/jumbo v4, "networkInfoCurrent"
24485 + move-object v6, v5
24487 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24489 + move v3, v8
24491 + goto :goto_2f
24493 + :cond_4d
24494 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24496 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24498 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24500 + move-result-object v1
24502 + const-string/jumbo v4, "networkInfoCurrent"
24504 + move v3, v8
24506 + move-object v6, v5
24508 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24510 + invoke-super {p0, p1, p2}, Landroid/net/ConnectivityManager;->requestRouteToHostAddress(ILjava/net/InetAddress;)Z
24512 + move-result v3
24514 + goto :goto_2f
24515 +.end method
24517 +.method public setMobileDataEnabled(Z)V
24518 + .registers 10
24520 + const/4 v2, -0x1
24522 + const/4 v5, 0x0
24524 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24526 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24528 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24530 + move-result-object v1
24532 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24534 + move-result v3
24536 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24538 + move-result-object v7
24540 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24542 + if-eqz v0, :cond_2f
24544 + if-eqz v7, :cond_2f
24546 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSwitchConnectivitySetting()B
24548 + move-result v0
24550 + if-eqz v0, :cond_2f
24552 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24554 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24556 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24558 + move-result-object v1
24560 + const/4 v3, 0x1
24562 + const-string/jumbo v4, "switchconnectivity"
24564 + move-object v6, v5
24566 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24568 + :goto_2e
24569 + return-void
24571 + :cond_2f
24572 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24574 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24576 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24578 + move-result-object v1
24580 + const/4 v3, 0x0
24582 + const-string/jumbo v4, "switchconnectivity"
24584 + move-object v6, v5
24586 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24588 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->setMobileDataEnabled(Z)V
24590 + goto :goto_2e
24591 +.end method
24592 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali opd-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali
24593 --- stock-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali 1969-12-31 18:00:00.000000000 -0600
24594 +++ opd-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali 2013-01-20 23:05:45.911697429 -0600
24595 @@ -0,0 +1,868 @@
24596 +.class public final Landroid/privacy/surrogate/PrivacyContentResolver;
24597 +.super Ljava/lang/Object;
24598 +.source "PrivacyContentResolver.java"
24601 +# static fields
24602 +.field private static final MMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "mms"
24604 +.field private static final MMS_SMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "mms-sms"
24606 +.field private static final SMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "sms"
24608 +.field private static final TAG:Ljava/lang/String; = "PrivacyContentResolver"
24610 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
24613 +# direct methods
24614 +.method public constructor <init>()V
24615 + .registers 1
24617 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
24619 + return-void
24620 +.end method
24622 +.method private static arrayToString([Ljava/lang/String;)Ljava/lang/String;
24623 + .registers 8
24625 + new-instance v4, Ljava/lang/StringBuffer;
24627 + invoke-direct {v4}, Ljava/lang/StringBuffer;-><init>()V
24629 + if-eqz p0, :cond_2d
24631 + move-object v0, p0
24633 + array-length v3, v0
24635 + const/4 v2, 0x0
24637 + :goto_a
24638 + if-ge v2, v3, :cond_30
24640 + aget-object v1, v0, v2
24642 + new-instance v5, Ljava/lang/StringBuilder;
24644 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
24646 + const-string v6, "["
24648 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24650 + move-result-object v5
24652 + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24654 + move-result-object v5
24656 + const-string v6, "]"
24658 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24660 + move-result-object v5
24662 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
24664 + move-result-object v5
24666 + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
24668 + add-int/lit8 v2, v2, 0x1
24670 + goto :goto_a
24672 + :cond_2d
24673 + const-string v5, ""
24675 + :goto_2f
24676 + return-object v5
24678 + :cond_30
24679 + invoke-virtual {v4}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
24681 + move-result-object v5
24683 + goto :goto_2f
24684 +.end method
24686 +.method public static enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;)Landroid/database/Cursor;
24687 + .registers 21
24688 + .annotation system Ldalvik/annotation/Throws;
24689 + value = {
24690 + Landroid/os/RemoteException;
24692 + .end annotation
24694 + if-eqz p0, :cond_1db
24696 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24698 + if-nez v1, :cond_13
24700 + const-string/jumbo v1, "privacy"
24702 + move-object/from16 v0, p2
24704 + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
24706 + move-result-object v1
24708 + check-cast v1, Landroid/privacy/PrivacySettingsManager;
24710 + sput-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24712 + :cond_13
24713 + invoke-virtual/range {p2 .. p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24715 + move-result-object v2
24717 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24719 + move-result v3
24721 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24723 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24725 + move-result-object v7
24727 + invoke-virtual/range {p0 .. p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
24729 + move-result-object v9
24731 + const-string v15, "[real]"
24733 + move-object/from16 v13, p3
24735 + if-eqz v9, :cond_54
24737 + const-string v1, "contacts"
24739 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24741 + move-result v1
24743 + if-nez v1, :cond_3b
24745 + const-string v1, "com.android.contacts"
24747 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24749 + move-result v1
24751 + if-eqz v1, :cond_ab
24753 + :cond_3b
24754 + if-eqz v7, :cond_54
24756 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
24758 + move-result v1
24760 + const/4 v4, 0x1
24762 + if-ne v1, v4, :cond_55
24764 + const-string v15, "[empty]"
24766 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
24768 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
24770 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24772 + const/4 v4, 0x1
24774 + const-string v5, "contacts"
24776 + const/4 v6, 0x0
24778 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24780 + :cond_54
24781 + :goto_54
24782 + return-object v13
24784 + :cond_55
24785 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
24787 + move-result v1
24789 + const/4 v4, 0x2
24791 + if-ne v1, v4, :cond_a1
24793 + invoke-virtual/range {p0 .. p0}, Landroid/net/Uri;->toString()Ljava/lang/String;
24795 + move-result-object v1
24797 + sget-object v4, Landroid/provider/ContactsContract$Contacts;->CONTENT_URI:Landroid/net/Uri;
24799 + invoke-virtual {v4}, Landroid/net/Uri;->toString()Ljava/lang/String;
24801 + move-result-object v4
24803 + invoke-virtual {v1, v4}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
24805 + move-result v1
24807 + if-eqz v1, :cond_a1
24809 + const/4 v11, 0x0
24811 + if-eqz p1, :cond_82
24813 + move-object/from16 v8, p1
24815 + array-length v12, v8
24817 + const/4 v10, 0x0
24819 + :goto_73
24820 + if-ge v10, v12, :cond_82
24822 + aget-object v16, v8, v10
24824 + const-string v1, "_id"
24826 + move-object/from16 v0, v16
24828 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24830 + move-result v1
24832 + if-eqz v1, :cond_93
24834 + const/4 v11, 0x1
24836 + :cond_82
24837 + if-nez v11, :cond_96
24839 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
24841 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
24843 + :goto_89
24844 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24846 + const/4 v4, 0x2
24848 + const-string v5, "contacts"
24850 + const/4 v6, 0x0
24852 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24854 + goto :goto_54
24856 + :cond_93
24857 + add-int/lit8 v10, v10, 0x1
24859 + goto :goto_73
24861 + :cond_96
24862 + new-instance v14, Landroid/privacy/surrogate/PrivacyCursor;
24864 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
24866 + move-result-object v1
24868 + invoke-direct {v14, v13, v1}, Landroid/privacy/surrogate/PrivacyCursor;-><init>(Landroid/database/Cursor;[I)V
24870 + move-object v13, v14
24872 + goto :goto_89
24874 + :cond_a1
24875 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24877 + const/4 v4, 0x0
24879 + const-string v5, "contacts"
24881 + const/4 v6, 0x0
24883 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24885 + goto :goto_54
24887 + :cond_ab
24888 + const-string v1, "com.android.calendar"
24890 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24892 + move-result v1
24894 + if-eqz v1, :cond_d8
24896 + if-eqz v7, :cond_cd
24898 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getCalendarSetting()B
24900 + move-result v1
24902 + const/4 v4, 0x1
24904 + if-ne v1, v4, :cond_cd
24906 + const-string v15, "[empty]"
24908 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
24910 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
24912 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24914 + const/4 v4, 0x1
24916 + const-string v5, "calendar"
24918 + const/4 v6, 0x0
24920 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24922 + goto :goto_54
24924 + :cond_cd
24925 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24927 + const/4 v4, 0x0
24929 + const-string v5, "calendar"
24931 + const/4 v6, 0x0
24933 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24935 + goto/16 :goto_54
24937 + :cond_d8
24938 + const-string/jumbo v1, "mms"
24940 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24942 + move-result v1
24944 + if-eqz v1, :cond_109
24946 + if-eqz v7, :cond_fd
24948 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
24950 + move-result v1
24952 + const/4 v4, 0x1
24954 + if-ne v1, v4, :cond_fd
24956 + const-string v15, "[empty]"
24958 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
24960 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
24962 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24964 + const/4 v4, 0x1
24966 + const-string/jumbo v5, "mms"
24968 + const/4 v6, 0x0
24970 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24972 + goto/16 :goto_54
24974 + :cond_fd
24975 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24977 + const/4 v4, 0x0
24979 + const-string/jumbo v5, "mms"
24981 + const/4 v6, 0x0
24983 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24985 + goto/16 :goto_54
24987 + :cond_109
24988 + const-string/jumbo v1, "sms"
24990 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24992 + move-result v1
24994 + if-eqz v1, :cond_13a
24996 + if-eqz v7, :cond_12e
24998 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
25000 + move-result v1
25002 + const/4 v4, 0x1
25004 + if-ne v1, v4, :cond_12e
25006 + const-string v15, "[empty]"
25008 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25010 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25012 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25014 + const/4 v4, 0x1
25016 + const-string/jumbo v5, "sms"
25018 + const/4 v6, 0x0
25020 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25022 + goto/16 :goto_54
25024 + :cond_12e
25025 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25027 + const/4 v4, 0x0
25029 + const-string/jumbo v5, "sms"
25031 + const/4 v6, 0x0
25033 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25035 + goto/16 :goto_54
25037 + :cond_13a
25038 + const-string/jumbo v1, "mms-sms"
25040 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25042 + move-result v1
25044 + if-nez v1, :cond_14c
25046 + const-string/jumbo v1, "mms-sms-v2"
25048 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25050 + move-result v1
25052 + if-eqz v1, :cond_17b
25054 + :cond_14c
25055 + if-eqz v7, :cond_16f
25057 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
25059 + move-result v1
25061 + const/4 v4, 0x1
25063 + if-eq v1, v4, :cond_15c
25065 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
25067 + move-result v1
25069 + const/4 v4, 0x1
25071 + if-ne v1, v4, :cond_16f
25073 + :cond_15c
25074 + const-string v15, "[empty]"
25076 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25078 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25080 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25082 + const/4 v4, 0x1
25084 + const-string/jumbo v5, "mmsSms"
25086 + const/4 v6, 0x0
25088 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25090 + goto/16 :goto_54
25092 + :cond_16f
25093 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25095 + const/4 v4, 0x0
25097 + const-string/jumbo v5, "mmsSms"
25099 + const/4 v6, 0x0
25101 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25103 + goto/16 :goto_54
25105 + :cond_17b
25106 + const-string v1, "call_log"
25108 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25110 + move-result v1
25112 + if-eqz v1, :cond_1a9
25114 + if-eqz v7, :cond_19e
25116 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getCallLogSetting()B
25118 + move-result v1
25120 + const/4 v4, 0x1
25122 + if-ne v1, v4, :cond_19e
25124 + const-string v15, "[empty]"
25126 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25128 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25130 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25132 + const/4 v4, 0x1
25134 + const-string v5, "callLog"
25136 + const/4 v6, 0x0
25138 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25140 + goto/16 :goto_54
25142 + :cond_19e
25143 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25145 + const/4 v4, 0x0
25147 + const-string v5, "callLog"
25149 + const/4 v6, 0x0
25151 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25153 + goto/16 :goto_54
25155 + :cond_1a9
25156 + sget-object v1, Landroid/provider/Browser;->BOOKMARKS_URI:Landroid/net/Uri;
25158 + invoke-virtual {v1}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
25160 + move-result-object v1
25162 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25164 + move-result v1
25166 + if-eqz v1, :cond_54
25168 + if-eqz v7, :cond_1d0
25170 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getBookmarksSetting()B
25172 + move-result v1
25174 + const/4 v4, 0x1
25176 + if-ne v1, v4, :cond_1d0
25178 + const-string v15, "[empty]"
25180 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25182 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25184 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25186 + const/4 v4, 0x1
25188 + const-string v5, "bookmarks"
25190 + const/4 v6, 0x0
25192 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25194 + goto/16 :goto_54
25196 + :cond_1d0
25197 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25199 + const/4 v4, 0x0
25201 + const-string v5, "bookmarks"
25203 + const/4 v6, 0x0
25205 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25207 + goto/16 :goto_54
25209 + :cond_1db
25210 + move-object/from16 v13, p3
25212 + goto/16 :goto_54
25213 +.end method
25215 +.method public static enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;Z)Landroid/database/Cursor;
25216 + .registers 20
25217 + .annotation system Ldalvik/annotation/Throws;
25218 + value = {
25219 + Landroid/os/RemoteException;
25221 + .end annotation
25223 + if-eqz p0, :cond_dd
25225 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25227 + if-nez v1, :cond_13
25229 + const-string/jumbo v1, "privacy"
25231 + move-object/from16 v0, p2
25233 + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
25235 + move-result-object v1
25237 + check-cast v1, Landroid/privacy/PrivacySettingsManager;
25239 + sput-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25241 + :cond_13
25242 + invoke-virtual/range {p2 .. p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25244 + move-result-object v2
25246 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
25248 + move-result v3
25250 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25252 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
25254 + move-result-object v7
25256 + invoke-virtual {p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
25258 + move-result-object v9
25260 + const-string v14, "[real]"
25262 + move-object/from16 v13, p3
25264 + if-eqz v9, :cond_6d
25266 + const-string v1, "com.google.android.gsf.gservices"
25268 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25270 + move-result v1
25272 + if-eqz v1, :cond_6d
25274 + if-eqz v7, :cond_cb
25276 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
25278 + move-result v1
25280 + if-eqz v1, :cond_cb
25282 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getPosition()I
25284 + move-result v8
25286 + const/4 v11, -0x1
25288 + const/4 v12, 0x0
25290 + :goto_41
25291 + :try_start_41
25292 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getCount()I
25294 + move-result v1
25296 + if-ge v12, v1, :cond_5d
25298 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->moveToNext()Z
25300 + const/4 v1, 0x0
25302 + move-object/from16 v0, p3
25304 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
25306 + move-result-object v1
25308 + const-string v4, "android_id"
25310 + invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25312 + move-result v1
25314 + if-eqz v1, :cond_6e
25316 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getPosition()I
25317 + :try_end_5c
25318 + .catchall {:try_start_41 .. :try_end_5c} :catchall_8b
25319 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_5c} :catch_71
25321 + move-result v11
25323 + :cond_5d
25324 + move-object/from16 v0, p3
25326 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25328 + const/4 v1, -0x1
25330 + if-ne v11, v1, :cond_9e
25332 + const-string v1, "PrivacyContentResolver"
25334 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25336 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25338 + :cond_6d
25339 + :goto_6d
25340 + return-object v13
25342 + :cond_6e
25343 + add-int/lit8 v12, v12, 0x1
25345 + goto :goto_41
25347 + :catch_71
25348 + move-exception v10
25350 + :try_start_72
25351 + const-string v1, "PrivacyContentResolver"
25353 + const-string/jumbo v4, "something went wrong while getting blocked permission for android id"
25355 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
25356 + :try_end_7a
25357 + .catchall {:try_start_72 .. :try_end_7a} :catchall_8b
25359 + move-object/from16 v0, p3
25361 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25363 + const/4 v1, -0x1
25365 + if-ne v11, v1, :cond_9e
25367 + const-string v1, "PrivacyContentResolver"
25369 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25371 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25373 + goto :goto_6d
25375 + :catchall_8b
25376 + move-exception v1
25378 + move-object/from16 v0, p3
25380 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25382 + const/4 v4, -0x1
25384 + if-ne v11, v4, :cond_9d
25386 + const-string v1, "PrivacyContentResolver"
25388 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25390 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25392 + goto :goto_6d
25394 + :cond_9d
25395 + throw v1
25397 + :cond_9e
25398 + const-string v1, "PrivacyContentResolver"
25400 + new-instance v4, Ljava/lang/StringBuilder;
25402 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
25404 + const-string/jumbo v5, "now blocking google access to android id and give fake cursor. forbidden_position: "
25406 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25408 + move-result-object v4
25410 + invoke-virtual {v4, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
25412 + move-result-object v4
25414 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25416 + move-result-object v4
25418 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25420 + const-string v14, "[fake]"
25422 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25424 + move-object/from16 v0, p3
25426 + invoke-direct {v13, v0, v11}, Landroid/privacy/surrogate/PrivacyCursor;-><init>(Landroid/database/Cursor;I)V
25428 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25430 + const/4 v4, 0x1
25432 + const-string/jumbo v5, "networkInfoSIM"
25434 + const/4 v6, 0x0
25436 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25438 + goto :goto_6d
25440 + :cond_cb
25441 + const-string v1, "PrivacyContentResolver"
25443 + const-string v4, "google is allowed to get real cursor"
25445 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25447 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25449 + const/4 v4, 0x0
25451 + const-string/jumbo v5, "networkInfoSIM"
25453 + const/4 v6, 0x0
25455 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25457 + goto :goto_6d
25459 + :cond_dd
25460 + move-object/from16 v13, p3
25462 + goto :goto_6d
25463 +.end method
25464 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyCursor.smali opd-framework/smali/android/privacy/surrogate/PrivacyCursor.smali
25465 --- stock-framework/smali/android/privacy/surrogate/PrivacyCursor.smali 1969-12-31 18:00:00.000000000 -0600
25466 +++ opd-framework/smali/android/privacy/surrogate/PrivacyCursor.smali 2013-01-20 23:05:45.911697429 -0600
25467 @@ -0,0 +1,1765 @@
25468 +.class public Landroid/privacy/surrogate/PrivacyCursor;
25469 +.super Ljava/lang/Object;
25470 +.source "PrivacyCursor.java"
25472 +# interfaces
25473 +.implements Landroid/database/Cursor;
25476 +# static fields
25477 +.field private static final TAG:Ljava/lang/String; = "PrivacyCursor"
25479 +.field private static final mask:[Ljava/lang/String;
25482 +# instance fields
25483 +.field private allowedIdMapping:[I
25485 +.field private allowedIds:[I
25487 +.field private blockedColumnAndroidID:I
25489 +.field private googleCursor:Z
25491 +.field private realCursor:Landroid/database/Cursor;
25494 +# direct methods
25495 +.method static constructor <clinit>()V
25496 + .registers 3
25498 + const/16 v0, 0x10
25500 + new-array v0, v0, [Ljava/lang/String;
25502 + const/4 v1, 0x0
25504 + const-string v2, "0"
25506 + aput-object v2, v0, v1
25508 + const/4 v1, 0x1
25510 + const-string v2, "1"
25512 + aput-object v2, v0, v1
25514 + const/4 v1, 0x2
25516 + const-string v2, "2"
25518 + aput-object v2, v0, v1
25520 + const/4 v1, 0x3
25522 + const-string v2, "3"
25524 + aput-object v2, v0, v1
25526 + const/4 v1, 0x4
25528 + const-string v2, "4"
25530 + aput-object v2, v0, v1
25532 + const/4 v1, 0x5
25534 + const-string v2, "5"
25536 + aput-object v2, v0, v1
25538 + const/4 v1, 0x6
25540 + const-string v2, "6"
25542 + aput-object v2, v0, v1
25544 + const/4 v1, 0x7
25546 + const-string v2, "7"
25548 + aput-object v2, v0, v1
25550 + const/16 v1, 0x8
25552 + const-string v2, "8"
25554 + aput-object v2, v0, v1
25556 + const/16 v1, 0x9
25558 + const-string v2, "9"
25560 + aput-object v2, v0, v1
25562 + const/16 v1, 0xa
25564 + const-string v2, "a"
25566 + aput-object v2, v0, v1
25568 + const/16 v1, 0xb
25570 + const-string v2, "b"
25572 + aput-object v2, v0, v1
25574 + const/16 v1, 0xc
25576 + const-string v2, "c"
25578 + aput-object v2, v0, v1
25580 + const/16 v1, 0xd
25582 + const-string v2, "d"
25584 + aput-object v2, v0, v1
25586 + const/16 v1, 0xe
25588 + const-string v2, "e"
25590 + aput-object v2, v0, v1
25592 + const/16 v1, 0xf
25594 + const-string v2, "f"
25596 + aput-object v2, v0, v1
25598 + sput-object v0, Landroid/privacy/surrogate/PrivacyCursor;->mask:[Ljava/lang/String;
25600 + return-void
25601 +.end method
25603 +.method public constructor <init>()V
25604 + .registers 1
25606 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25608 + return-void
25609 +.end method
25611 +.method public constructor <init>(Landroid/database/Cursor;I)V
25612 + .registers 6
25614 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25616 + const/16 v0, -0xb
25618 + if-ne p2, v0, :cond_28
25620 + const/4 v0, 0x0
25622 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25624 + :goto_a
25625 + iput p2, p0, Landroid/privacy/surrogate/PrivacyCursor;->blockedColumnAndroidID:I
25627 + const/4 v0, 0x1
25629 + iput-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
25631 + const-string v0, "PrivacyCursor"
25633 + new-instance v1, Ljava/lang/StringBuilder;
25635 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
25637 + const-string v2, "constructor is ready for google cursor! forbidden_position: "
25639 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25641 + move-result-object v1
25643 + invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
25645 + move-result-object v1
25647 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25649 + move-result-object v1
25651 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25653 + return-void
25655 + :cond_28
25656 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25658 + goto :goto_a
25659 +.end method
25661 +.method public constructor <init>(Landroid/database/Cursor;[I)V
25662 + .registers 7
25664 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25666 + if-eqz p2, :cond_8
25668 + array-length v2, p2
25670 + if-nez v2, :cond_9
25672 + :cond_8
25673 + const/4 p1, 0x0
25675 + :cond_9
25676 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25678 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIds:[I
25680 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25682 + if-eqz v2, :cond_3f
25684 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25686 + invoke-interface {v2}, Landroid/database/Cursor;->getPosition()I
25688 + move-result v0
25690 + array-length v2, p2
25692 + new-array v2, v2, [I
25694 + iput-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25696 + const/4 v1, 0x0
25698 + :cond_1d
25699 + :goto_1d
25700 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25702 + invoke-interface {v2}, Landroid/database/Cursor;->moveToNext()Z
25704 + move-result v2
25706 + if-eqz v2, :cond_3a
25708 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25710 + invoke-direct {p0, v2}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
25712 + move-result v2
25714 + if-eqz v2, :cond_1d
25716 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25718 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25720 + invoke-interface {v3}, Landroid/database/Cursor;->getPosition()I
25722 + move-result v3
25724 + aput v3, v2, v1
25726 + add-int/lit8 v1, v1, 0x1
25728 + goto :goto_1d
25730 + :cond_3a
25731 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25733 + invoke-interface {v2, v0}, Landroid/database/Cursor;->moveToPosition(I)Z
25735 + :cond_3f
25736 + return-void
25737 +.end method
25739 +.method private getContactId(Landroid/database/Cursor;)I
25740 + .registers 5
25742 + const-string v2, "_id"
25744 + invoke-interface {p1, v2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
25746 + move-result v0
25748 + const/4 v1, -0x1
25750 + const/4 v2, -0x1
25752 + if-eq v0, v2, :cond_e
25754 + invoke-interface {p1, v0}, Landroid/database/Cursor;->getInt(I)I
25756 + move-result v1
25758 + :cond_e
25759 + return v1
25760 +.end method
25762 +.method private getFakeID()Ljava/lang/String;
25763 + .registers 8
25765 + :try_start_0
25766 + new-instance v3, Ljava/util/Random;
25768 + invoke-direct {v3}, Ljava/util/Random;-><init>()V
25770 + const-string v2, ""
25772 + const/4 v1, 0x0
25774 + :goto_8
25775 + const/16 v4, 0x10
25777 + if-ge v1, v4, :cond_34
25779 + new-instance v4, Ljava/lang/StringBuilder;
25781 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
25783 + invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25785 + move-result-object v4
25787 + sget-object v5, Landroid/privacy/surrogate/PrivacyCursor;->mask:[Ljava/lang/String;
25789 + const/16 v6, 0xf
25791 + invoke-virtual {v3, v6}, Ljava/util/Random;->nextInt(I)I
25793 + move-result v6
25795 + aget-object v5, v5, v6
25797 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25799 + move-result-object v4
25801 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25802 + :try_end_26
25803 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_26} :catch_2a
25805 + move-result-object v2
25807 + add-int/lit8 v1, v1, 0x1
25809 + goto :goto_8
25811 + :catch_2a
25812 + move-exception v0
25814 + const-string v4, "PrivacyCursor"
25816 + const-string/jumbo v5, "something went wrong with creating fake ID"
25818 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
25820 + const/4 v2, 0x0
25822 + :cond_34
25823 + return-object v2
25824 +.end method
25826 +.method private getMappedPos(I)I
25827 + .registers 4
25829 + const/4 v0, 0x0
25831 + :goto_1
25832 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25834 + array-length v1, v1
25836 + if-ge v0, v1, :cond_10
25838 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25840 + aget v1, v1, v0
25842 + if-ne v1, p1, :cond_d
25844 + :goto_c
25845 + return v0
25847 + :cond_d
25848 + add-int/lit8 v0, v0, 0x1
25850 + goto :goto_1
25852 + :cond_10
25853 + const/4 v0, -0x1
25855 + goto :goto_c
25856 +.end method
25858 +.method private isAllowed(I)Z
25859 + .registers 7
25861 + const/4 v4, 0x0
25863 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIds:[I
25865 + array-length v3, v0
25867 + const/4 v2, 0x0
25869 + :goto_5
25870 + if-ge v2, v3, :cond_c
25872 + aget v1, v0, v2
25874 + if-ne p1, v1, :cond_d
25876 + const/4 v4, 0x1
25878 + :cond_c
25879 + return v4
25881 + :cond_d
25882 + add-int/lit8 v2, v2, 0x1
25884 + goto :goto_5
25885 +.end method
25887 +.method private isAllowed(Landroid/database/Cursor;)Z
25888 + .registers 3
25890 + invoke-direct {p0, p1}, Landroid/privacy/surrogate/PrivacyCursor;->getContactId(Landroid/database/Cursor;)I
25892 + move-result v0
25894 + invoke-direct {p0, v0}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(I)Z
25896 + move-result v0
25898 + return v0
25899 +.end method
25902 +# virtual methods
25903 +.method public close()V
25904 + .registers 2
25906 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25908 + if-eqz v0, :cond_9
25910 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25912 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
25914 + :cond_9
25915 + return-void
25916 +.end method
25918 +.method public copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
25919 + .registers 4
25921 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25923 + if-eqz v0, :cond_9
25925 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25927 + invoke-interface {v0, p1, p2}, Landroid/database/Cursor;->copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
25929 + :cond_9
25930 + return-void
25931 +.end method
25933 +.method public deactivate()V
25934 + .registers 2
25936 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25938 + if-eqz v0, :cond_9
25940 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25942 + invoke-interface {v0}, Landroid/database/Cursor;->deactivate()V
25944 + :cond_9
25945 + return-void
25946 +.end method
25948 +.method public getBlob(I)[B
25949 + .registers 3
25951 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25953 + if-eqz v0, :cond_b
25955 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25957 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getBlob(I)[B
25959 + move-result-object v0
25961 + :goto_a
25962 + return-object v0
25964 + :cond_b
25965 + const/4 v0, 0x0
25967 + new-array v0, v0, [B
25969 + goto :goto_a
25970 +.end method
25972 +.method public getColumnCount()I
25973 + .registers 2
25975 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25977 + if-eqz v0, :cond_b
25979 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25981 + invoke-interface {v0}, Landroid/database/Cursor;->getColumnCount()I
25983 + move-result v0
25985 + :goto_a
25986 + return v0
25988 + :cond_b
25989 + const/4 v0, 0x0
25991 + goto :goto_a
25992 +.end method
25994 +.method public getColumnIndex(Ljava/lang/String;)I
25995 + .registers 3
25997 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25999 + if-eqz v0, :cond_b
26001 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26003 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
26005 + move-result v0
26007 + :goto_a
26008 + return v0
26010 + :cond_b
26011 + const/4 v0, -0x1
26013 + goto :goto_a
26014 +.end method
26016 +.method public getColumnIndexOrThrow(Ljava/lang/String;)I
26017 + .registers 3
26018 + .annotation system Ldalvik/annotation/Throws;
26019 + value = {
26020 + Ljava/lang/IllegalArgumentException;
26022 + .end annotation
26024 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26026 + if-eqz v0, :cond_b
26028 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26030 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
26032 + move-result v0
26034 + :goto_a
26035 + return v0
26037 + :cond_b
26038 + const/4 v0, -0x1
26040 + goto :goto_a
26041 +.end method
26043 +.method public getColumnName(I)Ljava/lang/String;
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;->getColumnName(I)Ljava/lang/String;
26054 + move-result-object v0
26056 + :goto_a
26057 + return-object v0
26059 + :cond_b
26060 + const-string v0, ""
26062 + goto :goto_a
26063 +.end method
26065 +.method public getColumnNames()[Ljava/lang/String;
26066 + .registers 4
26068 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26070 + if-eqz v0, :cond_b
26072 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26074 + invoke-interface {v0}, Landroid/database/Cursor;->getColumnNames()[Ljava/lang/String;
26076 + move-result-object v0
26078 + :goto_a
26079 + return-object v0
26081 + :cond_b
26082 + const/4 v0, 0x1
26084 + new-array v0, v0, [Ljava/lang/String;
26086 + const/4 v1, 0x0
26088 + const-string v2, ""
26090 + aput-object v2, v0, v1
26092 + goto :goto_a
26093 +.end method
26095 +.method public getCount()I
26096 + .registers 4
26098 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26100 + if-eqz v0, :cond_2b
26102 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26104 + if-eqz v0, :cond_2b
26106 + iget-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26108 + if-nez v0, :cond_2b
26110 + const-string v0, "PrivacyCursor"
26112 + new-instance v1, Ljava/lang/StringBuilder;
26114 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
26116 + const-string v2, "getCount: "
26118 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26120 + move-result-object v1
26122 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26124 + array-length v2, v2
26126 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26128 + move-result-object v1
26130 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26132 + move-result-object v1
26134 + invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26136 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26138 + array-length v0, v0
26140 + :goto_2a
26141 + return v0
26143 + :cond_2b
26144 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26146 + if-eqz v0, :cond_36
26148 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26150 + invoke-interface {v0}, Landroid/database/Cursor;->getCount()I
26152 + move-result v0
26154 + goto :goto_2a
26156 + :cond_36
26157 + const/4 v0, 0x0
26159 + goto :goto_2a
26160 +.end method
26162 +.method public getDouble(I)D
26163 + .registers 4
26165 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26167 + if-eqz v0, :cond_b
26169 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26171 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getDouble(I)D
26173 + move-result-wide v0
26175 + :goto_a
26176 + return-wide v0
26178 + :cond_b
26179 + const-wide/16 v0, 0x0
26181 + goto :goto_a
26182 +.end method
26184 +.method public getExtras()Landroid/os/Bundle;
26185 + .registers 2
26187 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26189 + if-eqz v0, :cond_b
26191 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26193 + invoke-interface {v0}, Landroid/database/Cursor;->getExtras()Landroid/os/Bundle;
26195 + move-result-object v0
26197 + :goto_a
26198 + return-object v0
26200 + :cond_b
26201 + new-instance v0, Landroid/os/Bundle;
26203 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
26205 + goto :goto_a
26206 +.end method
26208 +.method public getFloat(I)F
26209 + .registers 3
26211 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26213 + if-eqz v0, :cond_b
26215 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26217 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getFloat(I)F
26219 + move-result v0
26221 + :goto_a
26222 + return v0
26224 + :cond_b
26225 + const/4 v0, 0x0
26227 + goto :goto_a
26228 +.end method
26230 +.method public getInt(I)I
26231 + .registers 4
26233 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26235 + if-eqz v1, :cond_b
26237 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26239 + invoke-interface {v1, p1}, Landroid/database/Cursor;->getInt(I)I
26241 + move-result v0
26243 + :goto_a
26244 + return v0
26246 + :cond_b
26247 + const/4 v0, 0x0
26249 + goto :goto_a
26250 +.end method
26252 +.method public getLong(I)J
26253 + .registers 4
26255 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26257 + if-eqz v0, :cond_b
26259 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26261 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getLong(I)J
26263 + move-result-wide v0
26265 + :goto_a
26266 + return-wide v0
26268 + :cond_b
26269 + const-wide/16 v0, 0x0
26271 + goto :goto_a
26272 +.end method
26274 +.method public getPosition()I
26275 + .registers 5
26277 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26279 + if-eqz v1, :cond_3f
26281 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26283 + if-eqz v1, :cond_3f
26285 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26287 + if-nez v1, :cond_3f
26289 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26291 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26293 + move-result v1
26295 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->getMappedPos(I)I
26297 + move-result v0
26299 + const-string v1, "PrivacyCursor"
26301 + new-instance v2, Ljava/lang/StringBuilder;
26303 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
26305 + const-string v3, "getPosition - mapped position: "
26307 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26309 + move-result-object v2
26311 + invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26313 + move-result-object v2
26315 + const-string v3, " real position: "
26317 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26319 + move-result-object v2
26321 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26323 + invoke-interface {v3}, Landroid/database/Cursor;->getPosition()I
26325 + move-result v3
26327 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26329 + move-result-object v2
26331 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26333 + move-result-object v2
26335 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26337 + :goto_3e
26338 + return v0
26340 + :cond_3f
26341 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26343 + if-eqz v1, :cond_4a
26345 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26347 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26349 + move-result v0
26351 + goto :goto_3e
26353 + :cond_4a
26354 + const/4 v0, -0x1
26356 + goto :goto_3e
26357 +.end method
26359 +.method public getShort(I)S
26360 + .registers 3
26362 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26364 + if-eqz v0, :cond_b
26366 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26368 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getShort(I)S
26370 + move-result v0
26372 + :goto_a
26373 + return v0
26375 + :cond_b
26376 + const/4 v0, 0x0
26378 + goto :goto_a
26379 +.end method
26381 +.method public getString(I)Ljava/lang/String;
26382 + .registers 9
26384 + iget-boolean v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26386 + if-eqz v4, :cond_63
26388 + const/4 v4, 0x1
26390 + if-ne p1, v4, :cond_63
26392 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26394 + invoke-interface {v4}, Landroid/database/Cursor;->getPosition()I
26396 + move-result v4
26398 + iget v5, p0, Landroid/privacy/surrogate/PrivacyCursor;->blockedColumnAndroidID:I
26400 + if-ne v4, v5, :cond_63
26402 + const-string v4, "PrivacyCursor"
26404 + const-string v5, "google tries to get android_id with getString()"
26406 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26408 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyCursor;->getFakeID()Ljava/lang/String;
26410 + move-result-object v2
26412 + if-eqz v2, :cond_58
26414 + :try_start_1e
26415 + new-instance v3, Ljava/math/BigInteger;
26417 + const/16 v4, 0x10
26419 + invoke-direct {v3, v2, v4}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;I)V
26421 + invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
26423 + move-result-object v1
26425 + const-string v4, "PrivacyCursor"
26427 + new-instance v5, Ljava/lang/StringBuilder;
26429 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
26431 + const-string/jumbo v6, "returned : "
26433 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26435 + move-result-object v5
26437 + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26439 + move-result-object v5
26441 + const-string v6, "(String) as fake android id"
26443 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26445 + move-result-object v5
26447 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26449 + move-result-object v5
26451 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26452 + :try_end_48
26453 + .catch Ljava/lang/Exception; {:try_start_1e .. :try_end_48} :catch_49
26455 + :goto_48
26456 + return-object v1
26458 + :catch_49
26459 + move-exception v0
26461 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
26463 + const-string v4, "PrivacyCursor"
26465 + const-string/jumbo v5, "returned \"\" as android_id"
26467 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26469 + const-string v1, ""
26471 + goto :goto_48
26473 + :cond_58
26474 + const-string v4, "PrivacyCursor"
26476 + const-string/jumbo v5, "returned \"\" as android_id"
26478 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26480 + const-string v1, ""
26482 + goto :goto_48
26484 + :cond_63
26485 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26487 + if-eqz v4, :cond_6e
26489 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26491 + invoke-interface {v4, p1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
26493 + move-result-object v1
26495 + goto :goto_48
26497 + :cond_6e
26498 + const-string v1, ""
26500 + goto :goto_48
26501 +.end method
26503 +.method public getType(I)I
26504 + .registers 3
26506 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26508 + if-eqz v0, :cond_b
26510 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26512 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getType(I)I
26514 + move-result v0
26516 + :goto_a
26517 + return v0
26519 + :cond_b
26520 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26522 + const/4 v0, 0x0
26524 + goto :goto_a
26525 +.end method
26527 +.method public getWantsAllOnMoveCalls()Z
26528 + .registers 2
26530 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26532 + if-eqz v0, :cond_b
26534 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26536 + invoke-interface {v0}, Landroid/database/Cursor;->getWantsAllOnMoveCalls()Z
26538 + move-result v0
26540 + :goto_a
26541 + return v0
26543 + :cond_b
26544 + const/4 v0, 0x0
26546 + goto :goto_a
26547 +.end method
26549 +.method public isAfterLast()Z
26550 + .registers 2
26552 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26554 + if-eqz v0, :cond_b
26556 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26558 + invoke-interface {v0}, Landroid/database/Cursor;->isAfterLast()Z
26560 + move-result v0
26562 + :goto_a
26563 + return v0
26565 + :cond_b
26566 + const/4 v0, 0x0
26568 + goto :goto_a
26569 +.end method
26571 +.method public isBeforeFirst()Z
26572 + .registers 2
26574 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26576 + if-eqz v0, :cond_b
26578 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26580 + invoke-interface {v0}, Landroid/database/Cursor;->isBeforeFirst()Z
26582 + move-result v0
26584 + :goto_a
26585 + return v0
26587 + :cond_b
26588 + const/4 v0, 0x0
26590 + goto :goto_a
26591 +.end method
26593 +.method public isClosed()Z
26594 + .registers 2
26596 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26598 + if-eqz v0, :cond_b
26600 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26602 + invoke-interface {v0}, Landroid/database/Cursor;->isClosed()Z
26604 + move-result v0
26606 + :goto_a
26607 + return v0
26609 + :cond_b
26610 + const/4 v0, 0x0
26612 + goto :goto_a
26613 +.end method
26615 +.method public isFirst()Z
26616 + .registers 4
26618 + const/4 v0, 0x0
26620 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26622 + if-eqz v1, :cond_1b
26624 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26626 + if-eqz v1, :cond_1b
26628 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26630 + if-nez v1, :cond_1b
26632 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26634 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26636 + move-result v1
26638 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26640 + aget v2, v2, v0
26642 + if-ne v1, v2, :cond_1a
26644 + const/4 v0, 0x1
26646 + :cond_1a
26647 + :goto_1a
26648 + return v0
26650 + :cond_1b
26651 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26653 + if-eqz v1, :cond_1a
26655 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26657 + invoke-interface {v0}, Landroid/database/Cursor;->isFirst()Z
26659 + move-result v0
26661 + goto :goto_1a
26662 +.end method
26664 +.method public isLast()Z
26665 + .registers 4
26667 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26669 + if-eqz v0, :cond_1f
26671 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26673 + if-eqz v0, :cond_1f
26675 + iget-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26677 + if-nez v0, :cond_1f
26679 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26681 + invoke-interface {v0}, Landroid/database/Cursor;->getPosition()I
26683 + move-result v0
26685 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26687 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26689 + array-length v2, v2
26691 + add-int/lit8 v2, v2, -0x1
26693 + aget v1, v1, v2
26695 + if-ne v0, v1, :cond_2a
26697 + const/4 v0, 0x1
26699 + :goto_1e
26700 + return v0
26702 + :cond_1f
26703 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26705 + if-eqz v0, :cond_2a
26707 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26709 + invoke-interface {v0}, Landroid/database/Cursor;->isLast()Z
26711 + move-result v0
26713 + goto :goto_1e
26715 + :cond_2a
26716 + const/4 v0, 0x0
26718 + goto :goto_1e
26719 +.end method
26721 +.method public isNull(I)Z
26722 + .registers 3
26724 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26726 + if-eqz v0, :cond_b
26728 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26730 + invoke-interface {v0, p1}, Landroid/database/Cursor;->isNull(I)Z
26732 + move-result v0
26734 + :goto_a
26735 + return v0
26737 + :cond_b
26738 + const/4 v0, 0x0
26740 + goto :goto_a
26741 +.end method
26743 +.method public move(I)Z
26744 + .registers 8
26746 + const/4 v2, 0x0
26748 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26750 + if-eqz v3, :cond_3e
26752 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26754 + if-eqz v3, :cond_3e
26756 + iget-boolean v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26758 + if-nez v3, :cond_3e
26760 + const-string v3, "PrivacyCursor"
26762 + new-instance v4, Ljava/lang/StringBuilder;
26764 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
26766 + const-string/jumbo v5, "move - offset: "
26768 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26770 + move-result-object v4
26772 + invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26774 + move-result-object v4
26776 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26778 + move-result-object v4
26780 + invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26782 + :try_start_26
26783 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26785 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26787 + invoke-interface {v4}, Landroid/database/Cursor;->getPosition()I
26789 + move-result v4
26791 + invoke-direct {p0, v4}, Landroid/privacy/surrogate/PrivacyCursor;->getMappedPos(I)I
26793 + move-result v4
26795 + add-int/2addr v4, p1
26797 + aget v1, v3, v4
26799 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26801 + invoke-interface {v3, v1}, Landroid/database/Cursor;->moveToPosition(I)Z
26802 + :try_end_3a
26803 + .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_26 .. :try_end_3a} :catch_3c
26805 + move-result v2
26807 + :cond_3b
26808 + :goto_3b
26809 + return v2
26811 + :catch_3c
26812 + move-exception v0
26814 + goto :goto_3b
26816 + :cond_3e
26817 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26819 + if-eqz v3, :cond_3b
26821 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26823 + invoke-interface {v3, p1}, Landroid/database/Cursor;->move(I)Z
26825 + goto :goto_3b
26826 +.end method
26828 +.method public moveToFirst()Z
26829 + .registers 4
26831 + const/4 v0, 0x0
26833 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26835 + if-eqz v1, :cond_18
26837 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26839 + if-eqz v1, :cond_18
26841 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26843 + if-nez v1, :cond_18
26845 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26847 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26849 + aget v2, v2, v0
26851 + invoke-interface {v1, v2}, Landroid/database/Cursor;->moveToPosition(I)Z
26853 + move-result v0
26855 + :cond_17
26856 + :goto_17
26857 + return v0
26859 + :cond_18
26860 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26862 + if-eqz v1, :cond_17
26864 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26866 + invoke-interface {v1}, Landroid/database/Cursor;->moveToFirst()Z
26868 + move-result v0
26870 + goto :goto_17
26871 +.end method
26873 +.method public moveToLast()Z
26874 + .registers 5
26876 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26878 + if-eqz v1, :cond_1c
26880 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26882 + if-eqz v1, :cond_1c
26884 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26886 + if-nez v1, :cond_1c
26888 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26890 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26892 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26894 + array-length v3, v3
26896 + add-int/lit8 v3, v3, -0x1
26898 + aget v2, v2, v3
26900 + invoke-interface {v1, v2}, Landroid/database/Cursor;->moveToPosition(I)Z
26902 + move-result v0
26904 + :goto_1b
26905 + return v0
26907 + :cond_1c
26908 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26910 + if-eqz v1, :cond_27
26912 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26914 + invoke-interface {v1}, Landroid/database/Cursor;->moveToLast()Z
26916 + move-result v0
26918 + goto :goto_1b
26920 + :cond_27
26921 + const/4 v0, 0x0
26923 + goto :goto_1b
26924 +.end method
26926 +.method public moveToNext()Z
26927 + .registers 3
26929 + const/4 v0, 0x0
26931 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26933 + if-eqz v1, :cond_29
26935 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26937 + if-eqz v1, :cond_29
26939 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26941 + if-nez v1, :cond_29
26943 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26945 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
26947 + move-result v1
26949 + if-nez v1, :cond_16
26951 + :cond_15
26952 + :goto_15
26953 + return v0
26955 + :cond_16
26956 + const/4 v0, 0x1
26958 + :goto_17
26959 + const/4 v1, 0x1
26961 + if-ne v0, v1, :cond_15
26963 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26965 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
26967 + move-result v1
26969 + if-nez v1, :cond_15
26971 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26973 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
26975 + move-result v0
26977 + goto :goto_17
26979 + :cond_29
26980 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26982 + if-eqz v1, :cond_15
26984 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26986 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
26988 + move-result v0
26990 + goto :goto_15
26991 +.end method
26993 +.method public moveToPosition(I)Z
26994 + .registers 6
26996 + const/4 v1, 0x0
26998 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27000 + if-eqz v2, :cond_1a
27002 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27004 + if-eqz v2, :cond_1a
27006 + iget-boolean v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27008 + if-nez v2, :cond_1a
27010 + :try_start_d
27011 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27013 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27015 + aget v3, v3, p1
27017 + invoke-interface {v2, v3}, Landroid/database/Cursor;->moveToPosition(I)Z
27018 + :try_end_16
27019 + .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_d .. :try_end_16} :catch_18
27021 + move-result v1
27023 + :cond_17
27024 + :goto_17
27025 + return v1
27027 + :catch_18
27028 + move-exception v0
27030 + goto :goto_17
27032 + :cond_1a
27033 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27035 + if-eqz v2, :cond_17
27037 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27039 + invoke-interface {v2, p1}, Landroid/database/Cursor;->moveToPosition(I)Z
27041 + move-result v1
27043 + goto :goto_17
27044 +.end method
27046 +.method public moveToPrevious()Z
27047 + .registers 3
27049 + const/4 v0, 0x0
27051 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27053 + if-eqz v1, :cond_29
27055 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27057 + if-eqz v1, :cond_29
27059 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27061 + if-nez v1, :cond_29
27063 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27065 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27067 + move-result v1
27069 + if-nez v1, :cond_16
27071 + :cond_15
27072 + :goto_15
27073 + return v0
27075 + :cond_16
27076 + const/4 v0, 0x1
27078 + :goto_17
27079 + const/4 v1, 0x1
27081 + if-ne v0, v1, :cond_15
27083 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27085 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
27087 + move-result v1
27089 + if-nez v1, :cond_15
27091 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27093 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27095 + move-result v0
27097 + goto :goto_17
27099 + :cond_29
27100 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27102 + if-eqz v1, :cond_15
27104 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27106 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27108 + move-result v0
27110 + goto :goto_15
27111 +.end method
27113 +.method public registerContentObserver(Landroid/database/ContentObserver;)V
27114 + .registers 3
27116 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27118 + if-eqz v0, :cond_9
27120 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27122 + invoke-interface {v0, p1}, Landroid/database/Cursor;->registerContentObserver(Landroid/database/ContentObserver;)V
27124 + :cond_9
27125 + return-void
27126 +.end method
27128 +.method public registerDataSetObserver(Landroid/database/DataSetObserver;)V
27129 + .registers 3
27131 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27133 + if-eqz v0, :cond_9
27135 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27137 + invoke-interface {v0, p1}, Landroid/database/Cursor;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
27139 + :cond_9
27140 + return-void
27141 +.end method
27143 +.method public requery()Z
27144 + .registers 2
27146 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27148 + if-eqz v0, :cond_b
27150 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27152 + invoke-interface {v0}, Landroid/database/Cursor;->requery()Z
27154 + move-result v0
27156 + :goto_a
27157 + return v0
27159 + :cond_b
27160 + const/4 v0, 0x0
27162 + goto :goto_a
27163 +.end method
27165 +.method public respond(Landroid/os/Bundle;)Landroid/os/Bundle;
27166 + .registers 3
27168 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27170 + if-eqz v0, :cond_b
27172 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27174 + invoke-interface {v0, p1}, Landroid/database/Cursor;->respond(Landroid/os/Bundle;)Landroid/os/Bundle;
27176 + move-result-object v0
27178 + :goto_a
27179 + return-object v0
27181 + :cond_b
27182 + new-instance v0, Landroid/os/Bundle;
27184 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
27186 + goto :goto_a
27187 +.end method
27189 +.method public setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
27190 + .registers 4
27192 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27194 + if-eqz v0, :cond_9
27196 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27198 + invoke-interface {v0, p1, p2}, Landroid/database/Cursor;->setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
27200 + :cond_9
27201 + return-void
27202 +.end method
27204 +.method public unregisterContentObserver(Landroid/database/ContentObserver;)V
27205 + .registers 3
27207 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27209 + if-eqz v0, :cond_9
27211 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27213 + invoke-interface {v0, p1}, Landroid/database/Cursor;->unregisterContentObserver(Landroid/database/ContentObserver;)V
27215 + :cond_9
27216 + return-void
27217 +.end method
27219 +.method public unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
27220 + .registers 3
27222 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27224 + if-eqz v0, :cond_9
27226 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27228 + invoke-interface {v0, p1}, Landroid/database/Cursor;->unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
27230 + :cond_9
27231 + return-void
27232 +.end method
27233 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali opd-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali
27234 --- stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali 1969-12-31 18:00:00.000000000 -0600
27235 +++ opd-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali 2013-01-20 23:05:45.915697379 -0600
27236 @@ -0,0 +1,134 @@
27237 +.class Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27238 +.super Ljava/lang/Thread;
27239 +.source "PrivacyLocationManager.java"
27242 +# annotations
27243 +.annotation system Ldalvik/annotation/EnclosingClass;
27244 + value = Landroid/privacy/surrogate/PrivacyLocationManager;
27245 +.end annotation
27247 +.annotation system Ldalvik/annotation/InnerClass;
27248 + accessFlags = 0x2
27249 + name = "PrivacyLocationUpdater"
27250 +.end annotation
27253 +# instance fields
27254 +.field private intent:Landroid/app/PendingIntent;
27256 +.field private latitude:D
27258 +.field private listener:Landroid/location/LocationListener;
27260 +.field private longitude:D
27262 +.field private provider:Ljava/lang/String;
27264 +.field final synthetic this$0:Landroid/privacy/surrogate/PrivacyLocationManager;
27267 +# direct methods
27268 +.method public constructor <init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
27269 + .registers 9
27271 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->this$0:Landroid/privacy/surrogate/PrivacyLocationManager;
27273 + invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
27275 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27277 + iput-object p3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27279 + iput-object p4, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27281 + iput-wide p5, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->latitude:D
27283 + iput-wide p7, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->longitude:D
27285 + return-void
27286 +.end method
27289 +# virtual methods
27290 +.method public run()V
27291 + .registers 8
27293 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27295 + if-eqz v3, :cond_43
27297 + new-instance v2, Landroid/location/Location;
27299 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27301 + invoke-direct {v2, v3}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
27303 + iget-wide v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->latitude:D
27305 + invoke-virtual {v2, v3, v4}, Landroid/location/Location;->setLatitude(D)V
27307 + iget-wide v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->longitude:D
27309 + invoke-virtual {v2, v3, v4}, Landroid/location/Location;->setLongitude(D)V
27311 + const/4 v1, 0x0
27313 + :goto_16
27314 + const/4 v3, 0x5
27316 + if-ge v1, v3, :cond_43
27318 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27320 + if-eqz v3, :cond_34
27322 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27324 + invoke-interface {v3, v2}, Landroid/location/LocationListener;->onLocationChanged(Landroid/location/Location;)V
27326 + :cond_22
27327 + :goto_22
27328 + :try_start_22
27329 + invoke-static {}, Ljava/lang/Math;->random()D
27331 + move-result-wide v3
27333 + const-wide v5, 0x408f400000000000L
27335 + mul-double/2addr v3, v5
27337 + double-to-int v3, v3
27339 + int-to-long v3, v3
27341 + invoke-static {v3, v4}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->sleep(J)V
27342 + :try_end_31
27343 + .catch Ljava/lang/InterruptedException; {:try_start_22 .. :try_end_31} :catch_3e
27345 + :goto_31
27346 + add-int/lit8 v1, v1, 0x1
27348 + goto :goto_16
27350 + :cond_34
27351 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27353 + if-eqz v3, :cond_22
27355 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27357 + invoke-virtual {v3}, Landroid/app/PendingIntent;->cancel()V
27359 + goto :goto_22
27361 + :catch_3e
27362 + move-exception v0
27364 + invoke-virtual {v0}, Ljava/lang/InterruptedException;->printStackTrace()V
27366 + goto :goto_31
27368 + :cond_43
27369 + return-void
27370 +.end method
27371 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali
27372 --- stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali 1969-12-31 18:00:00.000000000 -0600
27373 +++ opd-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali 2013-01-20 23:05:45.915697379 -0600
27374 @@ -0,0 +1,2091 @@
27375 +.class public final Landroid/privacy/surrogate/PrivacyLocationManager;
27376 +.super Landroid/location/LocationManager;
27377 +.source "PrivacyLocationManager.java"
27380 +# annotations
27381 +.annotation system Ldalvik/annotation/MemberClasses;
27382 + value = {
27383 + Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27385 +.end annotation
27388 +# static fields
27389 +.field private static final CUSTOM_LOCATION_UPDATE_COUNT:I = 0x5
27391 +.field private static final TAG:Ljava/lang/String; = "PrivacyLocationManager"
27394 +# instance fields
27395 +.field private context:Landroid/content/Context;
27397 +.field private lock:Ljava/lang/Object;
27399 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
27402 +# direct methods
27403 +.method public constructor <init>(Landroid/location/ILocationManager;Landroid/content/Context;)V
27404 + .registers 5
27406 + invoke-direct {p0, p2, p1}, Landroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
27408 + new-instance v0, Ljava/lang/Object;
27410 + invoke-direct {v0}, Ljava/lang/Object;-><init>()V
27412 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->lock:Ljava/lang/Object;
27414 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
27416 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
27418 + const-string/jumbo v1, "privacy"
27420 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
27422 + move-result-object v1
27424 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
27426 + move-result-object v1
27428 + invoke-direct {v0, p2, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
27430 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27432 + return-void
27433 +.end method
27435 +.method private requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27436 + .registers 7
27438 + const/4 v2, 0x3
27440 + if-nez p1, :cond_5
27442 + const/4 v0, 0x0
27444 + :goto_4
27445 + return v0
27447 + :cond_5
27448 + invoke-virtual {p1}, Landroid/location/Criteria;->getAccuracy()I
27450 + move-result v0
27452 + const/4 v1, 0x1
27454 + if-eq v0, v1, :cond_24
27456 + invoke-virtual {p1}, Landroid/location/Criteria;->getBearingAccuracy()I
27458 + move-result v0
27460 + if-eq v0, v2, :cond_24
27462 + invoke-virtual {p1}, Landroid/location/Criteria;->getHorizontalAccuracy()I
27464 + move-result v0
27466 + if-eq v0, v2, :cond_24
27468 + invoke-virtual {p1}, Landroid/location/Criteria;->getVerticalAccuracy()I
27470 + move-result v0
27472 + if-eq v0, v2, :cond_24
27474 + invoke-virtual {p1}, Landroid/location/Criteria;->getSpeedAccuracy()I
27476 + move-result v0
27478 + if-ne v0, v2, :cond_2b
27480 + :cond_24
27481 + const-string v0, "gps"
27483 + invoke-direct {p0, v0, p2, p3}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27485 + move-result v0
27487 + goto :goto_4
27489 + :cond_2b
27490 + const-string/jumbo v0, "network"
27492 + invoke-direct {p0, v0, p2, p3}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27494 + move-result v0
27496 + goto :goto_4
27497 +.end method
27499 +.method private requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27500 + .registers 24
27502 + move-object/from16 v0, p0
27504 + iget-object v0, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->lock:Ljava/lang/Object;
27506 + move-object/from16 v19, v0
27508 + monitor-enter v19
27510 + :try_start_7
27511 + move-object/from16 v0, p0
27513 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
27515 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
27517 + move-result-object v2
27519 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
27521 + move-result v3
27523 + move-object/from16 v0, p0
27525 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27527 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
27529 + move-result-object v7
27531 + const/16 v18, 0x0
27533 + if-eqz v7, :cond_239
27535 + const-string v1, "gps"
27537 + move-object/from16 v0, p1
27539 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
27541 + move-result v1
27543 + if-eqz v1, :cond_111
27545 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
27547 + move-result v1
27549 + packed-switch v1, :pswitch_data_25e
27551 + :cond_30
27552 + :goto_30
27553 + monitor-exit v19
27555 + return v18
27557 + :pswitch_32
27558 + move-object/from16 v0, p0
27560 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27562 + const/4 v4, 0x0
27564 + const-string v5, "locationGPS"
27566 + const/4 v6, 0x0
27568 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27570 + goto :goto_30
27572 + :catchall_3e
27573 + move-exception v1
27575 + monitor-exit v19
27576 + :try_end_40
27577 + .catchall {:try_start_7 .. :try_end_40} :catchall_3e
27579 + throw v1
27581 + :pswitch_41
27582 + if-eqz p3, :cond_46
27584 + :try_start_43
27585 + invoke-virtual/range {p3 .. p3}, Landroid/app/PendingIntent;->cancel()V
27587 + :cond_46
27588 + const/16 v18, 0x1
27590 + move-object/from16 v0, p0
27592 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27594 + const/4 v4, 0x1
27596 + const-string v5, "locationGPS"
27598 + const/4 v6, 0x0
27600 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27601 + :try_end_53
27602 + .catchall {:try_start_43 .. :try_end_53} :catchall_3e
27604 + goto :goto_30
27606 + :pswitch_54
27607 + :try_start_54
27608 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27610 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27612 + move-result-object v1
27614 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27616 + move-result-wide v13
27618 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27620 + move-result-object v1
27622 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27624 + move-result-wide v15
27626 + move-object/from16 v9, p0
27628 + move-object/from16 v10, p1
27630 + move-object/from16 v11, p2
27632 + move-object/from16 v12, p3
27634 + 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
27636 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27637 + :try_end_74
27638 + .catchall {:try_start_54 .. :try_end_74} :catchall_3e
27639 + .catch Ljava/lang/NumberFormatException; {:try_start_54 .. :try_end_74} :catch_a6
27641 + const/16 v18, 0x1
27643 + :goto_76
27644 + :try_start_76
27645 + move-object/from16 v0, p0
27647 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27649 + const/4 v4, 0x2
27651 + const-string v5, "locationGPS"
27653 + new-instance v6, Ljava/lang/StringBuilder;
27655 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
27657 + const-string v8, "Lat: "
27659 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27661 + move-result-object v6
27663 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27665 + move-result-object v8
27667 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27669 + move-result-object v6
27671 + const-string v8, " Lon: "
27673 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27675 + move-result-object v6
27677 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27679 + move-result-object v8
27681 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27683 + move-result-object v6
27685 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
27687 + move-result-object v6
27689 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27691 + goto :goto_30
27693 + :catch_a6
27694 + move-exception v17
27696 + const-string v1, "PrivacyLocationManager"
27698 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
27700 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
27701 + :try_end_af
27702 + .catchall {:try_start_76 .. :try_end_af} :catchall_3e
27704 + const/16 v18, 0x1
27706 + goto :goto_76
27708 + :pswitch_b2
27709 + :try_start_b2
27710 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27712 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27714 + move-result-object v1
27716 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27718 + move-result-wide v13
27720 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27722 + move-result-object v1
27724 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27726 + move-result-wide v15
27728 + move-object/from16 v9, p0
27730 + move-object/from16 v10, p1
27732 + move-object/from16 v11, p2
27734 + move-object/from16 v12, p3
27736 + 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
27738 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27739 + :try_end_d2
27740 + .catchall {:try_start_b2 .. :try_end_d2} :catchall_3e
27741 + .catch Ljava/lang/NumberFormatException; {:try_start_b2 .. :try_end_d2} :catch_105
27743 + const/16 v18, 0x1
27745 + :goto_d4
27746 + :try_start_d4
27747 + move-object/from16 v0, p0
27749 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27751 + const/4 v4, 0x3
27753 + const-string v5, "locationGPS"
27755 + new-instance v6, Ljava/lang/StringBuilder;
27757 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
27759 + const-string v8, "Lat: "
27761 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27763 + move-result-object v6
27765 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27767 + move-result-object v8
27769 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27771 + move-result-object v6
27773 + const-string v8, " Lon: "
27775 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27777 + move-result-object v6
27779 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27781 + move-result-object v8
27783 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27785 + move-result-object v6
27787 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
27789 + move-result-object v6
27791 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27793 + goto/16 :goto_30
27795 + :catch_105
27796 + move-exception v17
27798 + const-string v1, "PrivacyLocationManager"
27800 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
27802 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
27804 + const/16 v18, 0x1
27806 + goto :goto_d4
27808 + :cond_111
27809 + const-string/jumbo v1, "network"
27811 + move-object/from16 v0, p1
27813 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
27815 + move-result v1
27817 + if-eqz v1, :cond_204
27819 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
27821 + move-result v1
27823 + packed-switch v1, :pswitch_data_26a
27825 + goto/16 :goto_30
27827 + :pswitch_125
27828 + move-object/from16 v0, p0
27830 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27832 + const/4 v4, 0x0
27834 + const-string v5, "locationNetwork"
27836 + const/4 v6, 0x0
27838 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27840 + goto/16 :goto_30
27842 + :pswitch_132
27843 + if-eqz p3, :cond_137
27845 + invoke-virtual/range {p3 .. p3}, Landroid/app/PendingIntent;->cancel()V
27847 + :cond_137
27848 + const/16 v18, 0x1
27850 + move-object/from16 v0, p0
27852 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27854 + const/4 v4, 0x1
27856 + const-string v5, "locationNetwork"
27858 + const/4 v6, 0x0
27860 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27861 + :try_end_144
27862 + .catchall {:try_start_d4 .. :try_end_144} :catchall_3e
27864 + goto/16 :goto_30
27866 + :pswitch_146
27867 + :try_start_146
27868 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27870 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
27872 + move-result-object v1
27874 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27876 + move-result-wide v13
27878 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
27880 + move-result-object v1
27882 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27884 + move-result-wide v15
27886 + move-object/from16 v9, p0
27888 + move-object/from16 v10, p1
27890 + move-object/from16 v11, p2
27892 + move-object/from16 v12, p3
27894 + 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
27896 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27897 + :try_end_166
27898 + .catchall {:try_start_146 .. :try_end_166} :catchall_3e
27899 + .catch Ljava/lang/NumberFormatException; {:try_start_146 .. :try_end_166} :catch_199
27901 + const/16 v18, 0x1
27903 + :goto_168
27904 + :try_start_168
27905 + move-object/from16 v0, p0
27907 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27909 + const/4 v4, 0x2
27911 + const-string v5, "locationNetwork"
27913 + new-instance v6, Ljava/lang/StringBuilder;
27915 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
27917 + const-string v8, "Lat: "
27919 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27921 + move-result-object v6
27923 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
27925 + move-result-object v8
27927 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27929 + move-result-object v6
27931 + const-string v8, " Lon: "
27933 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27935 + move-result-object v6
27937 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
27939 + move-result-object v8
27941 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27943 + move-result-object v6
27945 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
27947 + move-result-object v6
27949 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27951 + goto/16 :goto_30
27953 + :catch_199
27954 + move-exception v17
27956 + const-string v1, "PrivacyLocationManager"
27958 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
27960 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
27961 + :try_end_1a2
27962 + .catchall {:try_start_168 .. :try_end_1a2} :catchall_3e
27964 + const/16 v18, 0x1
27966 + goto :goto_168
27968 + :pswitch_1a5
27969 + :try_start_1a5
27970 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27972 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
27974 + move-result-object v1
27976 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27978 + move-result-wide v13
27980 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
27982 + move-result-object v1
27984 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27986 + move-result-wide v15
27988 + move-object/from16 v9, p0
27990 + move-object/from16 v10, p1
27992 + move-object/from16 v11, p2
27994 + move-object/from16 v12, p3
27996 + 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
27998 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27999 + :try_end_1c5
28000 + .catchall {:try_start_1a5 .. :try_end_1c5} :catchall_3e
28001 + .catch Ljava/lang/NumberFormatException; {:try_start_1a5 .. :try_end_1c5} :catch_1f8
28003 + const/16 v18, 0x1
28005 + :goto_1c7
28006 + :try_start_1c7
28007 + move-object/from16 v0, p0
28009 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28011 + const/4 v4, 0x3
28013 + const-string v5, "locationNetwork"
28015 + new-instance v6, Ljava/lang/StringBuilder;
28017 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
28019 + const-string v8, "Lat: "
28021 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28023 + move-result-object v6
28025 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28027 + move-result-object v8
28029 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28031 + move-result-object v6
28033 + const-string v8, " Lon: "
28035 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28037 + move-result-object v6
28039 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28041 + move-result-object v8
28043 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28045 + move-result-object v6
28047 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28049 + move-result-object v6
28051 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28053 + goto/16 :goto_30
28055 + :catch_1f8
28056 + move-exception v17
28058 + const-string v1, "PrivacyLocationManager"
28060 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28062 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28064 + const/16 v18, 0x1
28066 + goto :goto_1c7
28068 + :cond_204
28069 + const-string/jumbo v1, "passive"
28071 + move-object/from16 v0, p1
28073 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28075 + move-result v1
28077 + if-eqz v1, :cond_30
28079 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28081 + move-result v1
28083 + if-nez v1, :cond_22a
28085 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28087 + move-result v1
28089 + if-nez v1, :cond_22a
28091 + const/16 v18, 0x0
28093 + move-object/from16 v0, p0
28095 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28097 + const/4 v4, 0x0
28099 + const-string v5, "locationGPS"
28101 + const/4 v6, 0x0
28103 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28105 + goto/16 :goto_30
28107 + :cond_22a
28108 + const/16 v18, 0x1
28110 + move-object/from16 v0, p0
28112 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28114 + const/4 v4, 0x1
28116 + const-string v5, "locationGPS"
28118 + const/4 v6, 0x0
28120 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28122 + goto/16 :goto_30
28124 + :cond_239
28125 + const-string/jumbo v1, "network"
28127 + move-object/from16 v0, p1
28129 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28131 + move-result v1
28133 + if-eqz v1, :cond_251
28135 + move-object/from16 v0, p0
28137 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28139 + const/4 v4, 0x0
28141 + const-string v5, "locationNetwork"
28143 + const/4 v6, 0x0
28145 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28147 + goto/16 :goto_30
28149 + :cond_251
28150 + move-object/from16 v0, p0
28152 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28154 + const/4 v4, 0x0
28156 + const-string v5, "locationGPS"
28158 + const/4 v6, 0x0
28160 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28161 + :try_end_25c
28162 + .catchall {:try_start_1c7 .. :try_end_25c} :catchall_3e
28164 + goto/16 :goto_30
28166 + :pswitch_data_25e
28167 + .packed-switch 0x0
28168 + :pswitch_32
28169 + :pswitch_41
28170 + :pswitch_54
28171 + :pswitch_b2
28172 + .end packed-switch
28174 + :pswitch_data_26a
28175 + .packed-switch 0x0
28176 + :pswitch_125
28177 + :pswitch_132
28178 + :pswitch_146
28179 + :pswitch_1a5
28180 + .end packed-switch
28181 +.end method
28184 +# virtual methods
28185 +.method public addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z
28186 + .registers 10
28188 + const/4 v5, 0x0
28190 + const/4 v7, 0x0
28192 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28194 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
28196 + move-result-object v1
28198 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
28200 + move-result v2
28202 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28204 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
28206 + move-result-object v6
28208 + if-eqz v6, :cond_24
28210 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28212 + move-result v0
28214 + if-eqz v0, :cond_24
28216 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28218 + const/4 v3, 0x1
28220 + const-string v4, "locationGPS"
28222 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28224 + move v0, v7
28226 + :goto_23
28227 + return v0
28229 + :cond_24
28230 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28232 + const-string v4, "locationGPS"
28234 + move v3, v7
28236 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28238 + invoke-super {p0, p1}, Landroid/location/LocationManager;->addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z
28240 + move-result v0
28242 + goto :goto_23
28243 +.end method
28245 +.method public getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28246 + .registers 14
28248 + const/4 v11, 0x3
28250 + const/4 v10, 0x2
28252 + const/4 v8, 0x1
28254 + const/4 v3, 0x0
28256 + const/4 v5, 0x0
28258 + if-nez p1, :cond_c
28260 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28262 + move-result-object v7
28264 + :cond_b
28265 + :goto_b
28266 + return-object v7
28268 + :cond_c
28269 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28271 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
28273 + move-result-object v1
28275 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
28277 + move-result v2
28279 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28281 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
28283 + move-result-object v6
28285 + const/4 v7, 0x0
28287 + if-eqz v6, :cond_22c
28289 + const-string v0, "gps"
28291 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28293 + move-result v0
28295 + if-eqz v0, :cond_ff
28297 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28299 + move-result v0
28301 + packed-switch v0, :pswitch_data_29a
28303 + goto :goto_b
28305 + :pswitch_2f
28306 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28308 + move-result-object v7
28310 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28312 + const-string v4, "locationGPS"
28314 + if-eqz v7, :cond_5e
28316 + new-instance v5, Ljava/lang/StringBuilder;
28318 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28320 + const-string v8, "Lat: "
28322 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28324 + move-result-object v5
28326 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28328 + move-result-wide v8
28330 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28332 + move-result-object v5
28334 + const-string v8, " Lon: "
28336 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28338 + move-result-object v5
28340 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28342 + move-result-wide v8
28344 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28346 + move-result-object v5
28348 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28350 + move-result-object v5
28352 + :cond_5e
28353 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28355 + goto :goto_b
28357 + :pswitch_62
28358 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28360 + const-string v4, "locationGPS"
28362 + move v3, v8
28364 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28366 + goto :goto_b
28368 + :pswitch_6b
28369 + new-instance v7, Landroid/location/Location;
28371 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28373 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28375 + move-result-object v0
28377 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28379 + move-result-wide v3
28381 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28383 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28385 + move-result-object v0
28387 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28389 + move-result-wide v3
28391 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28393 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28395 + const-string v4, "locationGPS"
28397 + new-instance v3, Ljava/lang/StringBuilder;
28399 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28401 + const-string v5, "Lat: "
28403 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28405 + move-result-object v3
28407 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28409 + move-result-wide v8
28411 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28413 + move-result-object v3
28415 + const-string v5, " Lon: "
28417 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28419 + move-result-object v3
28421 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28423 + move-result-wide v8
28425 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28427 + move-result-object v3
28429 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28431 + move-result-object v5
28433 + move v3, v10
28435 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28437 + goto/16 :goto_b
28439 + :pswitch_b5
28440 + new-instance v7, Landroid/location/Location;
28442 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28444 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28446 + move-result-object v0
28448 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28450 + move-result-wide v3
28452 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28454 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28456 + move-result-object v0
28458 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28460 + move-result-wide v3
28462 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28464 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28466 + const-string v4, "locationGPS"
28468 + new-instance v3, Ljava/lang/StringBuilder;
28470 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28472 + const-string v5, "Lat: "
28474 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28476 + move-result-object v3
28478 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28480 + move-result-wide v8
28482 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28484 + move-result-object v3
28486 + const-string v5, " Lon: "
28488 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28490 + move-result-object v3
28492 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28494 + move-result-wide v8
28496 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28498 + move-result-object v3
28500 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28502 + move-result-object v5
28504 + move v3, v11
28506 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28508 + goto/16 :goto_b
28510 + :cond_ff
28511 + const-string/jumbo v0, "network"
28513 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28515 + move-result v0
28517 + if-eqz v0, :cond_1e3
28519 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28521 + move-result v0
28523 + packed-switch v0, :pswitch_data_2a6
28525 + goto/16 :goto_b
28527 + :pswitch_111
28528 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28530 + move-result-object v7
28532 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28534 + const-string v4, "locationNetwork"
28536 + if-eqz v7, :cond_140
28538 + new-instance v5, Ljava/lang/StringBuilder;
28540 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28542 + const-string v8, "Lat: "
28544 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28546 + move-result-object v5
28548 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28550 + move-result-wide v8
28552 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28554 + move-result-object v5
28556 + const-string v8, " Lon: "
28558 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28560 + move-result-object v5
28562 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28564 + move-result-wide v8
28566 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28568 + move-result-object v5
28570 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28572 + move-result-object v5
28574 + :cond_140
28575 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28577 + goto/16 :goto_b
28579 + :pswitch_145
28580 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28582 + const-string v4, "locationNetwork"
28584 + move v3, v8
28586 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28588 + goto/16 :goto_b
28590 + :pswitch_14f
28591 + new-instance v7, Landroid/location/Location;
28593 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28595 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28597 + move-result-object v0
28599 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28601 + move-result-wide v3
28603 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28605 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28607 + move-result-object v0
28609 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28611 + move-result-wide v3
28613 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28615 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28617 + const-string v4, "locationNetwork"
28619 + new-instance v3, Ljava/lang/StringBuilder;
28621 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28623 + const-string v5, "Lat: "
28625 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28627 + move-result-object v3
28629 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28631 + move-result-wide v8
28633 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28635 + move-result-object v3
28637 + const-string v5, " Lon: "
28639 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28641 + move-result-object v3
28643 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28645 + move-result-wide v8
28647 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28649 + move-result-object v3
28651 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28653 + move-result-object v5
28655 + move v3, v10
28657 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28659 + goto/16 :goto_b
28661 + :pswitch_199
28662 + new-instance v7, Landroid/location/Location;
28664 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28666 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28668 + move-result-object v0
28670 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28672 + move-result-wide v3
28674 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28676 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28678 + move-result-object v0
28680 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28682 + move-result-wide v3
28684 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28686 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28688 + const-string v4, "locationNetwork"
28690 + new-instance v3, Ljava/lang/StringBuilder;
28692 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28694 + const-string v5, "Lat: "
28696 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28698 + move-result-object v3
28700 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28702 + move-result-wide v8
28704 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28706 + move-result-object v3
28708 + const-string v5, " Lon: "
28710 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28712 + move-result-object v3
28714 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28716 + move-result-wide v8
28718 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28720 + move-result-object v3
28722 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28724 + move-result-object v5
28726 + move v3, v11
28728 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28730 + goto/16 :goto_b
28732 + :cond_1e3
28733 + const-string/jumbo v0, "passive"
28735 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28737 + move-result v0
28739 + if-eqz v0, :cond_b
28741 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28743 + move-result v0
28745 + if-nez v0, :cond_b
28747 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28749 + move-result v0
28751 + if-nez v0, :cond_b
28753 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28755 + move-result-object v7
28757 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28759 + const-string v4, "locationGPS"
28761 + if-eqz v7, :cond_227
28763 + new-instance v5, Ljava/lang/StringBuilder;
28765 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28767 + const-string v8, "Lat: "
28769 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28771 + move-result-object v5
28773 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28775 + move-result-wide v8
28777 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28779 + move-result-object v5
28781 + const-string v8, " Lon: "
28783 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28785 + move-result-object v5
28787 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28789 + move-result-wide v8
28791 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28793 + move-result-object v5
28795 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28797 + move-result-object v5
28799 + :cond_227
28800 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28802 + goto/16 :goto_b
28804 + :cond_22c
28805 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28807 + move-result-object v7
28809 + const-string/jumbo v0, "network"
28811 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28813 + move-result v0
28815 + if-eqz v0, :cond_269
28817 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28819 + const-string v4, "locationNetwork"
28821 + if-eqz v7, :cond_264
28823 + new-instance v5, Ljava/lang/StringBuilder;
28825 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28827 + const-string v8, "Lat: "
28829 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28831 + move-result-object v5
28833 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28835 + move-result-wide v8
28837 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28839 + move-result-object v5
28841 + const-string v8, " Lon: "
28843 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28845 + move-result-object v5
28847 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28849 + move-result-wide v8
28851 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28853 + move-result-object v5
28855 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28857 + move-result-object v5
28859 + :cond_264
28860 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28862 + goto/16 :goto_b
28864 + :cond_269
28865 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28867 + const-string v4, "locationGPS"
28869 + if-eqz v7, :cond_294
28871 + new-instance v5, Ljava/lang/StringBuilder;
28873 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28875 + const-string v8, "Lat: "
28877 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28879 + move-result-object v5
28881 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28883 + move-result-wide v8
28885 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28887 + move-result-object v5
28889 + const-string v8, " Lon: "
28891 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28893 + move-result-object v5
28895 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28897 + move-result-wide v8
28899 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28901 + move-result-object v5
28903 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28905 + move-result-object v5
28907 + :cond_294
28908 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28910 + goto/16 :goto_b
28912 + nop
28914 + :pswitch_data_29a
28915 + .packed-switch 0x0
28916 + :pswitch_2f
28917 + :pswitch_62
28918 + :pswitch_6b
28919 + :pswitch_b5
28920 + .end packed-switch
28922 + :pswitch_data_2a6
28923 + .packed-switch 0x0
28924 + :pswitch_111
28925 + :pswitch_145
28926 + :pswitch_14f
28927 + :pswitch_199
28928 + .end packed-switch
28929 +.end method
28931 +.method public getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
28932 + .registers 7
28934 + if-nez p1, :cond_7
28936 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
28938 + move-result-object v0
28940 + :cond_6
28941 + :goto_6
28942 + return-object v0
28944 + :cond_7
28945 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28947 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28949 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
28951 + move-result-object v3
28953 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
28955 + move-result v4
28957 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
28959 + move-result-object v1
28961 + const/4 v0, 0x0
28963 + if-eqz v1, :cond_5f
28965 + const-string v2, "gps"
28967 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28969 + move-result v2
28971 + if-eqz v2, :cond_2f
28973 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28975 + move-result v2
28977 + packed-switch v2, :pswitch_data_64
28979 + :pswitch_29
28980 + goto :goto_6
28982 + :pswitch_2a
28983 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
28985 + move-result-object v0
28987 + goto :goto_6
28989 + :cond_2f
28990 + const-string/jumbo v2, "network"
28992 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28994 + move-result v2
28996 + if-eqz v2, :cond_45
28998 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29000 + move-result v2
29002 + packed-switch v2, :pswitch_data_70
29004 + :pswitch_3f
29005 + goto :goto_6
29007 + :pswitch_40
29008 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29010 + move-result-object v0
29012 + goto :goto_6
29014 + :cond_45
29015 + const-string/jumbo v2, "passive"
29017 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29019 + move-result v2
29021 + if-eqz v2, :cond_6
29023 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29025 + move-result v2
29027 + if-eqz v2, :cond_5a
29029 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29031 + move-result v2
29033 + if-nez v2, :cond_6
29035 + :cond_5a
29036 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29038 + move-result-object v0
29040 + goto :goto_6
29042 + :cond_5f
29043 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29045 + move-result-object v0
29047 + goto :goto_6
29049 + :pswitch_data_64
29050 + .packed-switch 0x0
29051 + :pswitch_2a
29052 + :pswitch_29
29053 + :pswitch_2a
29054 + :pswitch_2a
29055 + .end packed-switch
29057 + :pswitch_data_70
29058 + .packed-switch 0x0
29059 + :pswitch_40
29060 + :pswitch_3f
29061 + :pswitch_40
29062 + :pswitch_40
29063 + .end packed-switch
29064 +.end method
29066 +.method public isProviderEnabled(Ljava/lang/String;)Z
29067 + .registers 7
29069 + if-nez p1, :cond_7
29071 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29073 + move-result v0
29075 + :cond_6
29076 + :goto_6
29077 + :pswitch_6
29078 + return v0
29080 + :cond_7
29081 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29083 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
29085 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29087 + move-result-object v3
29089 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29091 + move-result v4
29093 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29095 + move-result-object v1
29097 + const/4 v0, 0x0
29099 + if-eqz v1, :cond_65
29101 + const-string v2, "gps"
29103 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29105 + move-result v2
29107 + if-eqz v2, :cond_31
29109 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29111 + move-result v2
29113 + packed-switch v2, :pswitch_data_6a
29115 + goto :goto_6
29117 + :pswitch_2a
29118 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29120 + move-result v0
29122 + goto :goto_6
29124 + :pswitch_2f
29125 + const/4 v0, 0x1
29127 + goto :goto_6
29129 + :cond_31
29130 + const-string/jumbo v2, "network"
29132 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29134 + move-result v2
29136 + if-eqz v2, :cond_49
29138 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29140 + move-result v2
29142 + packed-switch v2, :pswitch_data_76
29144 + goto :goto_6
29146 + :pswitch_42
29147 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29149 + move-result v0
29151 + goto :goto_6
29153 + :pswitch_47
29154 + const/4 v0, 0x1
29156 + goto :goto_6
29158 + :cond_49
29159 + const-string/jumbo v2, "passive"
29161 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29163 + move-result v2
29165 + if-eqz v2, :cond_6
29167 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29169 + move-result v2
29171 + if-eqz v2, :cond_5e
29173 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29175 + move-result v2
29177 + if-nez v2, :cond_63
29179 + :cond_5e
29180 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29182 + move-result v0
29184 + goto :goto_6
29186 + :cond_63
29187 + const/4 v0, 0x0
29189 + goto :goto_6
29191 + :cond_65
29192 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29194 + move-result v0
29196 + goto :goto_6
29198 + :pswitch_data_6a
29199 + .packed-switch 0x0
29200 + :pswitch_2a
29201 + :pswitch_6
29202 + :pswitch_2f
29203 + :pswitch_2f
29204 + .end packed-switch
29206 + :pswitch_data_76
29207 + .packed-switch 0x0
29208 + :pswitch_42
29209 + :pswitch_6
29210 + :pswitch_47
29211 + :pswitch_47
29212 + .end packed-switch
29213 +.end method
29215 +.method public requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29216 + .registers 7
29218 + if-eqz p4, :cond_4
29220 + if-nez p5, :cond_8
29222 + :cond_4
29223 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29225 + :cond_7
29226 + :goto_7
29227 + return-void
29229 + :cond_8
29230 + const/4 v0, 0x0
29232 + invoke-direct {p0, p4, v0, p5}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29234 + move-result v0
29236 + if-nez v0, :cond_7
29238 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29240 + goto :goto_7
29241 +.end method
29243 +.method public requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29244 + .registers 8
29246 + if-eqz p4, :cond_4
29248 + if-nez p5, :cond_8
29250 + :cond_4
29251 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29253 + :cond_7
29254 + :goto_7
29255 + return-void
29257 + :cond_8
29258 + const/4 v0, 0x0
29260 + invoke-direct {p0, p4, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29262 + move-result v0
29264 + if-nez v0, :cond_7
29266 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29268 + goto :goto_7
29269 +.end method
29271 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29272 + .registers 7
29274 + if-eqz p1, :cond_4
29276 + if-nez p5, :cond_8
29278 + :cond_4
29279 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29281 + :cond_7
29282 + :goto_7
29283 + return-void
29285 + :cond_8
29286 + const/4 v0, 0x0
29288 + invoke-direct {p0, p1, v0, p5}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29290 + move-result v0
29292 + if-nez v0, :cond_7
29294 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29296 + goto :goto_7
29297 +.end method
29299 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29300 + .registers 7
29302 + if-eqz p1, :cond_4
29304 + if-nez p5, :cond_8
29306 + :cond_4
29307 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29309 + :cond_7
29310 + :goto_7
29311 + return-void
29313 + :cond_8
29314 + const/4 v0, 0x0
29316 + invoke-direct {p0, p1, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29318 + move-result v0
29320 + if-nez v0, :cond_7
29322 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29324 + goto :goto_7
29325 +.end method
29327 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29328 + .registers 8
29330 + if-eqz p1, :cond_4
29332 + if-nez p5, :cond_8
29334 + :cond_4
29335 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29337 + :cond_7
29338 + :goto_7
29339 + return-void
29341 + :cond_8
29342 + const/4 v0, 0x0
29344 + invoke-direct {p0, p1, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29346 + move-result v0
29348 + if-nez v0, :cond_7
29350 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29352 + goto :goto_7
29353 +.end method
29355 +.method public requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29356 + .registers 4
29358 + if-eqz p1, :cond_4
29360 + if-nez p2, :cond_8
29362 + :cond_4
29363 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29365 + :cond_7
29366 + :goto_7
29367 + return-void
29369 + :cond_8
29370 + const/4 v0, 0x0
29372 + invoke-direct {p0, p1, v0, p2}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29374 + move-result v0
29376 + if-nez v0, :cond_7
29378 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29380 + goto :goto_7
29381 +.end method
29383 +.method public requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29384 + .registers 5
29386 + if-eqz p1, :cond_4
29388 + if-nez p2, :cond_8
29390 + :cond_4
29391 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29393 + :cond_7
29394 + :goto_7
29395 + return-void
29397 + :cond_8
29398 + const/4 v0, 0x0
29400 + invoke-direct {p0, p1, p2, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29402 + move-result v0
29404 + if-nez v0, :cond_7
29406 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29408 + goto :goto_7
29409 +.end method
29411 +.method public requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29412 + .registers 4
29414 + if-eqz p1, :cond_4
29416 + if-nez p2, :cond_8
29418 + :cond_4
29419 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29421 + :cond_7
29422 + :goto_7
29423 + return-void
29425 + :cond_8
29426 + const/4 v0, 0x0
29428 + invoke-direct {p0, p1, v0, p2}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29430 + move-result v0
29432 + if-nez v0, :cond_7
29434 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29436 + goto :goto_7
29437 +.end method
29439 +.method public requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29440 + .registers 5
29442 + if-eqz p1, :cond_4
29444 + if-nez p2, :cond_8
29446 + :cond_4
29447 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29449 + :cond_7
29450 + :goto_7
29451 + return-void
29453 + :cond_8
29454 + const/4 v0, 0x0
29456 + invoke-direct {p0, p1, p2, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29458 + move-result v0
29460 + if-nez v0, :cond_7
29462 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29464 + goto :goto_7
29465 +.end method
29466 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali
29467 --- stock-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali 1969-12-31 18:00:00.000000000 -0600
29468 +++ opd-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali 2013-01-20 23:05:45.919697329 -0600
29469 @@ -0,0 +1,1385 @@
29470 +.class public final Landroid/privacy/surrogate/PrivacyTelephonyManager;
29471 +.super Landroid/telephony/TelephonyManager;
29472 +.source "PrivacyTelephonyManager.java"
29475 +# static fields
29476 +.field private static final NETWORK_TYPES:[I = null
29478 +.field private static final PHONE_TYPES:[I = null
29480 +.field private static final TAG:Ljava/lang/String; = "PrivacyTelephonyManager"
29483 +# instance fields
29484 +.field private context:Landroid/content/Context;
29486 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
29489 +# direct methods
29490 +.method static constructor <clinit>()V
29491 + .registers 1
29493 + const/4 v0, 0x4
29495 + new-array v0, v0, [I
29497 + fill-array-data v0, :array_12
29499 + sput-object v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->PHONE_TYPES:[I
29501 + const/16 v0, 0x10
29503 + new-array v0, v0, [I
29505 + fill-array-data v0, :array_1e
29507 + sput-object v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
29509 + return-void
29511 + :array_12
29512 + .array-data 0x4
29513 + 0x0t 0x0t 0x0t 0x0t
29514 + 0x1t 0x0t 0x0t 0x0t
29515 + 0x2t 0x0t 0x0t 0x0t
29516 + 0x3t 0x0t 0x0t 0x0t
29517 + .end array-data
29519 + :array_1e
29520 + .array-data 0x4
29521 + 0x0t 0x0t 0x0t 0x0t
29522 + 0x1t 0x0t 0x0t 0x0t
29523 + 0x2t 0x0t 0x0t 0x0t
29524 + 0x3t 0x0t 0x0t 0x0t
29525 + 0x4t 0x0t 0x0t 0x0t
29526 + 0x5t 0x0t 0x0t 0x0t
29527 + 0x6t 0x0t 0x0t 0x0t
29528 + 0x7t 0x0t 0x0t 0x0t
29529 + 0x8t 0x0t 0x0t 0x0t
29530 + 0x9t 0x0t 0x0t 0x0t
29531 + 0xat 0x0t 0x0t 0x0t
29532 + 0xbt 0x0t 0x0t 0x0t
29533 + 0xct 0x0t 0x0t 0x0t
29534 + 0xdt 0x0t 0x0t 0x0t
29535 + 0xet 0x0t 0x0t 0x0t
29536 + 0xft 0x0t 0x0t 0x0t
29537 + .end array-data
29538 +.end method
29540 +.method public constructor <init>(Landroid/content/Context;)V
29541 + .registers 4
29543 + invoke-direct {p0, p1}, Landroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V
29545 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29547 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
29549 + const-string/jumbo v1, "privacy"
29551 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
29553 + move-result-object v1
29555 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
29557 + move-result-object v1
29559 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
29561 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29563 + return-void
29564 +.end method
29566 +.method private getNetworkInfo()Ljava/lang/String;
29567 + .registers 8
29569 + const/4 v5, 0x0
29571 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29573 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29575 + move-result-object v1
29577 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29579 + move-result v2
29581 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29583 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29585 + move-result-object v6
29587 + if-eqz v6, :cond_25
29589 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
29591 + move-result v0
29593 + if-eqz v0, :cond_25
29595 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29597 + const/4 v3, 0x1
29599 + const-string/jumbo v4, "networkInfoCurrent"
29601 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29603 + const-string v5, ""
29605 + :goto_24
29606 + return-object v5
29608 + :cond_25
29609 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29611 + const/4 v3, 0x0
29613 + const-string/jumbo v4, "networkInfoCurrent"
29615 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29617 + goto :goto_24
29618 +.end method
29620 +.method private getSimInfo()Ljava/lang/String;
29621 + .registers 8
29623 + const/4 v5, 0x0
29625 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29627 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29629 + move-result-object v1
29631 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29633 + move-result v2
29635 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29637 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29639 + move-result-object v6
29641 + if-eqz v6, :cond_25
29643 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
29645 + move-result v0
29647 + if-eqz v0, :cond_25
29649 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29651 + const/4 v3, 0x1
29653 + const-string/jumbo v4, "networkInfoSIM"
29655 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29657 + const-string v5, ""
29659 + :goto_24
29660 + return-object v5
29662 + :cond_25
29663 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29665 + const/4 v3, 0x0
29667 + const-string/jumbo v4, "networkInfoSIM"
29669 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29671 + goto :goto_24
29672 +.end method
29675 +# virtual methods
29676 +.method public getAllCellInfo()Ljava/util/List;
29677 + .registers 6
29678 + .annotation system Ldalvik/annotation/Signature;
29679 + value = {
29680 + "()",
29681 + "Ljava/util/List",
29682 + "<",
29683 + "Landroid/telephony/CellInfo;",
29684 + ">;"
29686 + .end annotation
29688 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29690 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29692 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29694 + move-result-object v3
29696 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29698 + move-result v4
29700 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29702 + move-result-object v1
29704 + const/4 v0, 0x0
29706 + if-eqz v1, :cond_1f
29708 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29710 + move-result v2
29712 + const/4 v3, 0x1
29714 + if-ne v2, v3, :cond_20
29716 + new-instance v0, Ljava/util/ArrayList;
29718 + invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
29720 + :cond_1f
29721 + :goto_1f
29722 + return-object v0
29724 + :cond_20
29725 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29727 + move-result v2
29729 + if-eqz v2, :cond_2c
29731 + new-instance v0, Ljava/util/ArrayList;
29733 + invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
29735 + goto :goto_1f
29737 + :cond_2c
29738 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getAllCellInfo()Ljava/util/List;
29740 + move-result-object v0
29742 + goto :goto_1f
29743 +.end method
29745 +.method public getCellLocation()Landroid/telephony/CellLocation;
29746 + .registers 10
29748 + const/4 v7, 0x0
29750 + :try_start_1
29751 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29753 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29755 + move-result-object v1
29757 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29759 + move-result v2
29761 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29763 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29765 + move-result-object v6
29767 + if-eqz v6, :cond_2c
29769 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29771 + move-result v0
29773 + if-nez v0, :cond_1f
29775 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29777 + move-result v0
29779 + if-eqz v0, :cond_2c
29781 + :cond_1f
29782 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29784 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29786 + move-result v3
29788 + const-string v4, "locationNetwork"
29790 + const/4 v5, 0x0
29792 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29794 + :goto_2b
29795 + return-object v7
29797 + :cond_2c
29798 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29800 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29802 + move-result v3
29804 + const-string v4, "locationNetwork"
29806 + const/4 v5, 0x0
29808 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29810 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getCellLocation()Landroid/telephony/CellLocation;
29811 + :try_end_3b
29812 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_3b} :catch_3d
29814 + move-result-object v7
29816 + goto :goto_2b
29818 + :catch_3d
29819 + move-exception v8
29821 + goto :goto_2b
29822 +.end method
29824 +.method public getCompleteVoiceMailNumber()Ljava/lang/String;
29825 + .registers 9
29827 + :try_start_0
29828 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29830 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29832 + move-result-object v1
29834 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29836 + move-result v2
29838 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29840 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29842 + move-result-object v6
29844 + const-string v5, ""
29846 + if-eqz v6, :cond_2a
29848 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
29850 + move-result v0
29852 + if-eqz v0, :cond_2a
29854 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
29856 + move-result-object v5
29858 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29860 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
29862 + move-result v3
29864 + const-string v4, "line1Number"
29866 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29868 + :goto_29
29869 + return-object v5
29871 + :cond_2a
29872 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getCompleteVoiceMailNumber()Ljava/lang/String;
29874 + move-result-object v5
29876 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29878 + const/4 v3, 0x0
29880 + const-string v4, "line1Number"
29882 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29883 + :try_end_36
29884 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_36} :catch_37
29886 + goto :goto_29
29888 + :catch_37
29889 + move-exception v7
29891 + const/4 v5, 0x0
29893 + goto :goto_29
29894 +.end method
29896 +.method public getDeviceId()Ljava/lang/String;
29897 + .registers 8
29899 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29901 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29903 + move-result-object v1
29905 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29907 + move-result v2
29909 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29911 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29913 + move-result-object v6
29915 + if-eqz v6, :cond_28
29917 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
29919 + move-result v0
29921 + if-eqz v0, :cond_28
29923 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
29925 + move-result-object v5
29927 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29929 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
29931 + move-result v3
29933 + const-string v4, "deviceID"
29935 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29937 + :goto_27
29938 + return-object v5
29940 + :cond_28
29941 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;
29943 + move-result-object v5
29945 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29947 + const/4 v3, 0x0
29949 + const-string v4, "deviceID"
29951 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29953 + goto :goto_27
29954 +.end method
29956 +.method public getDeviceSoftwareVersion()Ljava/lang/String;
29957 + .registers 9
29959 + :try_start_0
29960 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29962 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29964 + move-result-object v1
29966 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29968 + move-result v2
29970 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29972 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29974 + move-result-object v6
29976 + const-string v5, ""
29978 + if-eqz v6, :cond_2a
29980 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
29982 + move-result v0
29984 + if-eqz v0, :cond_2a
29986 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
29988 + move-result-object v5
29990 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29992 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
29994 + move-result v3
29996 + const-string v4, "deviceID"
29998 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30000 + :goto_29
30001 + return-object v5
30003 + :cond_2a
30004 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getDeviceSoftwareVersion()Ljava/lang/String;
30006 + move-result-object v5
30008 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30010 + const/4 v3, 0x0
30012 + const-string v4, "deviceID"
30014 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30015 + :try_end_36
30016 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_36} :catch_37
30018 + goto :goto_29
30020 + :catch_37
30021 + move-exception v7
30023 + const/4 v5, 0x0
30025 + goto :goto_29
30026 +.end method
30028 +.method public getIsimDomain()Ljava/lang/String;
30029 + .registers 2
30031 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
30033 + move-result-object v0
30035 + return-object v0
30036 +.end method
30038 +.method public getIsimImpi()Ljava/lang/String;
30039 + .registers 4
30041 + const-string v0, "PrivacyTelephonyManager"
30043 + new-instance v1, Ljava/lang/StringBuilder;
30045 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
30047 + const-string v2, "getIsimImpi - "
30049 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30051 + move-result-object v1
30053 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30055 + invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30057 + move-result-object v2
30059 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30061 + move-result-object v1
30063 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30065 + move-result-object v1
30067 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30069 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSubscriberId()Ljava/lang/String;
30071 + move-result-object v0
30073 + return-object v0
30074 +.end method
30076 +.method public getIsimImpu()[Ljava/lang/String;
30077 + .registers 10
30079 + const/4 v8, 0x0
30081 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30083 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30085 + move-result-object v1
30087 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30089 + move-result v2
30091 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30093 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30095 + move-result-object v6
30097 + const-string v0, "PrivacyTelephonyManager"
30099 + new-instance v3, Ljava/lang/StringBuilder;
30101 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
30103 + const-string v4, "getIsimImpu() - "
30105 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30107 + move-result-object v3
30109 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30111 + invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30113 + move-result-object v4
30115 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30117 + move-result-object v3
30119 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30121 + move-result-object v3
30123 + invoke-static {v0, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30125 + const/4 v0, 0x1
30127 + new-array v7, v0, [Ljava/lang/String;
30129 + if-eqz v6, :cond_4f
30131 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30133 + move-result v0
30135 + if-eqz v0, :cond_4f
30137 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
30139 + move-result-object v0
30141 + aput-object v0, v7, v8
30143 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30145 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30147 + move-result v3
30149 + const-string/jumbo v4, "subscriberID"
30151 + aget-object v5, v7, v8
30153 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30155 + :goto_4e
30156 + return-object v7
30158 + :cond_4f
30159 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getIsimImpu()[Ljava/lang/String;
30161 + move-result-object v7
30163 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30165 + const-string/jumbo v4, "subscriberID"
30167 + aget-object v5, v7, v8
30169 + move v3, v8
30171 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30173 + goto :goto_4e
30174 +.end method
30176 +.method public getLine1AlphaTag()Ljava/lang/String;
30177 + .registers 2
30179 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getLine1Number()Ljava/lang/String;
30181 + move-result-object v0
30183 + return-object v0
30184 +.end method
30186 +.method public getLine1Number()Ljava/lang/String;
30187 + .registers 8
30189 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30191 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30193 + move-result-object v1
30195 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30197 + move-result v2
30199 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30201 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30203 + move-result-object v6
30205 + if-eqz v6, :cond_28
30207 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30209 + move-result v0
30211 + if-eqz v0, :cond_28
30213 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
30215 + move-result-object v5
30217 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30219 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30221 + move-result v3
30223 + const-string v4, "line1Number"
30225 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30227 + :goto_27
30228 + return-object v5
30230 + :cond_28
30231 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getLine1Number()Ljava/lang/String;
30233 + move-result-object v5
30235 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30237 + const/4 v3, 0x0
30239 + const-string v4, "line1Number"
30241 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30243 + goto :goto_27
30244 +.end method
30246 +.method public getMsisdn()Ljava/lang/String;
30247 + .registers 4
30249 + const-string v0, "PrivacyTelephonyManager"
30251 + new-instance v1, Ljava/lang/StringBuilder;
30253 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
30255 + const-string v2, "getMsisdn() - "
30257 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30259 + move-result-object v1
30261 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30263 + invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30265 + move-result-object v2
30267 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30269 + move-result-object v1
30271 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30273 + move-result-object v1
30275 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30277 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSubscriberId()Ljava/lang/String;
30279 + move-result-object v0
30281 + return-object v0
30282 +.end method
30284 +.method public getNeighboringCellInfo()Ljava/util/List;
30285 + .registers 10
30286 + .annotation system Ldalvik/annotation/Signature;
30287 + value = {
30288 + "()",
30289 + "Ljava/util/List",
30290 + "<",
30291 + "Landroid/telephony/NeighboringCellInfo;",
30292 + ">;"
30294 + .end annotation
30296 + iget-object v6, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30298 + iget-object v7, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30300 + invoke-virtual {v7}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30302 + move-result-object v7
30304 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30306 + move-result v8
30308 + invoke-virtual {v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30310 + move-result-object v5
30312 + const/4 v3, 0x0
30314 + const-string v4, "[null]"
30316 + if-eqz v5, :cond_1c
30318 + invoke-virtual {v5}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30320 + move-result v6
30322 + const/4 v7, 0x1
30324 + if-ne v6, v7, :cond_1d
30326 + :cond_1c
30327 + :goto_1c
30328 + return-object v3
30330 + :cond_1d
30331 + invoke-virtual {v5}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30333 + move-result v6
30335 + if-eqz v6, :cond_2b
30337 + new-instance v3, Ljava/util/ArrayList;
30339 + invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
30341 + const-string v4, "[empty list of cells]"
30343 + goto :goto_1c
30345 + :cond_2b
30346 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNeighboringCellInfo()Ljava/util/List;
30348 + move-result-object v3
30350 + const-string v0, ""
30352 + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
30354 + move-result-object v2
30356 + :goto_35
30357 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
30359 + move-result v6
30361 + if-eqz v6, :cond_5f
30363 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
30365 + move-result-object v1
30367 + check-cast v1, Landroid/telephony/NeighboringCellInfo;
30369 + new-instance v6, Ljava/lang/StringBuilder;
30371 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
30373 + invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30375 + move-result-object v6
30377 + const-string v7, "\t"
30379 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30381 + move-result-object v6
30383 + invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
30385 + move-result-object v6
30387 + const-string v7, "\n"
30389 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30391 + move-result-object v6
30393 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30395 + move-result-object v0
30397 + goto :goto_35
30399 + :cond_5f
30400 + new-instance v6, Ljava/lang/StringBuilder;
30402 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
30404 + const-string v7, "[real value]:\n"
30406 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30408 + move-result-object v6
30410 + invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30412 + move-result-object v6
30414 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30416 + move-result-object v4
30418 + goto :goto_1c
30419 +.end method
30421 +.method public getNetworkCountryIso()Ljava/lang/String;
30422 + .registers 2
30424 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30426 + move-result-object v0
30428 + if-nez v0, :cond_a
30430 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkCountryIso()Ljava/lang/String;
30432 + move-result-object v0
30434 + :cond_a
30435 + return-object v0
30436 +.end method
30438 +.method public getNetworkOperator()Ljava/lang/String;
30439 + .registers 2
30441 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30443 + move-result-object v0
30445 + if-nez v0, :cond_a
30447 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkOperator()Ljava/lang/String;
30449 + move-result-object v0
30451 + :cond_a
30452 + return-object v0
30453 +.end method
30455 +.method public getNetworkOperatorName()Ljava/lang/String;
30456 + .registers 2
30458 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30460 + move-result-object v0
30462 + if-nez v0, :cond_a
30464 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
30466 + move-result-object v0
30468 + :cond_a
30469 + return-object v0
30470 +.end method
30472 +.method public getNetworkType()I
30473 + .registers 7
30475 + const/4 v5, 0x0
30477 + :try_start_1
30478 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30480 + move-result-object v1
30482 + sget-object v3, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
30484 + const/4 v4, 0x0
30486 + aget v2, v3, v4
30488 + if-nez v1, :cond_10
30490 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkType()I
30491 + :try_end_f
30492 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_f} :catch_11
30494 + move-result v2
30496 + :cond_10
30497 + :goto_10
30498 + return v2
30500 + :catch_11
30501 + move-exception v0
30503 + sget-object v3, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
30505 + aget v2, v3, v5
30507 + goto :goto_10
30508 +.end method
30510 +.method public getPhoneType()I
30511 + .registers 5
30513 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30515 + move-result-object v0
30517 + sget-object v2, Landroid/privacy/surrogate/PrivacyTelephonyManager;->PHONE_TYPES:[I
30519 + const/4 v3, 0x0
30521 + aget v1, v2, v3
30523 + if-nez v0, :cond_f
30525 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getPhoneType()I
30527 + move-result v1
30529 + :cond_f
30530 + return v1
30531 +.end method
30533 +.method public getSimCountryIso()Ljava/lang/String;
30534 + .registers 2
30536 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30538 + move-result-object v0
30540 + if-nez v0, :cond_a
30542 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimCountryIso()Ljava/lang/String;
30544 + move-result-object v0
30546 + :cond_a
30547 + return-object v0
30548 +.end method
30550 +.method public getSimOperator()Ljava/lang/String;
30551 + .registers 2
30553 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30555 + move-result-object v0
30557 + if-nez v0, :cond_a
30559 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimOperator()Ljava/lang/String;
30561 + move-result-object v0
30563 + :cond_a
30564 + return-object v0
30565 +.end method
30567 +.method public getSimOperatorName()Ljava/lang/String;
30568 + .registers 2
30570 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30572 + move-result-object v0
30574 + if-nez v0, :cond_a
30576 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimOperatorName()Ljava/lang/String;
30578 + move-result-object v0
30580 + :cond_a
30581 + return-object v0
30582 +.end method
30584 +.method public getSimSerialNumber()Ljava/lang/String;
30585 + .registers 8
30587 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30589 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30591 + move-result-object v1
30593 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30595 + move-result v2
30597 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30599 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30601 + move-result-object v6
30603 + if-eqz v6, :cond_29
30605 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
30607 + move-result v0
30609 + if-eqz v0, :cond_29
30611 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumber()Ljava/lang/String;
30613 + move-result-object v5
30615 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30617 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
30619 + move-result v3
30621 + const-string/jumbo v4, "simSerial"
30623 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30625 + :goto_28
30626 + return-object v5
30628 + :cond_29
30629 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimSerialNumber()Ljava/lang/String;
30631 + move-result-object v5
30633 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30635 + const/4 v3, 0x0
30637 + const-string/jumbo v4, "simSerial"
30639 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30641 + goto :goto_28
30642 +.end method
30644 +.method public getSubscriberId()Ljava/lang/String;
30645 + .registers 8
30647 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30649 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30651 + move-result-object v1
30653 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30655 + move-result v2
30657 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30659 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30661 + move-result-object v6
30663 + const-string v0, "PrivacyTelephonyManager"
30665 + new-instance v3, Ljava/lang/StringBuilder;
30667 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
30669 + const-string v4, "getSubscriberId() - "
30671 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30673 + move-result-object v3
30675 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30677 + invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30679 + move-result-object v4
30681 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30683 + move-result-object v3
30685 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30687 + move-result-object v3
30689 + invoke-static {v0, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30691 + if-eqz v6, :cond_47
30693 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30695 + move-result v0
30697 + if-eqz v0, :cond_47
30699 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
30701 + move-result-object v5
30703 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30705 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30707 + move-result v3
30709 + const-string/jumbo v4, "subscriberID"
30711 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30713 + :goto_46
30714 + return-object v5
30716 + :cond_47
30717 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String;
30719 + move-result-object v5
30721 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30723 + const/4 v3, 0x0
30725 + const-string/jumbo v4, "subscriberID"
30727 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30729 + goto :goto_46
30730 +.end method
30732 +.method public getVoiceMailAlphaTag()Ljava/lang/String;
30733 + .registers 2
30735 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getVoiceMailNumber()Ljava/lang/String;
30737 + move-result-object v0
30739 + return-object v0
30740 +.end method
30742 +.method public getVoiceMailNumber()Ljava/lang/String;
30743 + .registers 8
30745 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30747 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30749 + move-result-object v1
30751 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30753 + move-result v2
30755 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30757 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30759 + move-result-object v6
30761 + if-eqz v6, :cond_28
30763 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30765 + move-result v0
30767 + if-eqz v0, :cond_28
30769 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
30771 + move-result-object v5
30773 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30775 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30777 + move-result v3
30779 + const-string v4, "line1Number"
30781 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30783 + :goto_27
30784 + return-object v5
30786 + :cond_28
30787 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getVoiceMailNumber()Ljava/lang/String;
30789 + move-result-object v5
30791 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30793 + const/4 v3, 0x0
30795 + const-string v4, "line1Number"
30797 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30799 + goto :goto_27
30800 +.end method
30802 +.method public listen(Landroid/telephony/PhoneStateListener;I)V
30803 + .registers 5
30805 + and-int/lit8 v1, p2, 0x10
30807 + if-nez v1, :cond_8
30809 + and-int/lit8 v1, p2, 0x20
30811 + if-eqz v1, :cond_29
30813 + :cond_8
30814 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30816 + if-eqz v1, :cond_27
30818 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30820 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30822 + move-result-object v0
30824 + :goto_12
30825 + if-eqz v0, :cond_1c
30827 + invoke-virtual {p1, v0}, Landroid/telephony/PhoneStateListener;->setPackageName(Ljava/lang/String;)V
30829 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30831 + invoke-virtual {p1, v1}, Landroid/telephony/PhoneStateListener;->setContext(Landroid/content/Context;)V
30833 + :cond_1c
30834 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30836 + move-result v1
30838 + invoke-virtual {p1, v1}, Landroid/telephony/PhoneStateListener;->setUid(I)V
30840 + invoke-super {p0, p1, p2}, Landroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
30842 + :goto_26
30843 + return-void
30845 + :cond_27
30846 + const/4 v0, 0x0
30848 + goto :goto_12
30850 + :cond_29
30851 + invoke-super {p0, p1, p2}, Landroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
30853 + goto :goto_26
30854 +.end method
30855 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali
30856 --- stock-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali 1969-12-31 18:00:00.000000000 -0600
30857 +++ opd-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali 2013-01-20 23:05:45.919697329 -0600
30858 @@ -0,0 +1,1097 @@
30859 +.class public Landroid/privacy/surrogate/PrivacyWifiManager;
30860 +.super Landroid/net/wifi/WifiManager;
30861 +.source "PrivacyWifiManager.java"
30864 +# static fields
30865 +.field private static final P_TAG:Ljava/lang/String; = "PrivacyWifiManager"
30868 +# instance fields
30869 +.field private context:Landroid/content/Context;
30871 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
30874 +# direct methods
30875 +.method public constructor <init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
30876 + .registers 5
30878 + invoke-direct {p0, p1, p2}, Landroid/net/wifi/WifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
30880 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
30882 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
30884 + const-string/jumbo v1, "privacy"
30886 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
30888 + move-result-object v1
30890 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
30892 + move-result-object v1
30894 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
30896 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30898 + return-void
30899 +.end method
30902 +# virtual methods
30903 +.method public getConfigFile()Ljava/lang/String;
30904 + .registers 9
30906 + const/4 v2, -0x1
30908 + const/4 v5, 0x0
30910 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30912 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
30914 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30916 + move-result-object v1
30918 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30920 + move-result v3
30922 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30924 + move-result-object v7
30926 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30928 + if-eqz v0, :cond_31
30930 + if-eqz v7, :cond_31
30932 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
30934 + move-result v0
30936 + if-eqz v0, :cond_31
30938 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30940 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
30942 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30944 + move-result-object v1
30946 + const/4 v3, 0x1
30948 + const-string/jumbo v4, "wifiInfo"
30950 + move-object v6, v5
30952 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30954 + const-string v0, ""
30956 + :goto_30
30957 + return-object v0
30959 + :cond_31
30960 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30962 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
30964 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30966 + move-result-object v1
30968 + const/4 v3, 0x0
30970 + const-string/jumbo v4, "wifiInfo"
30972 + move-object v6, v5
30974 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30976 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConfigFile()Ljava/lang/String;
30978 + move-result-object v0
30980 + goto :goto_30
30981 +.end method
30983 +.method public getConfiguredNetworks()Ljava/util/List;
30984 + .registers 10
30985 + .annotation system Ldalvik/annotation/Signature;
30986 + value = {
30987 + "()",
30988 + "Ljava/util/List",
30989 + "<",
30990 + "Landroid/net/wifi/WifiConfiguration;",
30991 + ">;"
30993 + .end annotation
30995 + const/4 v2, -0x1
30997 + const/4 v5, 0x0
30999 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31001 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31003 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31005 + move-result-object v1
31007 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31009 + move-result v3
31011 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31013 + move-result-object v8
31015 + new-instance v7, Ljava/util/ArrayList;
31017 + invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
31019 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31021 + if-eqz v0, :cond_34
31023 + if-eqz v8, :cond_34
31025 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31027 + move-result v0
31029 + if-eqz v0, :cond_34
31031 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31033 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31035 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31037 + move-result-object v1
31039 + const/4 v3, 0x1
31041 + const-string/jumbo v4, "wifiInfo"
31043 + move-object v6, v5
31045 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31047 + :goto_33
31048 + return-object v7
31050 + :cond_34
31051 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31053 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31055 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31057 + move-result-object v1
31059 + const/4 v3, 0x0
31061 + const-string/jumbo v4, "wifiInfo"
31063 + move-object v6, v5
31065 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31067 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConfiguredNetworks()Ljava/util/List;
31069 + move-result-object v7
31071 + goto :goto_33
31072 +.end method
31074 +.method public getConnectionInfo()Landroid/net/wifi/WifiInfo;
31075 + .registers 10
31077 + const/4 v3, 0x1
31079 + const/4 v2, -0x1
31081 + const/4 v5, 0x0
31083 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31085 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31087 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31089 + move-result-object v1
31091 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31093 + move-result v4
31095 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31097 + move-result-object v8
31099 + new-instance v7, Landroid/net/wifi/WifiInfo;
31101 + invoke-direct {v7, v3}, Landroid/net/wifi/WifiInfo;-><init>(Z)V
31103 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31105 + if-eqz v0, :cond_34
31107 + if-eqz v8, :cond_34
31109 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31111 + move-result v0
31113 + if-eqz v0, :cond_34
31115 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31117 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31119 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31121 + move-result-object v1
31123 + const-string/jumbo v4, "wifiInfo"
31125 + move-object v6, v5
31127 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31129 + :goto_33
31130 + return-object v7
31132 + :cond_34
31133 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31135 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31137 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31139 + move-result-object v1
31141 + const/4 v3, 0x0
31143 + const-string/jumbo v4, "wifiInfo"
31145 + move-object v6, v5
31147 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31149 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConnectionInfo()Landroid/net/wifi/WifiInfo;
31151 + move-result-object v7
31153 + goto :goto_33
31154 +.end method
31156 +.method public getDhcpInfo()Landroid/net/DhcpInfo;
31157 + .registers 9
31159 + const/4 v2, -0x1
31161 + const/4 v5, 0x0
31163 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31165 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31167 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31169 + move-result-object v1
31171 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31173 + move-result v3
31175 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31177 + move-result-object v7
31179 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31181 + if-eqz v0, :cond_34
31183 + if-eqz v7, :cond_34
31185 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31187 + move-result v0
31189 + if-eqz v0, :cond_34
31191 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31193 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31195 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31197 + move-result-object v1
31199 + const/4 v3, 0x1
31201 + const-string/jumbo v4, "wifiInfo"
31203 + move-object v6, v5
31205 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31207 + new-instance v0, Landroid/net/DhcpInfo;
31209 + invoke-direct {v0}, Landroid/net/DhcpInfo;-><init>()V
31211 + :goto_33
31212 + return-object v0
31214 + :cond_34
31215 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31217 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31219 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31221 + move-result-object v1
31223 + const/4 v3, 0x0
31225 + const-string/jumbo v4, "wifiInfo"
31227 + move-object v6, v5
31229 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31231 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getDhcpInfo()Landroid/net/DhcpInfo;
31233 + move-result-object v0
31235 + goto :goto_33
31236 +.end method
31238 +.method public getFrequencyBand()I
31239 + .registers 9
31241 + const/4 v2, -0x1
31243 + const/4 v5, 0x0
31245 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31247 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31249 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31251 + move-result-object v1
31253 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31255 + move-result v3
31257 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31259 + move-result-object v7
31261 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31263 + if-eqz v0, :cond_2f
31265 + if-eqz v7, :cond_2f
31267 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31269 + move-result v0
31271 + if-eqz v0, :cond_2f
31273 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31275 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31277 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31279 + move-result-object v1
31281 + const/4 v3, 0x1
31283 + const-string/jumbo v4, "wifiInfo"
31285 + move-object v6, v5
31287 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31289 + :goto_2e
31290 + return v2
31292 + :cond_2f
31293 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31295 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31297 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31299 + move-result-object v1
31301 + const/4 v3, 0x0
31303 + const-string/jumbo v4, "wifiInfo"
31305 + move-object v6, v5
31307 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31309 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getFrequencyBand()I
31311 + move-result v2
31313 + goto :goto_2e
31314 +.end method
31316 +.method public getScanResults()Ljava/util/List;
31317 + .registers 10
31318 + .annotation system Ldalvik/annotation/Signature;
31319 + value = {
31320 + "()",
31321 + "Ljava/util/List",
31322 + "<",
31323 + "Landroid/net/wifi/ScanResult;",
31324 + ">;"
31326 + .end annotation
31328 + const/4 v2, -0x1
31330 + const/4 v5, 0x0
31332 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31334 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31336 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31338 + move-result-object v1
31340 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31342 + move-result v3
31344 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31346 + move-result-object v8
31348 + new-instance v7, Ljava/util/ArrayList;
31350 + invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
31352 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31354 + if-eqz v0, :cond_34
31356 + if-eqz v8, :cond_34
31358 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31360 + move-result v0
31362 + if-eqz v0, :cond_34
31364 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31366 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31368 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31370 + move-result-object v1
31372 + const/4 v3, 0x1
31374 + const-string/jumbo v4, "wifiInfo"
31376 + move-object v6, v5
31378 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31380 + :goto_33
31381 + return-object v7
31383 + :cond_34
31384 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31386 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31388 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31390 + move-result-object v1
31392 + const/4 v3, 0x0
31394 + const-string/jumbo v4, "wifiInfo"
31396 + move-object v6, v5
31398 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31400 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getScanResults()Ljava/util/List;
31402 + move-result-object v7
31404 + goto :goto_33
31405 +.end method
31407 +.method public getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
31408 + .registers 9
31410 + const/4 v2, -0x1
31412 + const/4 v5, 0x0
31414 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31416 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31418 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31420 + move-result-object v1
31422 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31424 + move-result v3
31426 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31428 + move-result-object v7
31430 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31432 + if-eqz v0, :cond_34
31434 + if-eqz v7, :cond_34
31436 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31438 + move-result v0
31440 + if-eqz v0, :cond_34
31442 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31444 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31446 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31448 + move-result-object v1
31450 + const/4 v3, 0x1
31452 + const-string/jumbo v4, "wifiInfo"
31454 + move-object v6, v5
31456 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31458 + new-instance v0, Landroid/net/wifi/WifiConfiguration;
31460 + invoke-direct {v0}, Landroid/net/wifi/WifiConfiguration;-><init>()V
31462 + :goto_33
31463 + return-object v0
31465 + :cond_34
31466 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31468 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31470 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31472 + move-result-object v1
31474 + const/4 v3, 0x0
31476 + const-string/jumbo v4, "wifiInfo"
31478 + move-object v6, v5
31480 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31482 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
31484 + move-result-object v0
31486 + goto :goto_33
31487 +.end method
31489 +.method public getWifiState()I
31490 + .registers 9
31492 + const/4 v3, 0x1
31494 + const/4 v2, -0x1
31496 + const/4 v5, 0x0
31498 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31500 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31502 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31504 + move-result-object v1
31506 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31508 + move-result v4
31510 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31512 + move-result-object v7
31514 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31516 + if-eqz v0, :cond_30
31518 + if-eqz v7, :cond_30
31520 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
31522 + move-result v0
31524 + if-nez v0, :cond_30
31526 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31528 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31530 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31532 + move-result-object v1
31534 + const-string/jumbo v4, "wifiInfo"
31536 + move-object v6, v5
31538 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31540 + const/4 v0, 0x3
31542 + :goto_2f
31543 + return v0
31545 + :cond_30
31546 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31548 + if-eqz v0, :cond_4d
31550 + if-eqz v7, :cond_4d
31552 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31554 + move-result v0
31556 + if-eqz v0, :cond_4d
31558 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31560 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31562 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31564 + move-result-object v1
31566 + const-string/jumbo v4, "wifiInfo"
31568 + move-object v6, v5
31570 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31572 + const/4 v0, 0x4
31574 + goto :goto_2f
31576 + :cond_4d
31577 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31579 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31581 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31583 + move-result-object v1
31585 + const/4 v3, 0x0
31587 + const-string/jumbo v4, "wifiInfo"
31589 + move-object v6, v5
31591 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31593 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getWifiState()I
31595 + move-result v0
31597 + goto :goto_2f
31598 +.end method
31600 +.method public isWifiEnabled()Z
31601 + .registers 10
31603 + const/4 v8, 0x0
31605 + const/4 v3, 0x1
31607 + const/4 v2, -0x1
31609 + const/4 v5, 0x0
31611 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31613 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31615 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31617 + move-result-object v1
31619 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31621 + move-result v4
31623 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31625 + move-result-object v7
31627 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31629 + if-eqz v0, :cond_30
31631 + if-eqz v7, :cond_30
31633 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
31635 + move-result v0
31637 + if-nez v0, :cond_30
31639 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31641 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31643 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31645 + move-result-object v1
31647 + const-string/jumbo v4, "wifiInfo"
31649 + move-object v6, v5
31651 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31653 + :goto_2f
31654 + return v3
31656 + :cond_30
31657 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31659 + if-eqz v0, :cond_4d
31661 + if-eqz v7, :cond_4d
31663 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31665 + move-result v0
31667 + if-eqz v0, :cond_4d
31669 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31671 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31673 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31675 + move-result-object v1
31677 + const-string/jumbo v4, "wifiInfo"
31679 + move-object v6, v5
31681 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31683 + move v3, v8
31685 + goto :goto_2f
31687 + :cond_4d
31688 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31690 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31692 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31694 + move-result-object v1
31696 + const-string/jumbo v4, "wifiInfo"
31698 + move v3, v8
31700 + move-object v6, v5
31702 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31704 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->isWifiEnabled()Z
31706 + move-result v3
31708 + goto :goto_2f
31709 +.end method
31711 +.method public setWifiEnabled(Z)Z
31712 + .registers 11
31714 + const/4 v8, 0x0
31716 + const/4 v2, -0x1
31718 + const/4 v5, 0x0
31720 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31722 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31724 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31726 + move-result-object v1
31728 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31730 + move-result v3
31732 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31734 + move-result-object v7
31736 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31738 + if-eqz v0, :cond_31
31740 + if-eqz v7, :cond_31
31742 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSwitchWifiStateSetting()B
31744 + move-result v0
31746 + if-eqz v0, :cond_31
31748 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31750 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31752 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31754 + move-result-object v1
31756 + const/4 v3, 0x1
31758 + const-string/jumbo v4, "switchWifiState"
31760 + move-object v6, v5
31762 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31764 + move v0, v8
31766 + :goto_30
31767 + return v0
31769 + :cond_31
31770 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31772 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31774 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31776 + move-result-object v1
31778 + const-string/jumbo v4, "switchWifiState"
31780 + move v3, v8
31782 + move-object v6, v5
31784 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31786 + invoke-super {p0, p1}, Landroid/net/wifi/WifiManager;->setWifiEnabled(Z)Z
31788 + move-result v0
31790 + goto :goto_30
31791 +.end method
31793 +.method public startScan()Z
31794 + .registers 10
31796 + const/4 v8, 0x0
31798 + const/4 v2, -0x1
31800 + const/4 v5, 0x0
31802 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31804 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31806 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31808 + move-result-object v1
31810 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31812 + move-result v3
31814 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31816 + move-result-object v7
31818 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31820 + if-eqz v0, :cond_31
31822 + if-eqz v7, :cond_31
31824 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31826 + move-result v0
31828 + if-eqz v0, :cond_31
31830 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31832 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31834 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31836 + move-result-object v1
31838 + const/4 v3, 0x1
31840 + const-string/jumbo v4, "wifiInfo"
31842 + move-object v6, v5
31844 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31846 + move v0, v8
31848 + :goto_30
31849 + return v0
31851 + :cond_31
31852 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31854 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31856 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31858 + move-result-object v1
31860 + const-string/jumbo v4, "wifiInfo"
31862 + move v3, v8
31864 + move-object v6, v5
31866 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31868 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->startScan()Z
31870 + move-result v0
31872 + goto :goto_30
31873 +.end method
31875 +.method public startScanActive()Z
31876 + .registers 10
31878 + const/4 v8, 0x0
31880 + const/4 v2, -0x1
31882 + const/4 v5, 0x0
31884 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31886 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31888 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31890 + move-result-object v1
31892 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31894 + move-result v3
31896 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31898 + move-result-object v7
31900 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31902 + if-eqz v0, :cond_31
31904 + if-eqz v7, :cond_31
31906 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31908 + move-result v0
31910 + if-eqz v0, :cond_31
31912 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31914 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31916 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31918 + move-result-object v1
31920 + const/4 v3, 0x1
31922 + const-string/jumbo v4, "wifiInfo"
31924 + move-object v6, v5
31926 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31928 + move v0, v8
31930 + :goto_30
31931 + return v0
31933 + :cond_31
31934 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31936 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31938 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31940 + move-result-object v1
31942 + const-string/jumbo v4, "wifiInfo"
31944 + move v3, v8
31946 + move-object v6, v5
31948 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31950 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->startScanActive()Z
31952 + move-result v0
31954 + goto :goto_30
31955 +.end method
31956 diff -Npru stock-framework/smali/android/provider/Settings$Secure.smali opd-framework/smali/android/provider/Settings$Secure.smali
31957 --- stock-framework/smali/android/provider/Settings$Secure.smali 2013-01-21 12:55:59.356808226 -0600
31958 +++ opd-framework/smali/android/provider/Settings$Secure.smali 2013-01-20 23:05:45.975696625 -0600
31959 @@ -202,6 +202,8 @@
31961 .field public static final PREFERRED_TTY_MODE:Ljava/lang/String; = "preferred_tty_mode"
31963 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,SecureSettings"
31965 .field public static final SCREENSAVER_ACTIVATE_ON_DOCK:Ljava/lang/String; = "screensaver_activate_on_dock"
31967 .field public static final SCREENSAVER_ACTIVATE_ON_SLEEP:Ljava/lang/String; = "screensaver_activate_on_sleep"
31968 @@ -413,6 +415,14 @@
31970 .field public static final WIMAX_ON:Ljava/lang/String; = "wimax_on"
31972 +.field private static context:Landroid/content/Context;
31974 +.field private static mPm:Landroid/content/pm/IPackageManager;
31976 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
31978 +.field private static privacyMode:Z
31980 .field private static sIsSystemProcess:Z
31982 .field private static sLockSettings:Lcom/android/internal/widget/ILockSettings;
31983 @@ -422,9 +432,11 @@
31985 # direct methods
31986 .method static constructor <clinit>()V
31987 - .registers 6
31988 + .registers 7
31990 + const/4 v6, 0x3
31992 - const/4 v5, 0x3
31993 + const/4 v5, 0x0
31995 const-string v0, "content://settings/secure"
31997 @@ -454,7 +466,7 @@
31999 new-instance v0, Ljava/util/HashSet;
32001 - invoke-direct {v0, v5}, Ljava/util/HashSet;-><init>(I)V
32002 + invoke-direct {v0, v6}, Ljava/util/HashSet;-><init>(I)V
32004 sput-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32006 @@ -1202,15 +1214,15 @@
32008 invoke-virtual {v0, v1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
32010 + sput-boolean v5, Landroid/provider/Settings$Secure;->privacyMode:Z
32012 const/16 v0, 0x21
32014 new-array v0, v0, [Ljava/lang/String;
32016 - const/4 v1, 0x0
32018 - const-string v2, "bugreport_in_power_menu"
32019 + const-string v1, "bugreport_in_power_menu"
32021 - aput-object v2, v0, v1
32022 + aput-object v1, v0, v5
32024 const/4 v1, 0x1
32026 @@ -1226,7 +1238,7 @@
32028 const-string/jumbo v1, "parental_control_redirect_url"
32030 - aput-object v1, v0, v5
32031 + aput-object v1, v0, v6
32033 const/4 v1, 0x4
32035 @@ -1719,6 +1731,70 @@
32036 return-void
32037 .end method
32039 +.method private static getPackageName()[Ljava/lang/String;
32040 + .registers 5
32042 + :try_start_0
32043 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32045 + if-eqz v3, :cond_f
32047 + invoke-static {}, Landroid/os/Process;->myUid()I
32049 + move-result v2
32051 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32053 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
32055 + move-result-object v1
32057 + :goto_e
32058 + return-object v1
32060 + :cond_f
32061 + const-string/jumbo v3, "package"
32063 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32065 + move-result-object v3
32067 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32069 + move-result-object v3
32071 + sput-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32073 + invoke-static {}, Landroid/os/Process;->myUid()I
32075 + move-result v2
32077 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32079 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
32080 + :try_end_25
32081 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
32083 + move-result-object v1
32085 + goto :goto_e
32087 + :catch_27
32088 + move-exception v0
32090 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32092 + const-string v3, "PM,SecureSettings"
32094 + const-string/jumbo v4, "something went wrong with getting package name"
32096 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32098 + const/4 v1, 0x0
32100 + goto :goto_e
32101 +.end method
32103 .method public static getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
32104 .registers 3
32106 @@ -1734,152 +1810,392 @@
32107 .end method
32109 .method public static getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32110 - .registers 6
32111 + .registers 23
32113 - sget-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_GLOBAL:Ljava/util/HashSet;
32114 + sget-object v3, Landroid/provider/Settings$Secure;->MOVED_TO_GLOBAL:Ljava/util/HashSet;
32116 - invoke-virtual {v0, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32117 + move-object/from16 v0, p1
32119 - move-result v0
32120 + invoke-virtual {v3, v0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32122 - if-eqz v0, :cond_31
32123 + move-result v3
32125 - const-string v0, "Settings"
32126 + if-eqz v3, :cond_35
32128 - new-instance v1, Ljava/lang/StringBuilder;
32129 + const-string v3, "Settings"
32131 - invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
32132 + new-instance v4, Ljava/lang/StringBuilder;
32134 - const-string v2, "Setting "
32135 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
32137 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32138 + const-string v5, "Setting "
32140 - move-result-object v1
32141 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32143 - invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32144 + move-result-object v4
32146 - move-result-object v1
32147 + move-object/from16 v0, p1
32149 - const-string v2, " has moved from android.provider.Settings.Secure"
32150 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32152 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32153 + move-result-object v4
32155 - move-result-object v1
32156 + const-string v5, " has moved from android.provider.Settings.Secure"
32158 - const-string v2, " to android.provider.Settings.Global."
32159 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32161 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32162 + move-result-object v4
32164 - move-result-object v1
32165 + const-string v5, " to android.provider.Settings.Global."
32167 - invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32168 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32170 - move-result-object v1
32171 + move-result-object v4
32173 - invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
32174 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32176 - invoke-static {p0, p1, p2}, Landroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32177 + move-result-object v4
32179 - move-result-object v0
32180 + invoke-static {v3, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
32182 - :goto_30
32183 - return-object v0
32184 + invoke-static/range {p0 .. p2}, Landroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32186 - :cond_31
32187 - sget-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32188 + move-result-object v8
32190 - invoke-virtual {v0, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32191 + :goto_34
32192 + return-object v8
32194 - move-result v0
32195 + :cond_35
32196 + sget-object v3, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32198 - if-eqz v0, :cond_6f
32199 + move-object/from16 v0, p1
32201 - const-class v1, Landroid/provider/Settings$Secure;
32202 + invoke-virtual {v3, v0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32204 - monitor-enter v1
32205 + move-result v3
32207 - :try_start_3c
32208 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32209 + if-eqz v3, :cond_79
32211 - if-nez v0, :cond_57
32212 + const-class v4, Landroid/provider/Settings$Secure;
32214 - const-string v0, "lock_settings"
32215 + monitor-enter v4
32217 - invoke-static {v0}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32218 + :try_start_42
32219 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32221 - move-result-object v0
32222 + if-nez v3, :cond_5d
32224 - invoke-static {v0}, Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
32225 + const-string v3, "lock_settings"
32227 - move-result-object v0
32228 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32230 - sput-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32231 + move-result-object v3
32233 + invoke-static {v3}, Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
32235 + move-result-object v3
32237 + sput-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32239 invoke-static {}, Landroid/os/Process;->myUid()I
32241 - move-result v0
32242 + move-result v3
32244 - const/16 v2, 0x3e8
32245 + const/16 v5, 0x3e8
32247 - if-ne v0, v2, :cond_69
32248 + if-ne v3, v5, :cond_73
32250 - const/4 v0, 0x1
32251 + const/4 v3, 0x1
32253 - :goto_55
32254 - sput-boolean v0, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32255 + :goto_5b
32256 + sput-boolean v3, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32258 - :cond_57
32259 - monitor-exit v1
32260 - :try_end_58
32261 - .catchall {:try_start_3c .. :try_end_58} :catchall_6b
32262 + :cond_5d
32263 + monitor-exit v4
32264 + :try_end_5e
32265 + .catchall {:try_start_42 .. :try_end_5e} :catchall_75
32267 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32268 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32270 - if-eqz v0, :cond_6f
32271 + if-eqz v3, :cond_79
32273 - sget-boolean v0, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32274 + sget-boolean v3, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32276 - if-nez v0, :cond_6f
32277 + if-nez v3, :cond_79
32279 - :try_start_60
32280 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32281 + :try_start_66
32282 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32284 - const-string v1, "0"
32285 + const-string v4, "0"
32287 - invoke-interface {v0, p1, v1, p2}, Lcom/android/internal/widget/ILockSettings;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
32288 - :try_end_67
32289 - .catch Landroid/os/RemoteException; {:try_start_60 .. :try_end_67} :catch_6e
32290 + move-object/from16 v0, p1
32292 - move-result-object v0
32293 + move/from16 v1, p2
32295 - goto :goto_30
32296 + invoke-interface {v3, v0, v4, v1}, Lcom/android/internal/widget/ILockSettings;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
32297 + :try_end_71
32298 + .catch Landroid/os/RemoteException; {:try_start_66 .. :try_end_71} :catch_78
32300 - :cond_69
32301 - const/4 v0, 0x0
32302 + move-result-object v8
32304 - goto :goto_55
32305 + goto :goto_34
32307 - :catchall_6b
32308 - move-exception v0
32309 + :cond_73
32310 + const/4 v3, 0x0
32312 - :try_start_6c
32313 - monitor-exit v1
32314 - :try_end_6d
32315 - .catchall {:try_start_6c .. :try_end_6d} :catchall_6b
32316 + goto :goto_5b
32318 - throw v0
32319 + :catchall_75
32320 + move-exception v3
32322 - :catch_6e
32323 - move-exception v0
32324 + :try_start_76
32325 + monitor-exit v4
32326 + :try_end_77
32327 + .catchall {:try_start_76 .. :try_end_77} :catchall_75
32329 - :cond_6f
32330 - sget-object v0, Landroid/provider/Settings$Secure;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
32331 + throw v3
32333 - invoke-virtual {v0, p0, p1, p2}, Landroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32334 + :catch_78
32335 + move-exception v3
32337 - move-result-object v0
32338 + :cond_79
32339 + const-string v3, "android_id"
32341 + move-object/from16 v0, p1
32343 + invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
32345 + move-result v3
32347 + if-eqz v3, :cond_f7
32349 + invoke-static {}, Landroid/provider/Settings$Secure;->initiate()V
32351 + :try_start_86
32352 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32354 + if-nez v3, :cond_9e
32356 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
32358 + sget-object v4, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32360 + const-string/jumbo v5, "privacy"
32362 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32364 + move-result-object v5
32366 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
32368 + move-result-object v5
32370 + invoke-direct {v3, v4, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
32372 + sput-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32374 + :cond_9e
32375 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32377 + if-nez v3, :cond_af
32379 + const-string/jumbo v3, "package"
32381 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32383 + move-result-object v3
32385 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32387 + move-result-object v3
32389 + sput-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32391 + :cond_af
32392 + const/16 v19, 0x0
32394 + invoke-static {}, Landroid/provider/Settings$Secure;->getPackageName()[Ljava/lang/String;
32396 + move-result-object v18
32398 + if-eqz v18, :cond_13c
32400 + move-object/from16 v0, v18
32402 + array-length v3, v0
32404 + if-lez v3, :cond_13c
32406 - goto :goto_30
32407 + const/16 v17, 0x0
32409 + :goto_be
32410 + move-object/from16 v0, v18
32412 + array-length v3, v0
32414 + move/from16 v0, v17
32416 + if-ge v0, v3, :cond_f7
32418 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32420 + aget-object v4, v18, v17
32422 + invoke-virtual {v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
32424 + move-result-object v19
32426 + if-eqz v19, :cond_11c
32428 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32430 + move-result v3
32432 + if-eqz v3, :cond_11c
32434 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidID()Ljava/lang/String;
32436 + move-result-object v8
32438 + if-eqz v8, :cond_105
32440 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32442 + aget-object v4, v18, v17
32444 + const/4 v5, 0x0
32446 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32448 + move-result v6
32450 + const-string v7, "android_id"
32452 + const/4 v9, 0x0
32454 + invoke-virtual/range {v3 .. v9}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32455 + :try_end_ea
32456 + .catch Ljava/lang/Exception; {:try_start_86 .. :try_end_ea} :catch_ec
32458 + goto/16 :goto_34
32460 + :catch_ec
32461 + move-exception v16
32463 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Exception;->printStackTrace()V
32465 + const-string v3, "PM,SecureSettings"
32467 + const-string v4, "Got exception in getString()"
32469 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32471 + :cond_f7
32472 + :goto_f7
32473 + sget-object v3, Landroid/provider/Settings$Secure;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
32475 + move-object/from16 v0, p0
32477 + move-object/from16 v1, p1
32479 + move/from16 v2, p2
32481 + invoke-virtual {v3, v0, v1, v2}, Landroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32483 + move-result-object v8
32485 + goto/16 :goto_34
32487 + :cond_105
32488 + :try_start_105
32489 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32491 + aget-object v10, v18, v17
32493 + const/4 v11, 0x0
32495 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32497 + move-result v12
32499 + const-string v13, "android_id"
32501 + const-string/jumbo v14, "q4a5w896ay21dr46"
32503 + const/4 v15, 0x0
32505 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32507 + const-string/jumbo v8, "q4a5w896ay21dr46"
32509 + goto/16 :goto_34
32511 + :cond_11c
32512 + move-object/from16 v0, v18
32514 + array-length v3, v0
32516 + add-int/lit8 v3, v3, -0x1
32518 + move/from16 v0, v17
32520 + if-ne v0, v3, :cond_137
32522 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32524 + move-object/from16 v0, v18
32526 + array-length v3, v0
32528 + add-int/lit8 v3, v3, -0x1
32530 + aget-object v10, v18, v3
32532 + const/4 v11, 0x0
32534 + const/4 v12, 0x0
32536 + const-string v13, "android_id"
32538 + const/4 v14, 0x0
32540 + const/4 v15, 0x0
32542 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32544 + :cond_137
32545 + const/16 v19, 0x0
32547 + add-int/lit8 v17, v17, 0x1
32549 + goto :goto_be
32551 + :cond_13c
32552 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32554 + move-object/from16 v0, v18
32556 + array-length v3, v0
32558 + add-int/lit8 v3, v3, -0x1
32560 + aget-object v10, v18, v3
32562 + const/4 v11, 0x0
32564 + const/4 v12, 0x0
32566 + const-string v13, "android_id"
32568 + const/4 v14, 0x0
32570 + const/4 v15, 0x0
32572 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32573 + :try_end_14e
32574 + .catch Ljava/lang/Exception; {:try_start_105 .. :try_end_14e} :catch_ec
32576 + goto :goto_f7
32577 .end method
32579 .method public static getUriFor(Ljava/lang/String;)Landroid/net/Uri;
32580 @@ -1946,6 +2262,71 @@
32581 goto :goto_32
32582 .end method
32584 +.method private static initiate()V
32585 + .registers 4
32587 + const/4 v1, 0x0
32589 + :try_start_1
32590 + sput-object v1, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32592 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
32594 + sget-object v2, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32596 + const-string/jumbo v3, "privacy"
32598 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32600 + move-result-object v3
32602 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
32604 + move-result-object v3
32606 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
32608 + sput-object v1, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32610 + const-string/jumbo v1, "package"
32612 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32614 + move-result-object v1
32616 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32618 + move-result-object v1
32620 + sput-object v1, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32622 + const/4 v1, 0x1
32624 + sput-boolean v1, Landroid/provider/Settings$Secure;->privacyMode:Z
32625 + :try_end_27
32626 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
32628 + :goto_27
32629 + return-void
32631 + :catch_28
32632 + move-exception v0
32634 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32636 + const-string v1, "PM,SecureSettings"
32638 + const-string v2, "Something went wrong with initalize variables"
32640 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32642 + const/4 v1, 0x0
32644 + sput-boolean v1, Landroid/provider/Settings$Secure;->privacyMode:Z
32646 + goto :goto_27
32647 +.end method
32649 .method public static final isLocationProviderEnabled(Landroid/content/ContentResolver;Ljava/lang/String;)Z
32650 .registers 3
32652 diff -Npru stock-framework/smali/android/speech/srec/MicrophoneInputStream.smali opd-framework/smali/android/speech/srec/MicrophoneInputStream.smali
32653 --- stock-framework/smali/android/speech/srec/MicrophoneInputStream.smali 2013-01-21 12:55:59.420775420 -0600
32654 +++ opd-framework/smali/android/speech/srec/MicrophoneInputStream.smali 2013-01-20 23:05:46.063695518 -0600
32655 @@ -4,14 +4,30 @@
32658 # static fields
32659 +.field private static final GOT_ERROR:I = -0x3
32661 +.field private static final IS_ALLOWED:I = -0x1
32663 +.field private static final IS_NOT_ALLOWED:I = -0x2
32665 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,MicrophoneInputStream"
32667 .field private static final TAG:Ljava/lang/String; = "MicrophoneInputStream"
32670 # instance fields
32671 +.field private context:Landroid/content/Context;
32673 .field private mAudioRecord:I
32675 .field private mOneByte:[B
32677 +.field private mPm:Landroid/content/pm/IPackageManager;
32679 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
32681 +.field private privacyMode:Z
32684 # direct methods
32685 .method static constructor <clinit>()V
32686 @@ -25,79 +41,167 @@
32687 .end method
32689 .method public constructor <init>(II)V
32690 - .registers 7
32691 + .registers 14
32692 .annotation system Ldalvik/annotation/Throws;
32693 value = {
32694 Ljava/io/IOException;
32696 .end annotation
32698 + const/4 v5, 0x0
32700 + const/4 v3, 0x1
32702 + const/4 v2, 0x0
32704 invoke-direct {p0}, Ljava/io/InputStream;-><init>()V
32706 - const/4 v1, 0x0
32707 + iput-boolean v2, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
32709 - iput v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32710 + iput v2, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32712 - const/4 v1, 0x1
32713 + new-array v0, v3, [B
32715 - new-array v1, v1, [B
32716 + iput-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mOneByte:[B
32718 - iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mOneByte:[B
32719 + iget-boolean v0, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
32721 - invoke-static {p1, p2}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordNew(II)I
32722 + if-nez v0, :cond_15
32724 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->initiate()V
32726 + :cond_15
32727 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->checkIfPackagesAllowed()I
32729 + move-result v0
32731 + const/4 v1, -0x2
32733 + if-ne v0, v1, :cond_43
32735 + invoke-direct {p0, v2}, Landroid/speech/srec/MicrophoneInputStream;->dataAccess(Z)V
32737 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
32739 + move-result-object v7
32741 + if-eqz v7, :cond_3b
32743 + iget-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32745 + aget-object v1, v7, v2
32747 + const-string/jumbo v4, "recordAudio"
32749 - move-result v1
32750 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32752 - iput v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32753 + aget-object v9, v7, v2
32755 - iget v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32756 + invoke-static {}, Landroid/os/Process;->myUid()I
32758 - if-nez v1, :cond_1d
32759 + move-result v10
32761 - new-instance v1, Ljava/io/IOException;
32762 + invoke-virtual {v6, v9, v10}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32764 - const-string v2, "AudioRecord constructor failed - busy?"
32765 + move-result-object v6
32767 - invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32768 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32770 - throw v1
32771 + :cond_3b
32772 + new-instance v0, Ljava/io/IOException;
32774 - :cond_1d
32775 - iget v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32776 + const-string v1, "AudioRecord constructor failed - busy?"
32778 - invoke-static {v1}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordStart(I)I
32779 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32781 + throw v0
32783 + :cond_43
32784 + invoke-direct {p0, v3}, Landroid/speech/srec/MicrophoneInputStream;->dataAccess(Z)V
32786 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
32788 + move-result-object v7
32790 + if-eqz v7, :cond_63
32792 + iget-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32794 + aget-object v1, v7, v2
32796 + const-string/jumbo v4, "recordAudio"
32798 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32800 + aget-object v6, v7, v2
32802 + invoke-static {}, Landroid/os/Process;->myUid()I
32804 + move-result v9
32806 + invoke-virtual {v3, v6, v9}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32808 + move-result-object v6
32810 + move v3, v2
32812 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32814 + :cond_63
32815 + invoke-static {p1, p2}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordNew(II)I
32817 move-result v0
32819 - if-eqz v0, :cond_41
32820 + iput v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32822 + iget v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32824 + if-nez v0, :cond_75
32826 + new-instance v0, Ljava/io/IOException;
32828 + const-string v1, "AudioRecord constructor failed - busy?"
32830 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32832 + throw v0
32834 + :cond_75
32835 + iget v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32837 + invoke-static {v0}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordStart(I)I
32839 + move-result v8
32841 + if-eqz v8, :cond_99
32843 invoke-virtual {p0}, Landroid/speech/srec/MicrophoneInputStream;->close()V
32845 - new-instance v1, Ljava/io/IOException;
32846 + new-instance v0, Ljava/io/IOException;
32848 - new-instance v2, Ljava/lang/StringBuilder;
32849 + new-instance v1, Ljava/lang/StringBuilder;
32851 - invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
32852 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
32854 - const-string v3, "AudioRecord start failed: "
32855 + const-string v2, "AudioRecord start failed: "
32857 - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32858 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32860 - move-result-object v2
32861 + move-result-object v1
32863 - invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
32864 + invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
32866 - move-result-object v2
32867 + move-result-object v1
32869 - invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32870 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32872 - move-result-object v2
32873 + move-result-object v1
32875 - invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32876 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32878 - throw v1
32879 + throw v0
32881 - :cond_41
32882 + :cond_99
32883 return-void
32884 .end method
32886 @@ -131,6 +235,334 @@
32887 .end annotation
32888 .end method
32890 +.method private checkIfPackagesAllowed()I
32891 + .registers 9
32893 + const/4 v5, -0x3
32895 + :try_start_1
32896 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32898 + if-eqz v6, :cond_41
32900 + const/4 v2, 0x0
32902 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
32904 + move-result-object v3
32906 + invoke-static {}, Landroid/os/Process;->myUid()I
32908 + move-result v4
32910 + if-eqz v3, :cond_2c
32912 + const/4 v1, 0x0
32914 + :goto_11
32915 + array-length v6, v3
32917 + if-ge v1, v6, :cond_2a
32919 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32921 + aget-object v7, v3, v1
32923 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32925 + move-result-object v2
32927 + if-eqz v2, :cond_26
32929 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
32931 + move-result v6
32933 + if-eqz v6, :cond_26
32935 + const/4 v5, -0x2
32937 + :goto_25
32938 + return v5
32940 + :cond_26
32941 + const/4 v2, 0x0
32943 + add-int/lit8 v1, v1, 0x1
32945 + goto :goto_11
32947 + :cond_2a
32948 + const/4 v5, -0x1
32950 + goto :goto_25
32952 + :cond_2c
32953 + const-string v6, "PM,MicrophoneInputStream"
32955 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
32957 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32958 + :try_end_34
32959 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
32961 + goto :goto_25
32963 + :catch_35
32964 + move-exception v0
32966 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32968 + const-string v6, "PM,MicrophoneInputStream"
32970 + const-string v7, "Got exception in checkIfPackagesAllowed"
32972 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32974 + goto :goto_25
32976 + :cond_41
32977 + :try_start_41
32978 + const-string v6, "PM,MicrophoneInputStream"
32980 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
32982 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32983 + :try_end_49
32984 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
32986 + goto :goto_25
32987 +.end method
32989 +.method private dataAccess(Z)V
32990 + .registers 7
32992 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
32994 + move-result-object v1
32996 + if-eqz p1, :cond_2f
32998 + if-eqz v1, :cond_2f
33000 + const/4 v0, 0x0
33002 + :goto_9
33003 + array-length v2, v1
33005 + if-ge v0, v2, :cond_58
33007 + const-string v2, "PM,MicrophoneInputStream"
33009 + new-instance v3, Ljava/lang/StringBuilder;
33011 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
33013 + const-string v4, "Allowed Package: -"
33015 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33017 + move-result-object v3
33019 + aget-object v4, v1, v0
33021 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33023 + move-result-object v3
33025 + const-string v4, "- accessing microphone."
33027 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33029 + move-result-object v3
33031 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33033 + move-result-object v3
33035 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
33037 + add-int/lit8 v0, v0, 0x1
33039 + goto :goto_9
33041 + :cond_2f
33042 + if-eqz v1, :cond_58
33044 + const/4 v0, 0x0
33046 + :goto_32
33047 + array-length v2, v1
33049 + if-ge v0, v2, :cond_58
33051 + const-string v2, "PM,MicrophoneInputStream"
33053 + new-instance v3, Ljava/lang/StringBuilder;
33055 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
33057 + const-string v4, "Blocked Package: -"
33059 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33061 + move-result-object v3
33063 + aget-object v4, v1, v0
33065 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33067 + move-result-object v3
33069 + const-string v4, "- accessing microphone."
33071 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33073 + move-result-object v3
33075 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33077 + move-result-object v3
33079 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
33081 + add-int/lit8 v0, v0, 0x1
33083 + goto :goto_32
33085 + :cond_58
33086 + return-void
33087 +.end method
33089 +.method private getPackageName()[Ljava/lang/String;
33090 + .registers 6
33092 + :try_start_0
33093 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33095 + if-eqz v3, :cond_f
33097 + invoke-static {}, Landroid/os/Process;->myUid()I
33099 + move-result v2
33101 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33103 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
33105 + move-result-object v1
33107 + :goto_e
33108 + return-object v1
33110 + :cond_f
33111 + const-string/jumbo v3, "package"
33113 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33115 + move-result-object v3
33117 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33119 + move-result-object v3
33121 + iput-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33123 + invoke-static {}, Landroid/os/Process;->myUid()I
33125 + move-result v2
33127 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33129 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
33130 + :try_end_25
33131 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
33133 + move-result-object v1
33135 + goto :goto_e
33137 + :catch_27
33138 + move-exception v0
33140 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33142 + const-string v3, "PM,MicrophoneInputStream"
33144 + const-string/jumbo v4, "something went wrong with getting package name"
33146 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33148 + const/4 v1, 0x0
33150 + goto :goto_e
33151 +.end method
33153 +.method private initiate()V
33154 + .registers 5
33156 + const/4 v1, 0x0
33158 + :try_start_1
33159 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->context:Landroid/content/Context;
33161 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
33163 + iget-object v2, p0, Landroid/speech/srec/MicrophoneInputStream;->context:Landroid/content/Context;
33165 + const-string/jumbo v3, "privacy"
33167 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33169 + move-result-object v3
33171 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
33173 + move-result-object v3
33175 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
33177 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33179 + const-string/jumbo v1, "package"
33181 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33183 + move-result-object v1
33185 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33187 + move-result-object v1
33189 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33191 + const/4 v1, 0x1
33193 + iput-boolean v1, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33194 + :try_end_27
33195 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
33197 + :goto_27
33198 + return-void
33200 + :catch_28
33201 + move-exception v0
33203 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33205 + const-string v1, "PM,MicrophoneInputStream"
33207 + const-string v2, "Something went wrong with initalize variables"
33209 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33211 + const/4 v1, 0x0
33213 + iput-boolean v1, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33215 + goto :goto_27
33216 +.end method
33219 # virtual methods
33220 .method public close()V
33221 diff -Npru stock-framework/smali/android/telephony/PhoneStateListener$1.smali opd-framework/smali/android/telephony/PhoneStateListener$1.smali
33222 --- stock-framework/smali/android/telephony/PhoneStateListener$1.smali 2013-01-21 12:55:59.452759019 -0600
33223 +++ opd-framework/smali/android/telephony/PhoneStateListener$1.smali 2013-01-20 23:05:46.099695066 -0600
33224 @@ -64,23 +64,196 @@
33225 .end method
33227 .method public onCallStateChanged(ILjava/lang/String;)V
33228 - .registers 6
33229 + .registers 19
33231 - iget-object v0, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33232 + move-object/from16 v0, p0
33234 - iget-object v0, v0, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33235 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33237 - const/16 v1, 0x20
33238 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33239 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33241 - const/4 v2, 0x0
33242 + move-result-object v3
33244 - invoke-static {v0, v1, p1, v2, p2}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33245 + if-eqz v3, :cond_99
33247 - move-result-object v0
33248 + if-eqz p2, :cond_99
33250 - invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
33251 + invoke-virtual/range {p2 .. p2}, Ljava/lang/String;->isEmpty()Z
33253 + move-result v3
33255 + if-nez v3, :cond_99
33257 + move-object/from16 v0, p0
33259 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33261 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33262 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33264 + move-result-object v3
33266 + const-string/jumbo v4, "privacy"
33268 + invoke-virtual {v3, v4}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
33270 + move-result-object v2
33272 + check-cast v2, Landroid/privacy/PrivacySettingsManager;
33274 + move-object/from16 v0, p0
33276 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33278 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33279 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33281 + move-result-object v3
33283 + move-object/from16 v0, p0
33285 + iget-object v4, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33287 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33288 + invoke-static {v4}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33290 + move-result v4
33292 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33294 + move-result-object v8
33296 + if-eqz v8, :cond_6a
33298 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
33300 + move-result v3
33302 + if-eqz v3, :cond_6a
33304 + const-string v7, ""
33306 + move-object/from16 v0, p0
33308 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33310 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33312 + const/16 v4, 0x20
33314 + const/4 v5, 0x0
33316 + move/from16 v0, p1
33318 + invoke-static {v3, v4, v0, v5, v7}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33320 + move-result-object v3
33322 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33324 + move-object/from16 v0, p0
33326 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33328 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33329 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33331 + move-result-object v3
33333 + move-object/from16 v0, p0
33335 + iget-object v4, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33337 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33338 + invoke-static {v4}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33340 + move-result v4
33342 + const/4 v5, 0x1
33344 + const-string v6, "incomingCall"
33346 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33348 + :goto_69
33349 return-void
33351 + :cond_6a
33352 + move-object/from16 v0, p0
33354 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33356 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33358 + const/16 v4, 0x20
33360 + const/4 v5, 0x0
33362 + move/from16 v0, p1
33364 + move-object/from16 v1, p2
33366 + invoke-static {v3, v4, v0, v5, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33368 + move-result-object v3
33370 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33372 + move-object/from16 v0, p0
33374 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33376 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33377 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33379 + move-result-object v10
33381 + move-object/from16 v0, p0
33383 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33385 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33386 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33388 + move-result v11
33390 + const/4 v12, 0x0
33392 + const-string v13, "incomingCall"
33394 + move-object v9, v2
33396 + move-object/from16 v14, p2
33398 + move-object v15, v8
33400 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33402 + goto :goto_69
33404 + :cond_99
33405 + move-object/from16 v0, p0
33407 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33409 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33411 + const/16 v4, 0x20
33413 + const/4 v5, 0x0
33415 + move/from16 v0, p1
33417 + move-object/from16 v1, p2
33419 + invoke-static {v3, v4, v0, v5, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33421 + move-result-object v3
33423 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33425 + goto :goto_69
33426 .end method
33428 .method public onCellInfoChanged(Ljava/util/List;)V
33429 @@ -113,27 +286,124 @@
33430 .end method
33432 .method public onCellLocationChanged(Landroid/os/Bundle;)V
33433 - .registers 6
33434 + .registers 10
33436 + const/4 v5, 0x0
33438 const/4 v3, 0x0
33440 invoke-static {p1}, Landroid/telephony/CellLocation;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/CellLocation;
33442 + move-result-object v7
33444 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33446 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33447 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33449 + move-result-object v1
33451 + if-eqz v1, :cond_4a
33453 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33455 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33456 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33458 + move-result-object v1
33460 + const-string/jumbo v2, "privacy"
33462 + invoke-virtual {v1, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
33464 move-result-object v0
33466 + check-cast v0, Landroid/privacy/PrivacySettingsManager;
33468 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33470 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33471 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33473 + move-result-object v1
33475 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33477 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33478 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33480 + move-result v2
33482 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33484 + move-result-object v6
33486 + if-eqz v6, :cond_4b
33488 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
33490 + move-result v1
33492 + if-eqz v1, :cond_4b
33494 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33496 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33497 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33499 + move-result-object v1
33501 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33503 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33504 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33506 + move-result v2
33508 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
33510 + move-result v3
33512 + const-string v4, "locationNetwork"
33514 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33516 + :cond_4a
33517 + :goto_4a
33518 + return-void
33520 + :cond_4b
33521 iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33523 iget-object v1, v1, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33525 const/16 v2, 0x10
33527 - invoke-static {v1, v2, v3, v3, v0}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33528 + invoke-static {v1, v2, v3, v3, v7}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33530 move-result-object v1
33532 invoke-virtual {v1}, Landroid/os/Message;->sendToTarget()V
33534 - return-void
33535 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33537 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33538 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33540 + move-result-object v1
33542 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33544 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33545 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33547 + move-result v2
33549 + const-string v4, "locationNetwork"
33551 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33553 + goto :goto_4a
33554 .end method
33556 .method public onDataActivity(I)V
33557 diff -Npru stock-framework/smali/android/telephony/PhoneStateListener.smali opd-framework/smali/android/telephony/PhoneStateListener.smali
33558 --- stock-framework/smali/android/telephony/PhoneStateListener.smali 2013-01-21 12:55:58.085460215 -0600
33559 +++ opd-framework/smali/android/telephony/PhoneStateListener.smali 2013-01-20 23:05:45.255705675 -0600
33560 @@ -31,12 +31,20 @@
33562 .field public static final LISTEN_SIGNAL_STRENGTHS:I = 0x100
33564 +.field private static final TAG:Ljava/lang/String; = "PhoneStateListener"
33567 # instance fields
33568 .field callback:Lcom/android/internal/telephony/IPhoneStateListener;
33570 +.field private context:Landroid/content/Context;
33572 .field mHandler:Landroid/os/Handler;
33574 +.field private packageName:Ljava/lang/String;
33576 +.field private uid:I
33579 # direct methods
33580 .method public constructor <init>()V
33581 @@ -59,6 +67,30 @@
33582 return-void
33583 .end method
33585 +.method static synthetic access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33586 + .registers 2
33588 + iget-object v0, p0, Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33590 + return-object v0
33591 +.end method
33593 +.method static synthetic access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33594 + .registers 2
33596 + iget-object v0, p0, Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33598 + return-object v0
33599 +.end method
33601 +.method static synthetic access$200(Landroid/telephony/PhoneStateListener;)I
33602 + .registers 2
33604 + iget v0, p0, Landroid/telephony/PhoneStateListener;->uid:I
33606 + return v0
33607 +.end method
33610 # virtual methods
33611 .method public onCallForwardingIndicatorChanged(Z)V
33612 @@ -143,3 +175,27 @@
33614 return-void
33615 .end method
33617 +.method public setContext(Landroid/content/Context;)V
33618 + .registers 2
33620 + iput-object p1, p0, Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33622 + return-void
33623 +.end method
33625 +.method public setPackageName(Ljava/lang/String;)V
33626 + .registers 2
33628 + iput-object p1, p0, Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33630 + return-void
33631 +.end method
33633 +.method public setUid(I)V
33634 + .registers 2
33636 + iput p1, p0, Landroid/telephony/PhoneStateListener;->uid:I
33638 + return-void
33639 +.end method
33640 diff -Npru stock-framework/smali/android/telephony/ServiceState.smali opd-framework/smali/android/telephony/ServiceState.smali
33641 --- stock-framework/smali/android/telephony/ServiceState.smali 2013-01-21 12:55:59.452759019 -0600
33642 +++ opd-framework/smali/android/telephony/ServiceState.smali 2013-01-20 23:05:46.103695016 -0600
33643 @@ -668,48 +668,6 @@
33644 return-void
33645 .end method
33647 -.method private setNullState(I)V
33648 - .registers 5
33650 - const/4 v2, 0x0
33652 - const/4 v1, 0x0
33654 - const/4 v0, -0x1
33656 - iput p1, p0, Landroid/telephony/ServiceState;->mState:I
33658 - iput-boolean v1, p0, Landroid/telephony/ServiceState;->mRoaming:Z
33660 - iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorAlphaLong:Ljava/lang/String;
33662 - iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorAlphaShort:Ljava/lang/String;
33664 - iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorNumeric:Ljava/lang/String;
33666 - iput-boolean v1, p0, Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
33668 - iput v1, p0, Landroid/telephony/ServiceState;->mRadioTechnology:I
33670 - iput-boolean v1, p0, Landroid/telephony/ServiceState;->mCssIndicator:Z
33672 - iput v0, p0, Landroid/telephony/ServiceState;->mNetworkId:I
33674 - iput v0, p0, Landroid/telephony/ServiceState;->mSystemId:I
33676 - iput v0, p0, Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
33678 - iput v0, p0, Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
33680 - iput v0, p0, Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
33682 - iput v0, p0, Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
33684 - iput-boolean v1, p0, Landroid/telephony/ServiceState;->mIsEmergencyOnly:Z
33686 - return-void
33687 -.end method
33690 # virtual methods
33691 .method protected copyFrom(Landroid/telephony/ServiceState;)V
33692 @@ -1511,6 +1469,48 @@
33693 return-void
33694 .end method
33696 +.method setNullState(I)V
33697 + .registers 5
33699 + const/4 v2, 0x0
33701 + const/4 v1, 0x0
33703 + const/4 v0, -0x1
33705 + iput p1, p0, Landroid/telephony/ServiceState;->mState:I
33707 + iput-boolean v1, p0, Landroid/telephony/ServiceState;->mRoaming:Z
33709 + iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorAlphaLong:Ljava/lang/String;
33711 + iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorAlphaShort:Ljava/lang/String;
33713 + iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorNumeric:Ljava/lang/String;
33715 + iput-boolean v1, p0, Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
33717 + iput v1, p0, Landroid/telephony/ServiceState;->mRadioTechnology:I
33719 + iput-boolean v1, p0, Landroid/telephony/ServiceState;->mCssIndicator:Z
33721 + iput v0, p0, Landroid/telephony/ServiceState;->mNetworkId:I
33723 + iput v0, p0, Landroid/telephony/ServiceState;->mSystemId:I
33725 + iput v0, p0, Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
33727 + iput v0, p0, Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
33729 + iput v0, p0, Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
33731 + iput v0, p0, Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
33733 + iput-boolean v1, p0, Landroid/telephony/ServiceState;->mIsEmergencyOnly:Z
33735 + return-void
33736 +.end method
33738 .method public setOperatorAlphaLong(Ljava/lang/String;)V
33739 .registers 2
33741 @@ -1560,7 +1560,7 @@
33743 const/4 v0, 0x3
33745 - invoke-direct {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33746 + invoke-virtual {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33748 return-void
33749 .end method
33750 @@ -1570,7 +1570,7 @@
33752 const/4 v0, 0x1
33754 - invoke-direct {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33755 + invoke-virtual {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33757 return-void
33758 .end method