1 diff -Npru stock-framework/smali/android/app/ContextImpl$10.smali pdroid-framework/smali/android/app/ContextImpl$10.smali
2 --- stock-framework/smali/android/app/ContextImpl$10.smali 2013-08-10 20:37:46.151213593 -0700
3 +++ pdroid-framework/smali/android/app/ContextImpl$10.smali 2013-08-10 20:37:40.607213363 -0700
7 .method public createStaticService()Ljava/lang/Object;
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;
19 - new-instance v1, Landroid/net/ConnectivityManager;
20 + const-string v2, "ContextImpl"
22 + const-string v3, "PDroid:ContextImpl: returning PrivacyConnectivityManager"
24 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26 invoke-static {v0}, Landroid/net/IConnectivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IConnectivityManager;
28 - move-result-object v2
29 + move-result-object v1
31 + new-instance v2, Landroid/privacy/surrogate/PrivacyConnectivityManager;
33 + invoke-static {}, Landroid/app/ContextImpl;->getStaticOuterContext()Landroid/content/Context;
35 + move-result-object v3
37 - invoke-direct {v1, v2}, Landroid/net/ConnectivityManager;-><init>(Landroid/net/IConnectivityManager;)V
38 + invoke-direct {v2, v1, v3}, Landroid/privacy/surrogate/PrivacyConnectivityManager;-><init>(Landroid/net/IConnectivityManager;Landroid/content/Context;)V
43 diff -Npru stock-framework/smali/android/app/ContextImpl$22.smali pdroid-framework/smali/android/app/ContextImpl$22.smali
44 --- stock-framework/smali/android/app/ContextImpl$22.smali 2013-08-10 20:37:46.159213593 -0700
45 +++ pdroid-framework/smali/android/app/ContextImpl$22.smali 2013-08-10 20:37:40.611213364 -0700
49 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
53 const-string v1, "location"
59 - new-instance v1, Landroid/location/LocationManager;
60 + const-string v1, "ContextImpl"
62 + const-string v2, "PDroid:ContextImpl: returning PrivacyLocationManager"
64 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
66 + new-instance v1, Landroid/privacy/surrogate/PrivacyLocationManager;
68 invoke-static {v0}, Landroid/location/ILocationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ILocationManager;
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
81 diff -Npru stock-framework/smali/android/app/ContextImpl$31.smali pdroid-framework/smali/android/app/ContextImpl$31.smali
82 --- stock-framework/smali/android/app/ContextImpl$31.smali 2013-08-10 20:37:46.163213594 -0700
83 +++ pdroid-framework/smali/android/app/ContextImpl$31.smali 2013-08-10 20:37:40.615213364 -0700
85 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
88 - new-instance v0, Landroid/telephony/TelephonyManager;
89 + const-string v0, "ContextImpl"
91 + const-string v1, "PDroid:ContextImpl: returning PrivacyTelephonyManager"
93 + invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
95 + new-instance v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;
97 invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
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
106 diff -Npru stock-framework/smali/android/app/ContextImpl$36.smali pdroid-framework/smali/android/app/ContextImpl$36.smali
107 --- stock-framework/smali/android/app/ContextImpl$36.smali 2013-08-10 20:37:46.163213594 -0700
108 +++ pdroid-framework/smali/android/app/ContextImpl$36.smali 2013-08-10 20:37:40.619213363 -0700
111 move-result-object v1
113 - new-instance v2, Landroid/net/wifi/WifiManager;
114 + const-string v2, "ContextImpl"
116 + const-string v3, "PDroid:ContextImpl: returning PrivacyWifiManager"
118 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
120 + new-instance v2, Landroid/privacy/surrogate/PrivacyWifiManager;
122 invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
124 move-result-object v3
126 - invoke-direct {v2, v3, v1}, Landroid/net/wifi/WifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
127 + invoke-direct {v2, v3, v1}, Landroid/privacy/surrogate/PrivacyWifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
131 diff -Npru stock-framework/smali/android/app/ContextImpl$38.smali pdroid-framework/smali/android/app/ContextImpl$38.smali
132 --- stock-framework/smali/android/app/ContextImpl$38.smali 2013-08-10 20:37:46.163213594 -0700
133 +++ pdroid-framework/smali/android/app/ContextImpl$38.smali 2013-08-10 20:37:40.619213363 -0700
135 .class final Landroid/app/ContextImpl$38;
136 -.super Landroid/app/ContextImpl$ServiceFetcher;
137 +.super Landroid/app/ContextImpl$StaticServiceFetcher;
138 .source "ContextImpl.java"
142 .method constructor <init>()V
145 - invoke-direct {p0}, Landroid/app/ContextImpl$ServiceFetcher;-><init>()V
146 + invoke-direct {p0}, Landroid/app/ContextImpl$StaticServiceFetcher;-><init>()V
153 -.method public getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
155 +.method public createStaticService()Ljava/lang/Object;
158 - #getter for: Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
159 - invoke-static {p1}, Landroid/app/ContextImpl;->access$100(Landroid/app/ContextImpl;)Landroid/view/Display;
160 + const-string v2, "ContextImpl"
162 - move-result-object v0
163 + const-string v3, "PDroid:ContextImpl: Creating static privacy service"
165 - if-nez v0, :cond_17
166 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
168 - invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
169 + const-string/jumbo v2, "privacy"
171 - move-result-object v2
172 + invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
174 - const-string v3, "display"
175 + move-result-object v0
177 - invoke-virtual {v2, v3}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
178 + invoke-static {v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
180 move-result-object v1
182 - check-cast v1, Landroid/hardware/display/DisplayManager;
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;
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
201 diff -Npru stock-framework/smali/android/app/ContextImpl$39.smali pdroid-framework/smali/android/app/ContextImpl$39.smali
202 --- stock-framework/smali/android/app/ContextImpl$39.smali 2013-08-10 20:37:46.163213594 -0700
203 +++ pdroid-framework/smali/android/app/ContextImpl$39.smali 2013-08-10 20:37:40.619213363 -0700
208 -.method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
210 +.method public getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
213 - const-string/jumbo v2, "user"
215 - invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
216 + #getter for: Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
217 + invoke-static {p1}, Landroid/app/ContextImpl;->access$100(Landroid/app/ContextImpl;)Landroid/view/Display;
219 move-result-object v0
221 - invoke-static {v0}, Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
222 + if-nez v0, :cond_17
224 + invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
226 + move-result-object v2
228 + const-string v3, "display"
230 + invoke-virtual {v2, v3}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
232 move-result-object v1
234 - new-instance v2, Landroid/os/UserManager;
235 + check-cast v1, Landroid/hardware/display/DisplayManager;
239 + invoke-virtual {v1, v2}, Landroid/hardware/display/DisplayManager;->getDisplay(I)Landroid/view/Display;
241 + move-result-object v0
244 + new-instance v2, Landroid/view/WindowManagerImpl;
246 - invoke-direct {v2, p1, v1}, Landroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
247 + invoke-direct {v2, v0}, Landroid/view/WindowManagerImpl;-><init>(Landroid/view/Display;)V
251 diff -Npru stock-framework/smali/android/app/ContextImpl$3.smali pdroid-framework/smali/android/app/ContextImpl$3.smali
252 --- stock-framework/smali/android/app/ContextImpl$3.smali 2013-08-10 20:37:46.163213594 -0700
253 +++ pdroid-framework/smali/android/app/ContextImpl$3.smali 2013-08-10 20:37:40.619213363 -0700
257 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
261 const-string v2, "account"
265 move-result-object v1
267 - new-instance v2, Landroid/accounts/AccountManager;
268 + const-string v2, "ContextImpl"
270 - invoke-direct {v2, p1, v1}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
271 + const-string v3, "PDroid:ContextImpl: returning PrivacyAccountManager rather than AccountManager"
273 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
275 + new-instance v2, Landroid/privacy/surrogate/PrivacyAccountManager;
277 + invoke-direct {v2, p1, v1}, Landroid/privacy/surrogate/PrivacyAccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
281 diff -Npru stock-framework/smali/android/app/ContextImpl$40.smali pdroid-framework/smali/android/app/ContextImpl$40.smali
282 --- stock-framework/smali/android/app/ContextImpl$40.smali 2013-08-10 20:37:46.163213594 -0700
283 +++ pdroid-framework/smali/android/app/ContextImpl$40.smali 2013-08-10 20:37:40.619213363 -0700
285 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
288 - const-string v2, "appops"
289 + const-string/jumbo v2, "user"
291 invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
293 move-result-object v0
295 - invoke-static {v0}, Lcom/android/internal/app/IAppOpsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsService;
296 + invoke-static {v0}, Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
298 move-result-object v1
300 - new-instance v2, Landroid/app/AppOpsManager;
301 + new-instance v2, Landroid/os/UserManager;
303 - invoke-direct {v2, p1, v1}, Landroid/app/AppOpsManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IAppOpsService;)V
304 + invoke-direct {v2, p1, v1}, Landroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
308 diff -Npru stock-framework/smali/android/app/ContextImpl$41.smali pdroid-framework/smali/android/app/ContextImpl$41.smali
309 --- stock-framework/smali/android/app/ContextImpl$41.smali 2013-08-10 20:37:46.163213594 -0700
310 +++ pdroid-framework/smali/android/app/ContextImpl$41.smali 2013-08-10 20:37:40.619213363 -0700
314 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
318 - iget-object v0, p1, Landroid/app/ContextImpl;->mMainThread:Landroid/app/ActivityThread;
319 + const-string v2, "appops"
321 - invoke-virtual {v0}, Landroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
322 + invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
324 move-result-object v0
326 - invoke-static {p1, v0}, Landroid/net/wimax/WimaxHelper;->createWimaxService(Landroid/content/Context;Landroid/os/Handler;)Ljava/lang/Object;
327 + invoke-static {v0}, Lcom/android/internal/app/IAppOpsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsService;
329 - move-result-object v0
330 + move-result-object v1
332 + new-instance v2, Landroid/app/AppOpsManager;
334 + invoke-direct {v2, p1, v1}, Landroid/app/AppOpsManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IAppOpsService;)V
339 diff -Npru stock-framework/smali/android/app/ContextImpl$42.smali pdroid-framework/smali/android/app/ContextImpl$42.smali
340 --- stock-framework/smali/android/app/ContextImpl$42.smali 1969-12-31 16:00:00.000000000 -0800
341 +++ pdroid-framework/smali/android/app/ContextImpl$42.smali 2013-08-10 20:37:40.619213363 -0700
343 +.class final Landroid/app/ContextImpl$42;
344 +.super Landroid/app/ContextImpl$ServiceFetcher;
345 +.source "ContextImpl.java"
349 +.annotation system Ldalvik/annotation/EnclosingClass;
350 + value = Landroid/app/ContextImpl;
353 +.annotation system Ldalvik/annotation/InnerClass;
360 +.method constructor <init>()V
363 + invoke-direct {p0}, Landroid/app/ContextImpl$ServiceFetcher;-><init>()V
370 +.method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
373 + iget-object v0, p1, Landroid/app/ContextImpl;->mMainThread:Landroid/app/ActivityThread;
375 + invoke-virtual {v0}, Landroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
377 + move-result-object v0
379 + invoke-static {p1, v0}, Landroid/net/wimax/WimaxHelper;->createWimaxService(Landroid/content/Context;Landroid/os/Handler;)Ljava/lang/Object;
381 + move-result-object v0
385 diff -Npru stock-framework/smali/android/app/ContextImpl.smali pdroid-framework/smali/android/app/ContextImpl.smali
386 --- stock-framework/smali/android/app/ContextImpl.smali 2013-08-10 20:37:46.183213595 -0700
387 +++ pdroid-framework/smali/android/app/ContextImpl.smali 2013-08-10 20:37:40.647213365 -0700
390 .field private static sNextPerContextServiceCacheIndex:I
392 +.field private static sOuterContext:Landroid/content/Context;
394 .field private static final sSharedPrefs:Ljava/util/HashMap;
395 .annotation system Ldalvik/annotation/Signature;
399 sput-object v0, Landroid/app/ContextImpl;->sSharedPrefs:Ljava/util/HashMap;
403 + sput-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
405 new-array v0, v1, [Ljava/lang/String;
407 sput-object v0, Landroid/app/ContextImpl;->EMPTY_FILE_LIST:[Ljava/lang/String;
410 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
412 - const-string/jumbo v0, "window"
413 + const-string/jumbo v0, "privacy"
415 new-instance v1, Landroid/app/ContextImpl$38;
419 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
421 - const-string/jumbo v0, "user"
422 + const-string/jumbo v0, "window"
424 new-instance v1, Landroid/app/ContextImpl$39;
428 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
430 - const-string v0, "appops"
431 + const-string/jumbo v0, "user"
433 new-instance v1, Landroid/app/ContextImpl$40;
437 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
439 - const-string v0, "WiMax"
440 + const-string v0, "appops"
442 new-instance v1, Landroid/app/ContextImpl$41;
446 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
448 + const-string v0, "WiMax"
450 + new-instance v1, Landroid/app/ContextImpl$42;
452 + invoke-direct {v1}, Landroid/app/ContextImpl$42;-><init>()V
454 + invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
461 iput-object v0, p0, Landroid/app/ContextImpl;->mServiceCache:Ljava/util/ArrayList;
463 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
465 + if-eqz v0, :cond_26
467 + const-string v0, "ContextImpl"
469 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
471 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
474 iput-object p0, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
476 + sput-object p0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
483 iput-object v0, p0, Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
485 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
487 + if-eqz v0, :cond_42
489 + const-string v0, "ContextImpl"
491 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
493 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
496 iput-object p0, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
498 + sput-object p0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
503 @@ -1061,6 +1101,14 @@
507 +.method static final getStaticOuterContext()Landroid/content/Context;
510 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
515 .method private getWallpaperManager()Landroid/app/WallpaperManager;
518 @@ -5198,10 +5246,23 @@
521 .method final setOuterContext(Landroid/content/Context;)V
525 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
529 + const-string v0, "ContextImpl"
531 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
533 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
536 iput-object p1, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
538 + sput-object p1, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
543 diff -Npru stock-framework/smali/android/app/Fragment.smali pdroid-framework/smali/android/app/Fragment.smali
544 --- stock-framework/smali/android/app/Fragment.smali 2013-08-10 20:37:46.191213594 -0700
545 +++ pdroid-framework/smali/android/app/Fragment.smali 2013-08-10 20:37:40.655213366 -0700
546 @@ -593,11 +593,11 @@
548 iget-object v0, p0, Landroid/app/Fragment;->mSavedFragmentState:Landroid/os/Bundle;
550 - if-eqz v0, :cond_12b
551 + if-eqz v0, :cond_12c
553 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
555 - const-string v0, "mSavedFragmentState="
556 + const-string/jumbo v0, "mSavedFragmentState="
558 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
560 @@ -605,14 +605,14 @@
562 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
566 iget-object v0, p0, Landroid/app/Fragment;->mSavedViewState:Landroid/util/SparseArray;
568 - if-eqz v0, :cond_13c
569 + if-eqz v0, :cond_13e
571 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
573 - const-string v0, "mSavedViewState="
574 + const-string/jumbo v0, "mSavedViewState="
576 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
578 @@ -620,10 +620,10 @@
580 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
584 iget-object v0, p0, Landroid/app/Fragment;->mTarget:Landroid/app/Fragment;
586 - if-eqz v0, :cond_158
587 + if-eqz v0, :cond_15a
589 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
591 @@ -643,10 +643,10 @@
593 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(I)V
597 iget v0, p0, Landroid/app/Fragment;->mNextAnim:I
599 - if-eqz v0, :cond_169
600 + if-eqz v0, :cond_16b
602 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
604 @@ -658,10 +658,10 @@
606 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(I)V
610 iget-object v0, p0, Landroid/app/Fragment;->mContainer:Landroid/view/ViewGroup;
612 - if-eqz v0, :cond_17a
613 + if-eqz v0, :cond_17c
615 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
617 @@ -673,10 +673,10 @@
619 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
623 iget-object v0, p0, Landroid/app/Fragment;->mView:Landroid/view/View;
625 - if-eqz v0, :cond_18c
626 + if-eqz v0, :cond_18e
628 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
630 @@ -688,10 +688,10 @@
632 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
636 iget-object v0, p0, Landroid/app/Fragment;->mAnimatingAway:Landroid/animation/Animator;
638 - if-eqz v0, :cond_1ab
639 + if-eqz v0, :cond_1ad
641 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
643 @@ -713,10 +713,10 @@
645 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(I)V
649 iget-object v0, p0, Landroid/app/Fragment;->mLoaderManager:Landroid/app/LoaderManagerImpl;
651 - if-eqz v0, :cond_1cf
652 + if-eqz v0, :cond_1d1
654 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
656 @@ -746,10 +746,10 @@
658 invoke-virtual {v0, v1, p2, p3, p4}, Landroid/app/LoaderManagerImpl;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
662 iget-object v0, p0, Landroid/app/Fragment;->mChildFragmentManager:Landroid/app/FragmentManagerImpl;
664 - if-eqz v0, :cond_20c
665 + if-eqz v0, :cond_20e
667 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
671 invoke-virtual {v0, v1, p2, p3, p4}, Landroid/app/FragmentManagerImpl;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
678 diff -Npru stock-framework/smali/android/app/Instrumentation$1.smali pdroid-framework/smali/android/app/Instrumentation$1.smali
679 --- stock-framework/smali/android/app/Instrumentation$1.smali 2013-08-10 20:37:46.331213600 -0700
680 +++ pdroid-framework/smali/android/app/Instrumentation$1.smali 2013-08-10 20:37:40.867213374 -0700
682 -.class synthetic Landroid/app/Instrumentation$1;
683 +.class Landroid/app/Instrumentation$1;
684 .super Ljava/lang/Object;
685 .source "Instrumentation.java"
688 +.implements Ljava/lang/Runnable;
692 -.annotation system Ldalvik/annotation/EnclosingClass;
693 - value = Landroid/app/Instrumentation;
694 +.annotation system Ldalvik/annotation/EnclosingMethod;
695 + value = Landroid/app/Instrumentation;->execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
698 .annotation system Ldalvik/annotation/InnerClass;
699 - accessFlags = 0x1008
706 +.field final synthetic this$0:Landroid/app/Instrumentation;
708 +.field final synthetic val$tmp:Landroid/content/Context;
712 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
715 + iput-object p1, p0, Landroid/app/Instrumentation$1;->this$0:Landroid/app/Instrumentation;
717 + iput-object p2, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
719 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
726 +.method public run()V
729 + const-wide/16 v2, 0x3e8
732 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
734 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
737 + new-instance v1, Landroid/content/Intent;
739 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
741 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
743 + new-instance v0, Landroid/os/Bundle;
745 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
747 + const-string/jumbo v2, "packageName"
749 + iget-object v3, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
751 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
753 + move-result-object v3
755 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
757 + const-string/jumbo v2, "phoneState"
761 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
763 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
765 + iget-object v2, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
767 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
769 + const-string v2, "PrivacyContext"
771 + const-string/jumbo v3, "sent privacy intent"
773 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
782 diff -Npru stock-framework/smali/android/app/Instrumentation$2.smali pdroid-framework/smali/android/app/Instrumentation$2.smali
783 --- stock-framework/smali/android/app/Instrumentation$2.smali 1969-12-31 16:00:00.000000000 -0800
784 +++ pdroid-framework/smali/android/app/Instrumentation$2.smali 2013-08-10 20:37:40.867213374 -0700
786 +.class Landroid/app/Instrumentation$2;
787 +.super Ljava/lang/Object;
788 +.source "Instrumentation.java"
791 +.implements Ljava/lang/Runnable;
795 +.annotation system Ldalvik/annotation/EnclosingMethod;
796 + value = Landroid/app/Instrumentation;->execStartActivitiesAsUser(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;[Landroid/content/Intent;Landroid/os/Bundle;I)V
799 +.annotation system Ldalvik/annotation/InnerClass;
806 +.field final synthetic this$0:Landroid/app/Instrumentation;
808 +.field final synthetic val$tmp:Landroid/content/Context;
812 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
815 + iput-object p1, p0, Landroid/app/Instrumentation$2;->this$0:Landroid/app/Instrumentation;
817 + iput-object p2, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
819 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
826 +.method public run()V
829 + const-wide/16 v2, 0x3e8
832 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
834 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
837 + new-instance v1, Landroid/content/Intent;
839 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
841 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
843 + new-instance v0, Landroid/os/Bundle;
845 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
847 + const-string/jumbo v2, "packageName"
849 + iget-object v3, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
851 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
853 + move-result-object v3
855 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
857 + const-string/jumbo v2, "phoneState"
861 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
863 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
865 + iget-object v2, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
867 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
869 + const-string v2, "PrivacyContext"
871 + const-string/jumbo v3, "sent privacy intent"
873 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
882 diff -Npru stock-framework/smali/android/app/Instrumentation$3.smali pdroid-framework/smali/android/app/Instrumentation$3.smali
883 --- stock-framework/smali/android/app/Instrumentation$3.smali 1969-12-31 16:00:00.000000000 -0800
884 +++ pdroid-framework/smali/android/app/Instrumentation$3.smali 2013-08-10 20:37:40.867213374 -0700
886 +.class Landroid/app/Instrumentation$3;
887 +.super Ljava/lang/Object;
888 +.source "Instrumentation.java"
891 +.implements Ljava/lang/Runnable;
895 +.annotation system Ldalvik/annotation/EnclosingMethod;
896 + value = Landroid/app/Instrumentation;->execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Fragment;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
899 +.annotation system Ldalvik/annotation/InnerClass;
906 +.field final synthetic this$0:Landroid/app/Instrumentation;
908 +.field final synthetic val$tmp:Landroid/content/Context;
912 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
915 + iput-object p1, p0, Landroid/app/Instrumentation$3;->this$0:Landroid/app/Instrumentation;
917 + iput-object p2, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
919 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
926 +.method public run()V
929 + const-wide/16 v2, 0x3e8
932 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
934 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
937 + new-instance v1, Landroid/content/Intent;
939 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
941 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
943 + new-instance v0, Landroid/os/Bundle;
945 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
947 + const-string/jumbo v2, "packageName"
949 + iget-object v3, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
951 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
953 + move-result-object v3
955 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
957 + const-string/jumbo v2, "phoneState"
961 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
963 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
965 + iget-object v2, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
967 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
969 + const-string v2, "PrivacyContext"
971 + const-string/jumbo v3, "sent privacy intent"
973 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
982 diff -Npru stock-framework/smali/android/app/Instrumentation$4.smali pdroid-framework/smali/android/app/Instrumentation$4.smali
983 --- stock-framework/smali/android/app/Instrumentation$4.smali 1969-12-31 16:00:00.000000000 -0800
984 +++ pdroid-framework/smali/android/app/Instrumentation$4.smali 2013-08-10 20:37:40.867213374 -0700
986 +.class Landroid/app/Instrumentation$4;
987 +.super Ljava/lang/Object;
988 +.source "Instrumentation.java"
991 +.implements Ljava/lang/Runnable;
995 +.annotation system Ldalvik/annotation/EnclosingMethod;
996 + value = Landroid/app/Instrumentation;->execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/Instrumentation$ActivityResult;
999 +.annotation system Ldalvik/annotation/InnerClass;
1006 +.field final synthetic this$0:Landroid/app/Instrumentation;
1008 +.field final synthetic val$tmp:Landroid/content/Context;
1012 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
1015 + iput-object p1, p0, Landroid/app/Instrumentation$4;->this$0:Landroid/app/Instrumentation;
1017 + iput-object p2, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1019 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
1026 +.method public run()V
1029 + const-wide/16 v2, 0x3e8
1032 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1034 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1037 + new-instance v1, Landroid/content/Intent;
1039 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1041 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1043 + new-instance v0, Landroid/os/Bundle;
1045 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1047 + const-string/jumbo v2, "packageName"
1049 + iget-object v3, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1051 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1053 + move-result-object v3
1055 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1057 + const-string/jumbo v2, "phoneState"
1061 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1063 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1065 + iget-object v2, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1067 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1069 + const-string v2, "PrivacyContext"
1071 + const-string/jumbo v3, "sent privacy intent"
1073 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1082 diff -Npru stock-framework/smali/android/app/Instrumentation.smali pdroid-framework/smali/android/app/Instrumentation.smali
1083 --- stock-framework/smali/android/app/Instrumentation.smali 2013-08-10 20:37:46.335213601 -0700
1084 +++ pdroid-framework/smali/android/app/Instrumentation.smali 2013-08-10 20:37:40.883213374 -0700
1087 .annotation system Ldalvik/annotation/MemberClasses;
1089 - Landroid/app/Instrumentation$1;,
1090 Landroid/app/Instrumentation$Idler;,
1091 Landroid/app/Instrumentation$ActivityGoing;,
1092 Landroid/app/Instrumentation$ActivityWaiter;,
1095 .field private mPerformanceCollector:Landroid/os/PerformanceCollector;
1097 +.field private mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1099 .field private mRunner:Ljava/lang/Thread;
1101 .field private final mSync:Ljava/lang/Object;
1102 @@ -899,182 +900,131 @@
1105 .method public execStartActivitiesAsUser(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;[Landroid/content/Intent;Landroid/os/Bundle;I)V
1108 - move-object v2, p2
1110 - check-cast v2, Landroid/app/IApplicationThread;
1112 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1114 - if-eqz v1, :cond_37
1116 - iget-object v3, p0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1121 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1123 - invoke-interface {v1}, Ljava/util/List;->size()I
1130 - if-ge v11, v9, :cond_36
1133 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1135 - invoke-interface {v1, v11}, Ljava/util/List;->get(I)Ljava/lang/Object;
1137 - move-result-object v10
1139 - check-cast v10, Landroid/app/Instrumentation$ActivityMonitor;
1145 - aget-object v4, p5, v4
1147 - invoke-virtual {v10, p1, v1, v4}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1148 + move-object/from16 v3, p2
1151 + check-cast v3, Landroid/app/IApplicationThread;
1153 - if-eqz v1, :cond_33
1154 + const-string v2, "Instrumentation"
1156 - iget v1, v10, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1157 + new-instance v4, Ljava/lang/StringBuilder;
1159 - add-int/lit8 v1, v1, 0x1
1160 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1162 - iput v1, v10, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1163 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: execStartActivitiesAsUser for "
1165 - invoke-virtual {v10}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1166 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1169 + move-result-object v4
1171 - if-eqz v1, :cond_36
1172 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1175 + move-result-object v5
1179 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1182 - add-int/lit8 v11, v11, 0x1
1183 + move-result-object v4
1186 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1191 - .catchall {:try_start_a .. :try_end_37} :catchall_5b
1192 + move-result-object v4
1196 - move-object/from16 v0, p5
1197 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1199 - array-length v1, v0
1200 + if-eqz p5, :cond_6f
1202 - new-array v5, v1, [Ljava/lang/String;
1206 + move-object/from16 v13, p5
1209 - move-object/from16 v0, p5
1210 + array-length v0, v13
1212 - array-length v1, v0
1213 + move/from16 v20, v0
1215 - if-ge v11, v1, :cond_5e
1218 - aget-object v1, p5, v11
1220 + move/from16 v0, v18
1222 - invoke-virtual {v1}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1223 + move/from16 v1, v20
1225 - aget-object v1, p5, v11
1226 + if-ge v0, v1, :cond_51
1228 - invoke-virtual {v1}, Landroid/content/Intent;->prepareToLeaveProcess()V
1229 + aget-object v19, v13, v18
1231 - aget-object v1, p5, v11
1233 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1235 - invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1236 + move-result-object v2
1238 - move-result-object v3
1239 + if-eqz v2, :cond_cc
1241 - invoke-virtual {v1, v3}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1242 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1244 - move-result-object v1
1245 + move-result-object v2
1247 - aput-object v1, v5, v11
1249 - .catch Landroid/os/RemoteException; {:try_start_37 .. :try_end_58} :catch_79
1250 + const-string v4, "android.intent.action.CALL"
1252 - add-int/lit8 v11, v11, 0x1
1253 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1260 + if-nez v2, :cond_50
1265 - .catchall {:try_start_5c .. :try_end_5d} :catchall_5b
1266 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1269 + move-result-object v2
1273 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1274 + const-string v4, "android.intent.action.DIAL"
1276 - move-result-object v1
1277 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1279 + .catch Ljava/lang/Exception; {:try_start_32 .. :try_end_4d} :catch_ae
1281 - invoke-virtual {p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
1284 - move-result-object v3
1285 + if-eqz v2, :cond_cc
1287 - move-object/from16 v4, p5
1291 - move-object/from16 v6, p3
1293 + if-nez v14, :cond_d0
1295 - move-object/from16 v7, p6
1296 + const-string v2, "Instrumentation"
1298 - move/from16 v8, p7
1299 + new-instance v4, Ljava/lang/StringBuilder;
1301 - invoke-interface/range {v1 .. v8}, Landroid/app/IActivityManager;->startActivities(Landroid/app/IApplicationThread;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
1302 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1305 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: No provided intents triggered checking for "
1308 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1310 - aget-object v1, p5, v1
1311 + move-result-object v4
1313 - invoke-static {v12, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1315 - .catch Landroid/os/RemoteException; {:try_start_5e .. :try_end_78} :catch_79
1316 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1319 + move-result-object v5
1323 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1327 + move-result-object v4
1329 -.method public execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
1331 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1333 - move-object/from16 v3, p2
1334 + move-result-object v4
1336 - check-cast v3, Landroid/app/IApplicationThread;
1337 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1341 move-object/from16 v0, p0
1343 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1345 - if-eqz v2, :cond_4e
1346 + if-eqz v2, :cond_289
1348 move-object/from16 v0, p0
1350 @@ -1082,540 +1032,2621 @@
1356 move-object/from16 v0, p0
1358 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1360 invoke-interface {v2}, Ljava/util/List;->size()I
1369 - move/from16 v0, v16
1371 + move/from16 v0, v17
1373 - if-ge v0, v14, :cond_4d
1374 + if-ge v0, v10, :cond_288
1376 move-object/from16 v0, p0
1378 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1380 - move/from16 v0, v16
1381 + move/from16 v0, v17
1383 invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
1385 - move-result-object v15
1386 + move-result-object v12
1388 - check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
1389 + check-cast v12, Landroid/app/Instrumentation$ActivityMonitor;
1393 - move-object/from16 v0, p1
1396 - move-object/from16 v1, p5
1397 + aget-object v5, p5, v5
1399 - invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1400 + move-object/from16 v0, p1
1402 + invoke-virtual {v12, v0, v2, v5}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1406 - if-eqz v2, :cond_4a
1407 + if-eqz v2, :cond_284
1409 - iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1410 + iget v2, v12, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1412 add-int/lit8 v2, v2, 0x1
1414 - iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1415 + iput v2, v12, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1417 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1418 + invoke-virtual {v12}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1422 - if-eqz v2, :cond_4d
1424 - if-ltz p6, :cond_48
1426 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
1427 + if-eqz v2, :cond_288
1429 - move-result-object v2
1434 + .catchall {:try_start_7a .. :try_end_ad} :catchall_2b0
1444 + move-exception v15
1447 + const-string v2, "Instrumentation"
1450 - add-int/lit8 v16, v16, 0x1
1451 + new-instance v4, Ljava/lang/StringBuilder;
1454 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1459 - .catchall {:try_start_f .. :try_end_4e} :catchall_84
1460 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Exception occurred when checking intents for "
1464 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1465 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1467 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
1468 + move-result-object v4
1470 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1471 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1473 - move-result-object v2
1474 + move-result-object v5
1476 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
1477 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1479 move-result-object v4
1481 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1482 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1484 - move-result-object v5
1485 + move-result-object v4
1487 - move-object/from16 v0, p5
1488 + invoke-static {v2, v4, v15}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
1490 - invoke-virtual {v0, v5}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1493 - move-result-object v6
1495 + add-int/lit8 v18, v18, 0x1
1497 - if-eqz p4, :cond_87
1500 - move-object/from16 v0, p4
1502 + const-string v2, "Instrumentation"
1504 - iget-object v8, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
1505 + new-instance v4, Ljava/lang/StringBuilder;
1509 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1512 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: One or more intents triggered checking for "
1515 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1517 - move-object/from16 v5, p5
1518 + move-result-object v4
1520 - move-object/from16 v7, p3
1521 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1523 - move/from16 v9, p6
1524 + move-result-object v5
1526 - move-object/from16 v13, p7
1527 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1529 - invoke-interface/range {v2 .. v13}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
1530 + move-result-object v4
1533 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1535 - move/from16 v0, v17
1536 + move-result-object v4
1538 - move-object/from16 v1, p5
1539 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1541 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1543 - .catch Landroid/os/RemoteException; {:try_start_4e .. :try_end_82} :catch_89
1544 + move-object/from16 v0, p0
1548 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1551 + if-eqz v2, :cond_fc
1555 + move-object/from16 v0, p0
1560 - .catchall {:try_start_85 .. :try_end_86} :catchall_84
1561 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1564 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
1571 + if-nez v2, :cond_193
1576 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
1580 + const-string/jumbo v4, "privacy"
1582 -.method public execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/Instrumentation$ActivityResult;
1584 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
1586 - move-object/from16 v4, p2
1587 + move-result-object v4
1589 - check-cast v4, Landroid/app/IApplicationThread;
1590 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
1592 - move-object/from16 v0, p0
1593 + move-result-object v4
1595 - iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1596 + move-object/from16 v0, p1
1598 - if-eqz v3, :cond_56
1599 + invoke-direct {v2, v0, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
1601 move-object/from16 v0, p0
1603 - iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1606 + iput-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1609 move-object/from16 v0, p0
1611 - iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1613 - invoke-interface {v3}, Ljava/util/List;->size()I
1614 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1617 + if-eqz v2, :cond_18b
1620 + const-string v2, "Instrumentation"
1623 - move/from16 v0, v18
1624 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Obtained privacy service"
1626 - move/from16 v1, v16
1627 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1629 - if-ge v0, v1, :cond_55
1633 move-object/from16 v0, p0
1635 - iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1637 - move/from16 v0, v18
1638 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1640 - invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
1641 + if-eqz v2, :cond_130
1643 - move-result-object v17
1644 + move-object/from16 v0, p0
1646 - check-cast v17, Landroid/app/Instrumentation$ActivityMonitor;
1647 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1650 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
1652 - move-object/from16 v0, v17
1655 - move-object/from16 v1, p1
1656 + if-nez v2, :cond_19b
1658 - move-object/from16 v2, p5
1660 + const-string v2, "Instrumentation"
1662 - invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1663 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Privacy service not available - assuming permission denied"
1666 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1668 - if-eqz v3, :cond_52
1671 - move-object/from16 v0, v17
1672 + move-object/from16 v0, p0
1674 - iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1675 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1677 - add-int/lit8 v3, v3, 0x1
1678 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1680 - move-object/from16 v0, v17
1681 + move-result-object v4
1683 - iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1686 - invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1687 + const-string/jumbo v7, "phoneCall"
1692 - if-eqz v3, :cond_55
1693 + invoke-virtual {v2, v4, v5, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
1695 - if-ltz p6, :cond_50
1697 + if-nez v11, :cond_6f
1699 - invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
1700 + new-instance v16, Ljava/util/ArrayList;
1702 - move-result-object v3
1703 + move-object/from16 v0, p5
1707 + array-length v2, v0
1711 + move-object/from16 v0, v16
1715 + invoke-direct {v0, v2}, Ljava/util/ArrayList;-><init>(I)V
1718 + move-object/from16 v13, p5
1721 - add-int/lit8 v18, v18, 0x1
1722 + array-length v0, v13
1725 + move/from16 v20, v0
1730 - .catchall {:try_start_f .. :try_end_56} :catchall_90
1735 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1737 + move/from16 v0, v18
1739 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
1740 + move/from16 v1, v20
1742 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1743 + if-ge v0, v1, :cond_261
1745 - move-result-object v3
1746 + aget-object v19, v13, v18
1748 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
1750 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1752 - move-result-object v5
1753 + move-result-object v2
1755 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1756 + if-eqz v2, :cond_181
1758 - move-result-object v6
1759 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1761 - move-object/from16 v0, p5
1762 + move-result-object v2
1764 - invoke-virtual {v0, v6}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1765 + const-string v4, "android.intent.action.CALL"
1767 - move-result-object v7
1768 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1770 - if-eqz p4, :cond_93
1773 - move-object/from16 v0, p4
1774 + if-nez v2, :cond_188
1776 - iget-object v9, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
1777 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1781 + move-result-object v2
1784 + const-string v4, "android.intent.action.DIAL"
1787 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1789 - invoke-virtual/range {p8 .. p8}, Landroid/os/UserHandle;->getIdentifier()I
1793 + if-nez v2, :cond_188
1795 - move-object/from16 v6, p5
1797 + move-object/from16 v0, v16
1799 - move-object/from16 v8, p3
1800 + move-object/from16 v1, v19
1802 - move/from16 v10, p6
1803 + invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
1805 + .catch Ljava/lang/Exception; {:try_start_163 .. :try_end_188} :catch_242
1807 - move-object/from16 v14, p7
1810 + add-int/lit8 v18, v18, 0x1
1812 - invoke-interface/range {v3 .. v15}, Landroid/app/IActivityManager;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;I)I
1817 + const-string v2, "Instrumentation"
1819 - move/from16 v0, v19
1820 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Privacy service not obtained"
1822 - move-object/from16 v1, p5
1823 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1825 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1827 - .catch Landroid/os/RemoteException; {:try_start_56 .. :try_end_8e} :catch_95
1833 + const-string v2, "Instrumentation"
1836 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Already had privacy service"
1840 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1845 - .catchall {:try_start_91 .. :try_end_92} :catchall_90
1850 + move-object/from16 v0, p0
1854 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1857 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1861 + move-result-object v4
1865 + invoke-virtual {v2, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
1867 -.method public execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Fragment;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
1869 + move-result-object v21
1871 - move-object/from16 v3, p2
1872 + if-nez v21, :cond_1d8
1874 - check-cast v3, Landroid/app/IApplicationThread;
1875 + const-string v2, "Instrumentation"
1877 - move-object/from16 v0, p0
1878 + new-instance v4, Ljava/lang/StringBuilder;
1880 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1881 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1883 - if-eqz v2, :cond_4e
1884 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents allowed: No settings for package: "
1886 - move-object/from16 v0, p0
1887 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1889 - iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1890 + move-result-object v4
1893 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1896 - move-object/from16 v0, p0
1897 + move-result-object v5
1899 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1900 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1902 - invoke-interface {v2}, Ljava/util/List;->size()I
1903 + move-result-object v4
1906 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1909 + move-result-object v4
1912 - move/from16 v0, v16
1913 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1915 - if-ge v0, v14, :cond_4d
1918 move-object/from16 v0, p0
1920 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1921 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1923 - move/from16 v0, v16
1924 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1926 - invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
1927 + move-result-object v4
1929 - move-result-object v15
1932 - check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
1933 + const-string/jumbo v7, "phoneCall"
1938 - move-object/from16 v0, p1
1939 + invoke-virtual {v2, v4, v5, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
1941 - move-object/from16 v1, p5
1944 - invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1946 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
1950 - if-eqz v2, :cond_4a
1951 + if-nez v2, :cond_210
1953 - iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1954 + const-string v2, "Instrumentation"
1956 - add-int/lit8 v2, v2, 0x1
1957 + new-instance v4, Ljava/lang/StringBuilder;
1959 - iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1960 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1962 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1963 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents allowed: Settings permit "
1966 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1968 - if-eqz v2, :cond_4d
1969 + move-result-object v4
1971 - if-ltz p6, :cond_48
1972 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1974 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
1975 + move-result-object v5
1977 - move-result-object v2
1978 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1982 + move-result-object v4
1986 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1990 + move-result-object v4
1993 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1996 - add-int/lit8 v16, v16, 0x1
2000 + move-object/from16 v0, p0
2005 - .catchall {:try_start_f .. :try_end_4e} :catchall_84
2006 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2010 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
2011 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2013 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
2014 + move-result-object v4
2016 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2017 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2019 - move-result-object v2
2022 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
2023 + const-string/jumbo v7, "phoneCall"
2025 - move-result-object v4
2028 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2029 + invoke-virtual {v2, v4, v5, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2031 - move-result-object v5
2034 - move-object/from16 v0, p5
2036 + const-string v2, "Instrumentation"
2038 - invoke-virtual {v0, v5}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2039 + new-instance v4, Ljava/lang/StringBuilder;
2041 - move-result-object v6
2042 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2044 - if-eqz p4, :cond_87
2045 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents denied: Settings deny "
2047 - move-object/from16 v0, p4
2048 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2050 - iget-object v8, v0, Landroid/app/Fragment;->mWho:Ljava/lang/String;
2051 + move-result-object v4
2055 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2058 + move-result-object v5
2061 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2063 - move-object/from16 v5, p5
2064 + move-result-object v4
2066 - move-object/from16 v7, p3
2067 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2069 + move-result-object v4
2071 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2075 + move-object/from16 v0, p0
2077 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2079 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2081 + move-result-object v4
2083 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2087 + const-string/jumbo v7, "phoneCall"
2091 + invoke-virtual {v2, v4, v5, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2096 + move-exception v15
2098 + const-string v2, "Instrumentation"
2100 + new-instance v4, Ljava/lang/StringBuilder;
2102 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2104 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Exception occurred when checking intent for "
2106 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2108 + move-result-object v4
2110 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2112 + move-result-object v5
2114 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2116 + move-result-object v4
2118 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2120 + move-result-object v4
2122 + invoke-static {v2, v4, v15}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2127 + invoke-interface/range {v16 .. v16}, Ljava/util/List;->size()I
2131 + new-array v2, v2, [Landroid/content/Intent;
2133 + move-object/from16 v0, v16
2135 + invoke-interface {v0, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
2137 + move-result-object p5
2139 + check-cast p5, [Landroid/content/Intent;
2141 + move-object/from16 v23, p1
2143 + new-instance v2, Ljava/lang/Thread;
2145 + new-instance v4, Landroid/app/Instrumentation$2;
2147 + move-object/from16 v0, p0
2149 + move-object/from16 v1, v23
2151 + invoke-direct {v4, v0, v1}, Landroid/app/Instrumentation$2;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
2153 + invoke-direct {v2, v4}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
2155 + invoke-virtual {v2}, Ljava/lang/Thread;->start()V
2160 + add-int/lit8 v17, v17, 0x1
2168 + .catchall {:try_start_288 .. :try_end_289} :catchall_2b0
2170 - move/from16 v9, p6
2173 + move-object/from16 v0, p5
2175 + array-length v2, v0
2177 - move-object/from16 v13, p7
2178 + new-array v6, v2, [Ljava/lang/String;
2180 - invoke-interface/range {v2 .. v13}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
2184 + move-object/from16 v0, p5
2187 + array-length v2, v0
2191 - move-object/from16 v1, p5
2192 + if-ge v0, v2, :cond_2b3
2194 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2196 - .catch Landroid/os/RemoteException; {:try_start_4e .. :try_end_82} :catch_89
2197 + aget-object v2, p5, v17
2201 + invoke-virtual {v2}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
2203 + aget-object v2, p5, v17
2205 + invoke-virtual {v2}, Landroid/content/Intent;->prepareToLeaveProcess()V
2207 + aget-object v2, p5, v17
2209 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2211 + move-result-object v4
2213 + invoke-virtual {v2, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2215 + move-result-object v2
2217 + aput-object v2, v6, v17
2219 + .catch Landroid/os/RemoteException; {:try_start_289 .. :try_end_2ad} :catch_2d1
2222 + add-int/lit8 v17, v17, 0x1
2234 - .catchall {:try_start_85 .. :try_end_86} :catchall_84
2236 + .catchall {:try_start_2b1 .. :try_end_2b2} :catchall_2b0
2244 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2246 + move-result-object v2
2248 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
2250 + move-result-object v4
2252 + move-object/from16 v5, p5
2254 + move-object/from16 v7, p3
2256 + move-object/from16 v8, p6
2259 + move/from16 v9, p7
2262 + invoke-interface/range {v2 .. v9}, Landroid/app/IActivityManager;->startActivities(Landroid/app/IApplicationThread;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
2268 + aget-object v2, p5, v2
2270 + move/from16 v0, v22
2272 + invoke-static {v0, v2}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2274 + .catch Landroid/os/RemoteException; {:try_start_2b3 .. :try_end_2cf} :catch_2d1
2285 +.method public execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
2288 + move-object/from16 v4, p2
2290 + check-cast v4, Landroid/app/IApplicationThread;
2295 + const-string v3, "Instrumentation"
2297 + new-instance v5, Ljava/lang/StringBuilder;
2299 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2301 + const-string v6, "PDroid:Instrumentation:execStartActivity: execStartActivity for "
2303 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2305 + move-result-object v5
2307 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2309 + move-result-object v6
2311 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2313 + move-result-object v5
2315 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2317 + move-result-object v5
2319 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2321 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2323 + move-result-object v3
2325 + if-eqz v3, :cond_ba
2327 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2329 + move-result-object v3
2331 + const-string v5, "android.intent.action.CALL"
2333 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2337 + if-nez v3, :cond_40
2339 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2341 + move-result-object v3
2343 + const-string v5, "android.intent.action.DIAL"
2345 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2349 + if-eqz v3, :cond_ba
2354 + const-string v3, "Instrumentation"
2356 + new-instance v5, Ljava/lang/StringBuilder;
2358 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2360 + const-string v6, "PDroid:Instrumentation:execStartActivity: Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
2362 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2364 + move-result-object v5
2366 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2368 + move-result-object v6
2370 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2372 + move-result-object v5
2374 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2376 + move-result-object v5
2378 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2380 + move-object/from16 v0, p0
2382 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2384 + if-eqz v3, :cond_6e
2386 + move-object/from16 v0, p0
2388 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2390 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
2394 + if-nez v3, :cond_12e
2397 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
2399 + const-string/jumbo v5, "privacy"
2401 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
2403 + move-result-object v5
2405 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
2407 + move-result-object v5
2409 + move-object/from16 v0, p1
2411 + invoke-direct {v3, v0, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
2413 + move-object/from16 v0, p0
2415 + iput-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2417 + move-object/from16 v0, p0
2419 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2421 + if-eqz v3, :cond_104
2423 + const-string v3, "Instrumentation"
2425 + const-string v5, "PDroid:Instrumentation:execStartActivity: Obtained privacy service"
2427 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2430 + move-object/from16 v0, p0
2432 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2434 + if-eqz v3, :cond_a1
2436 + move-object/from16 v0, p0
2438 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2440 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
2444 + if-nez v3, :cond_137
2447 + const-string v3, "Instrumentation"
2449 + const-string v5, "PDroid:Instrumentation:execStartActivity: Privacy service not available: rejecting call attempt"
2451 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2455 + move-object/from16 v0, p0
2457 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2459 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2461 + move-result-object v5
2465 + const-string/jumbo v7, "phoneCall"
2469 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2471 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_ba} :catch_10c
2475 + move-object/from16 v0, p0
2477 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2479 + if-eqz v3, :cond_207
2481 + move-object/from16 v0, p0
2483 + iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
2488 + move-object/from16 v0, p0
2490 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2492 + invoke-interface {v3}, Ljava/util/List;->size()I
2499 + move/from16 v0, v19
2501 + if-ge v0, v15, :cond_206
2503 + move-object/from16 v0, p0
2505 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2507 + move/from16 v0, v19
2509 + invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
2511 + move-result-object v17
2513 + check-cast v17, Landroid/app/Instrumentation$ActivityMonitor;
2517 + move-object/from16 v0, v17
2519 + move-object/from16 v1, p1
2521 + move-object/from16 v2, p5
2523 + invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
2527 + if-eqz v3, :cond_202
2529 + move-object/from16 v0, v17
2531 + iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2533 + add-int/lit8 v3, v3, 0x1
2535 + move-object/from16 v0, v17
2537 + iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2539 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
2543 + if-eqz v3, :cond_206
2545 + if-ltz p6, :cond_1ff
2547 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
2549 + move-result-object v3
2554 + .catchall {:try_start_c5 .. :try_end_103} :catchall_221
2561 + const-string v3, "Instrumentation"
2563 + const-string v5, "PDroid:Instrumentation:execStartActivity: Privacy service not obtained"
2565 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2567 + .catch Ljava/lang/Exception; {:try_start_104 .. :try_end_10b} :catch_10c
2572 + move-exception v18
2574 + if-eqz p1, :cond_1f4
2576 + const-string v3, "Instrumentation"
2578 + new-instance v5, Ljava/lang/StringBuilder;
2580 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2582 + const-string v6, "PDroid:Instrumentation:execStartActivity: Exception occurred handling intent for "
2584 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2586 + move-result-object v5
2588 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2590 + move-result-object v6
2592 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2594 + move-result-object v5
2596 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2598 + move-result-object v5
2600 + move-object/from16 v0, v18
2602 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2608 + const-string v3, "Instrumentation"
2610 + const-string v5, "PDroid:Instrumentation:execStartActivity: Already had privacy service"
2612 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2617 + move-object/from16 v0, p0
2619 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2621 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2623 + move-result-object v5
2625 + invoke-virtual {v3, v5}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
2627 + move-result-object v20
2629 + if-nez v20, :cond_175
2631 + const-string v3, "Instrumentation"
2633 + new-instance v5, Ljava/lang/StringBuilder;
2635 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2637 + const-string v6, "PDroid:Instrumentation:execStartActivity: Call allowed: No settings for package: "
2639 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2641 + move-result-object v5
2643 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2645 + move-result-object v6
2647 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2649 + move-result-object v5
2651 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2653 + move-result-object v5
2655 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2659 + move-object/from16 v0, p0
2661 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2663 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2665 + move-result-object v5
2669 + const-string/jumbo v7, "phoneCall"
2673 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2678 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2682 + if-nez v3, :cond_1ae
2684 + const-string v3, "Instrumentation"
2686 + new-instance v5, Ljava/lang/StringBuilder;
2688 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2690 + const-string v6, "PDroid:Instrumentation:execStartActivity: Call allowed: Settings permit "
2692 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2694 + move-result-object v5
2696 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2698 + move-result-object v6
2700 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2702 + move-result-object v5
2704 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2706 + move-result-object v5
2708 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2712 + move-object/from16 v0, p0
2714 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2716 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2718 + move-result-object v5
2720 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2724 + const-string/jumbo v7, "phoneCall"
2728 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2733 + const-string v3, "Instrumentation"
2735 + new-instance v5, Ljava/lang/StringBuilder;
2737 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2739 + const-string v6, "PDroid:Instrumentation:execStartActivity: Call denied: Settings deny "
2741 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2743 + move-result-object v5
2745 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2747 + move-result-object v6
2749 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2751 + move-result-object v5
2753 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2755 + move-result-object v5
2757 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2761 + move-object/from16 v22, p1
2763 + new-instance v3, Ljava/lang/Thread;
2765 + new-instance v5, Landroid/app/Instrumentation$1;
2767 + move-object/from16 v0, p0
2769 + move-object/from16 v1, v22
2771 + invoke-direct {v5, v0, v1}, Landroid/app/Instrumentation$1;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
2773 + invoke-direct {v3, v5}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
2775 + invoke-virtual {v3}, Ljava/lang/Thread;->start()V
2777 + move-object/from16 v0, p0
2779 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2781 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2783 + move-result-object v5
2785 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2789 + const-string/jumbo v7, "phoneCall"
2793 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2795 + .catch Ljava/lang/Exception; {:try_start_12e .. :try_end_1f2} :catch_10c
2800 + const-string v3, "Instrumentation"
2802 + const-string v5, "PDroid:Instrumentation:execStartActivity: Exception occurred handling intent for unknown package"
2804 + move-object/from16 v0, v18
2806 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2816 + add-int/lit8 v19, v19, 0x1
2824 + .catchall {:try_start_206 .. :try_end_207} :catchall_221
2827 + if-nez v16, :cond_224
2830 + new-instance v3, Landroid/app/Instrumentation$ActivityResult;
2832 + move/from16 v0, p6
2834 + move-object/from16 v1, p5
2836 + invoke-direct {v3, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
2838 + .catch Ljava/lang/Exception; {:try_start_209 .. :try_end_212} :catch_214
2843 + move-exception v18
2845 + const-string v3, "Instrumentation"
2847 + const-string v5, "PDroid:Instrumentation:execStartActivity: Exception occurred while trying to create ActivityResult"
2849 + move-object/from16 v0, v18
2851 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2863 + .catchall {:try_start_222 .. :try_end_223} :catchall_221
2869 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
2871 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
2873 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2875 + move-result-object v3
2877 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
2879 + move-result-object v5
2881 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2883 + move-result-object v6
2885 + move-object/from16 v0, p5
2887 + invoke-virtual {v0, v6}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2889 + move-result-object v7
2891 + if-eqz p4, :cond_25b
2893 + move-object/from16 v0, p4
2895 + iget-object v9, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
2904 + move-object/from16 v6, p5
2906 + move-object/from16 v8, p3
2908 + move/from16 v10, p6
2910 + move-object/from16 v14, p7
2912 + invoke-interface/range {v3 .. v14}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
2916 + move/from16 v0, v21
2918 + move-object/from16 v1, p5
2920 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2922 + .catch Landroid/os/RemoteException; {:try_start_224 .. :try_end_258} :catch_25d
2940 +.method public execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/Instrumentation$ActivityResult;
2943 + move-object/from16 v4, p2
2945 + check-cast v4, Landroid/app/IApplicationThread;
2950 + const-string v3, "Instrumentation"
2952 + new-instance v5, Ljava/lang/StringBuilder;
2954 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2956 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): execStartActivity for "
2958 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2960 + move-result-object v5
2962 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2964 + move-result-object v6
2966 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2968 + move-result-object v5
2970 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2972 + move-result-object v5
2974 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2976 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2978 + move-result-object v3
2980 + if-eqz v3, :cond_ba
2982 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2984 + move-result-object v3
2986 + const-string v5, "android.intent.action.CALL"
2988 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2992 + if-nez v3, :cond_40
2994 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2996 + move-result-object v3
2998 + const-string v5, "android.intent.action.DIAL"
3000 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3004 + if-eqz v3, :cond_ba
3009 + const-string v3, "Instrumentation"
3011 + new-instance v5, Ljava/lang/StringBuilder;
3013 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3015 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
3017 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3019 + move-result-object v5
3021 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3023 + move-result-object v6
3025 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3027 + move-result-object v5
3029 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3031 + move-result-object v5
3033 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3035 + move-object/from16 v0, p0
3037 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3039 + if-eqz v3, :cond_6e
3041 + move-object/from16 v0, p0
3043 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3045 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3049 + if-nez v3, :cond_130
3052 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
3054 + const-string/jumbo v5, "privacy"
3056 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
3058 + move-result-object v5
3060 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
3062 + move-result-object v5
3064 + move-object/from16 v0, p1
3066 + invoke-direct {v3, v0, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
3068 + move-object/from16 v0, p0
3070 + iput-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3072 + move-object/from16 v0, p0
3074 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3076 + if-eqz v3, :cond_106
3078 + const-string v3, "Instrumentation"
3080 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Obtained privacy service"
3082 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3085 + move-object/from16 v0, p0
3087 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3089 + if-eqz v3, :cond_a1
3091 + move-object/from16 v0, p0
3093 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3095 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3099 + if-nez v3, :cond_139
3102 + const-string v3, "Instrumentation"
3104 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Privacy service not available: rejecting call attempt"
3106 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3110 + move-object/from16 v0, p0
3112 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3114 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3116 + move-result-object v5
3120 + const-string/jumbo v7, "phoneCall"
3124 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3126 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_ba} :catch_10e
3130 + move-object/from16 v0, p0
3132 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3134 + if-eqz v3, :cond_209
3136 + move-object/from16 v0, p0
3138 + iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
3143 + move-object/from16 v0, p0
3145 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3147 + invoke-interface {v3}, Ljava/util/List;->size()I
3154 + move/from16 v0, v20
3156 + move/from16 v1, v16
3158 + if-ge v0, v1, :cond_208
3160 + move-object/from16 v0, p0
3162 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3164 + move/from16 v0, v20
3166 + invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
3168 + move-result-object v18
3170 + check-cast v18, Landroid/app/Instrumentation$ActivityMonitor;
3174 + move-object/from16 v0, v18
3176 + move-object/from16 v1, p1
3178 + move-object/from16 v2, p5
3180 + invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
3184 + if-eqz v3, :cond_204
3186 + move-object/from16 v0, v18
3188 + iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3190 + add-int/lit8 v3, v3, 0x1
3192 + move-object/from16 v0, v18
3194 + iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3196 + invoke-virtual/range {v18 .. v18}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
3200 + if-eqz v3, :cond_208
3202 + if-ltz p6, :cond_201
3204 + invoke-virtual/range {v18 .. v18}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
3206 + move-result-object v3
3211 + .catchall {:try_start_c5 .. :try_end_105} :catchall_223
3218 + const-string v3, "Instrumentation"
3220 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Privacy service not obtained"
3222 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3224 + .catch Ljava/lang/Exception; {:try_start_106 .. :try_end_10d} :catch_10e
3229 + move-exception v19
3231 + if-eqz p1, :cond_1f6
3233 + const-string v3, "Instrumentation"
3235 + new-instance v5, Ljava/lang/StringBuilder;
3237 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3239 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred handling intent for "
3241 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3243 + move-result-object v5
3245 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3247 + move-result-object v6
3249 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3251 + move-result-object v5
3253 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3255 + move-result-object v5
3257 + move-object/from16 v0, v19
3259 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3265 + const-string v3, "Instrumentation"
3267 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Already had privacy service"
3269 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3274 + move-object/from16 v0, p0
3276 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3278 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3280 + move-result-object v5
3282 + invoke-virtual {v3, v5}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
3284 + move-result-object v21
3286 + if-nez v21, :cond_177
3288 + const-string v3, "Instrumentation"
3290 + new-instance v5, Ljava/lang/StringBuilder;
3292 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3294 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call allowed: No settings for package: "
3296 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3298 + move-result-object v5
3300 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3302 + move-result-object v6
3304 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3306 + move-result-object v5
3308 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3310 + move-result-object v5
3312 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3316 + move-object/from16 v0, p0
3318 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3320 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3322 + move-result-object v5
3326 + const-string/jumbo v7, "phoneCall"
3330 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3335 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3339 + if-nez v3, :cond_1b0
3341 + const-string v3, "Instrumentation"
3343 + new-instance v5, Ljava/lang/StringBuilder;
3345 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3347 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call allowed: Settings permit "
3349 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3351 + move-result-object v5
3353 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3355 + move-result-object v6
3357 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3359 + move-result-object v5
3361 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3363 + move-result-object v5
3365 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3369 + move-object/from16 v0, p0
3371 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3373 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3375 + move-result-object v5
3377 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3381 + const-string/jumbo v7, "phoneCall"
3385 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3390 + const-string v3, "Instrumentation"
3392 + new-instance v5, Ljava/lang/StringBuilder;
3394 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3396 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call denied: Settings deny "
3398 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3400 + move-result-object v5
3402 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3404 + move-result-object v6
3406 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3408 + move-result-object v5
3410 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3412 + move-result-object v5
3414 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3416 + move-object/from16 v23, p1
3420 + new-instance v3, Ljava/lang/Thread;
3422 + new-instance v5, Landroid/app/Instrumentation$4;
3424 + move-object/from16 v0, p0
3426 + move-object/from16 v1, v23
3428 + invoke-direct {v5, v0, v1}, Landroid/app/Instrumentation$4;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
3430 + invoke-direct {v3, v5}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
3432 + invoke-virtual {v3}, Ljava/lang/Thread;->start()V
3434 + move-object/from16 v0, p0
3436 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3438 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3440 + move-result-object v5
3442 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3446 + const-string/jumbo v7, "phoneCall"
3450 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3452 + .catch Ljava/lang/Exception; {:try_start_130 .. :try_end_1f4} :catch_10e
3457 + const-string v3, "Instrumentation"
3459 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred handling intent for unknown package"
3461 + move-object/from16 v0, v19
3463 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3473 + add-int/lit8 v20, v20, 0x1
3481 + .catchall {:try_start_208 .. :try_end_209} :catchall_223
3484 + if-nez v17, :cond_226
3487 + new-instance v3, Landroid/app/Instrumentation$ActivityResult;
3489 + move/from16 v0, p6
3491 + move-object/from16 v1, p5
3493 + invoke-direct {v3, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
3495 + .catch Ljava/lang/Exception; {:try_start_20b .. :try_end_214} :catch_216
3500 + move-exception v19
3502 + const-string v3, "Instrumentation"
3504 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred while trying to create ActivityResult"
3506 + move-object/from16 v0, v19
3508 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3520 + .catchall {:try_start_224 .. :try_end_225} :catchall_223
3526 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
3528 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
3530 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
3532 + move-result-object v3
3534 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
3536 + move-result-object v5
3538 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
3540 + move-result-object v6
3542 + move-object/from16 v0, p5
3544 + invoke-virtual {v0, v6}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
3546 + move-result-object v7
3548 + if-eqz p4, :cond_261
3550 + move-object/from16 v0, p4
3552 + iget-object v9, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
3561 + invoke-virtual/range {p8 .. p8}, Landroid/os/UserHandle;->getIdentifier()I
3565 + move-object/from16 v6, p5
3567 + move-object/from16 v8, p3
3569 + move/from16 v10, p6
3571 + move-object/from16 v14, p7
3573 + invoke-interface/range {v3 .. v15}, Landroid/app/IActivityManager;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;I)I
3577 + move/from16 v0, v22
3579 + move-object/from16 v1, p5
3581 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
3583 + .catch Landroid/os/RemoteException; {:try_start_226 .. :try_end_25e} :catch_263
3601 +.method public execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Fragment;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
3604 + move-object/from16 v4, p2
3606 + check-cast v4, Landroid/app/IApplicationThread;
3611 + const-string v3, "Instrumentation"
3613 + new-instance v5, Ljava/lang/StringBuilder;
3615 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3617 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): execStartActivity for "
3619 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3621 + move-result-object v5
3623 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3625 + move-result-object v6
3627 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3629 + move-result-object v5
3631 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3633 + move-result-object v5
3635 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3637 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3639 + move-result-object v3
3641 + if-eqz v3, :cond_ba
3643 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3645 + move-result-object v3
3647 + const-string v5, "android.intent.action.CALL"
3649 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3653 + if-nez v3, :cond_40
3655 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3657 + move-result-object v3
3659 + const-string v5, "android.intent.action.DIAL"
3661 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3665 + if-eqz v3, :cond_ba
3670 + const-string v3, "Instrumentation"
3672 + new-instance v5, Ljava/lang/StringBuilder;
3674 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3676 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
3678 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3680 + move-result-object v5
3682 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3684 + move-result-object v6
3686 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3688 + move-result-object v5
3690 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3692 + move-result-object v5
3694 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3696 + move-object/from16 v0, p0
3698 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3700 + if-eqz v3, :cond_6e
3702 + move-object/from16 v0, p0
3704 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3706 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3710 + if-nez v3, :cond_12e
3713 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
3715 + const-string/jumbo v5, "privacy"
3717 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
3719 + move-result-object v5
3721 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
3723 + move-result-object v5
3725 + move-object/from16 v0, p1
3727 + invoke-direct {v3, v0, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
3729 + move-object/from16 v0, p0
3731 + iput-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3733 + move-object/from16 v0, p0
3735 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3737 + if-eqz v3, :cond_104
3739 + const-string v3, "Instrumentation"
3741 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Obtained privacy service"
3743 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3746 + move-object/from16 v0, p0
3748 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3750 + if-eqz v3, :cond_a1
3752 + move-object/from16 v0, p0
3754 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3756 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3760 + if-nez v3, :cond_137
3763 + const-string v3, "Instrumentation"
3765 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Privacy service not available: rejecting call attempt"
3767 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3771 + move-object/from16 v0, p0
3773 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3775 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3777 + move-result-object v5
3781 + const-string/jumbo v7, "phoneCall"
3785 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3787 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_ba} :catch_10c
3791 + move-object/from16 v0, p0
3793 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3795 + if-eqz v3, :cond_207
3797 + move-object/from16 v0, p0
3799 + iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
3804 + move-object/from16 v0, p0
3806 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3808 + invoke-interface {v3}, Ljava/util/List;->size()I
3815 + move/from16 v0, v19
3817 + if-ge v0, v15, :cond_206
3819 + move-object/from16 v0, p0
3821 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3823 + move/from16 v0, v19
3825 + invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
3827 + move-result-object v17
3829 + check-cast v17, Landroid/app/Instrumentation$ActivityMonitor;
3833 + move-object/from16 v0, v17
3835 + move-object/from16 v1, p1
3837 + move-object/from16 v2, p5
3839 + invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
3843 + if-eqz v3, :cond_202
3845 + move-object/from16 v0, v17
3847 + iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3849 + add-int/lit8 v3, v3, 0x1
3851 + move-object/from16 v0, v17
3853 + iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3855 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
3859 + if-eqz v3, :cond_206
3861 + if-ltz p6, :cond_1ff
3863 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
3865 + move-result-object v3
3870 + .catchall {:try_start_c5 .. :try_end_103} :catchall_221
3877 + const-string v3, "Instrumentation"
3879 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Privacy service not obtained"
3881 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3883 + .catch Ljava/lang/Exception; {:try_start_104 .. :try_end_10b} :catch_10c
3888 + move-exception v18
3890 + if-eqz p1, :cond_1f4
3892 + const-string v3, "Instrumentation"
3894 + new-instance v5, Ljava/lang/StringBuilder;
3896 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3898 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred handling intent for "
3900 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3902 + move-result-object v5
3904 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3906 + move-result-object v6
3908 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3910 + move-result-object v5
3912 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3914 + move-result-object v5
3916 + move-object/from16 v0, v18
3918 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3924 + const-string v3, "Instrumentation"
3926 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Already had privacy service"
3928 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3933 + move-object/from16 v0, p0
3935 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3937 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3939 + move-result-object v5
3941 + invoke-virtual {v3, v5}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
3943 + move-result-object v20
3945 + if-nez v20, :cond_175
3947 + const-string v3, "Instrumentation"
3949 + new-instance v5, Ljava/lang/StringBuilder;
3951 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3953 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Call allowed: No settings for package: "
3955 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3957 + move-result-object v5
3959 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3961 + move-result-object v6
3963 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3965 + move-result-object v5
3967 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3969 + move-result-object v5
3971 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3975 + move-object/from16 v0, p0
3977 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3979 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3981 + move-result-object v5
3985 + const-string/jumbo v7, "phoneCall"
3989 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3994 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3998 + if-nez v3, :cond_1ae
4000 + const-string v3, "Instrumentation"
4002 + new-instance v5, Ljava/lang/StringBuilder;
4004 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4006 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Call allowed: Settings permit "
4008 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4010 + move-result-object v5
4012 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4014 + move-result-object v6
4016 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4018 + move-result-object v5
4020 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4022 + move-result-object v5
4024 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4028 + move-object/from16 v0, p0
4030 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4032 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4034 + move-result-object v5
4036 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4040 + const-string/jumbo v7, "phoneCall"
4044 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4049 + const-string v3, "Instrumentation"
4051 + new-instance v5, Ljava/lang/StringBuilder;
4053 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4055 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Call denied: Settings deny "
4057 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4059 + move-result-object v5
4061 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4063 + move-result-object v6
4065 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4067 + move-result-object v5
4069 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4071 + move-result-object v5
4073 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4075 + move-object/from16 v22, p1
4079 + new-instance v3, Ljava/lang/Thread;
4081 + new-instance v5, Landroid/app/Instrumentation$3;
4083 + move-object/from16 v0, p0
4085 + move-object/from16 v1, v22
4087 + invoke-direct {v5, v0, v1}, Landroid/app/Instrumentation$3;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
4089 + invoke-direct {v3, v5}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
4091 + invoke-virtual {v3}, Ljava/lang/Thread;->start()V
4093 + move-object/from16 v0, p0
4095 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4097 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4099 + move-result-object v5
4101 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4105 + const-string/jumbo v7, "phoneCall"
4109 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4111 + .catch Ljava/lang/Exception; {:try_start_12e .. :try_end_1f2} :catch_10c
4116 + const-string v3, "Instrumentation"
4118 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred handling intent for unknown package"
4120 + move-object/from16 v0, v18
4122 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4132 + add-int/lit8 v19, v19, 0x1
4140 + .catchall {:try_start_206 .. :try_end_207} :catchall_221
4143 + if-nez v16, :cond_224
4146 + new-instance v3, Landroid/app/Instrumentation$ActivityResult;
4148 + move/from16 v0, p6
4150 + move-object/from16 v1, p5
4152 + invoke-direct {v3, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
4154 + .catch Ljava/lang/Exception; {:try_start_209 .. :try_end_212} :catch_214
4159 + move-exception v18
4161 + const-string v3, "Instrumentation"
4163 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred while trying to create ActivityResult"
4165 + move-object/from16 v0, v18
4167 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4179 + .catchall {:try_start_222 .. :try_end_223} :catchall_221
4185 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
4187 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
4189 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
4191 + move-result-object v3
4193 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
4195 + move-result-object v5
4197 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
4199 + move-result-object v6
4201 + move-object/from16 v0, p5
4203 + invoke-virtual {v0, v6}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
4205 + move-result-object v7
4207 + if-eqz p4, :cond_25b
4209 + move-object/from16 v0, p4
4211 + iget-object v9, v0, Landroid/app/Fragment;->mWho:Ljava/lang/String;
4220 + move-object/from16 v6, p5
4222 + move-object/from16 v8, p3
4224 + move/from16 v10, p6
4226 + move-object/from16 v14, p7
4228 + invoke-interface/range {v3 .. v14}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
4232 + move/from16 v0, v21
4234 + move-object/from16 v1, p5
4236 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
4238 + .catch Landroid/os/RemoteException; {:try_start_224 .. :try_end_258} :catch_25d
4256 .method public finish(ILandroid/os/Bundle;)V
4257 diff -Npru stock-framework/smali/android/app/WallpaperInfo.smali pdroid-framework/smali/android/app/WallpaperInfo.smali
4258 --- stock-framework/smali/android/app/WallpaperInfo.smali 2013-08-10 20:37:46.419213604 -0700
4259 +++ pdroid-framework/smali/android/app/WallpaperInfo.smali 2013-08-10 20:37:40.995213379 -0700
4262 move-result-object v0
4264 - const-string v1, "mSettingsActivityName="
4265 + const-string/jumbo v1, "mSettingsActivityName="
4267 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4269 diff -Npru stock-framework/smali/android/content/ContentResolver.smali pdroid-framework/smali/android/content/ContentResolver.smali
4270 --- stock-framework/smali/android/content/ContentResolver.smali 2013-08-10 20:37:46.171213593 -0700
4271 +++ pdroid-framework/smali/android/content/ContentResolver.smali 2013-08-10 20:37:40.631213365 -0700
4272 @@ -3757,8 +3757,8 @@
4274 invoke-virtual {v0, v10}, Landroid/os/CancellationSignal;->setRemote(Landroid/os/ICancellationSignal;)V
4276 - .catchall {:try_start_c .. :try_end_1f} :catchall_d9
4277 - .catch Landroid/os/RemoteException; {:try_start_c .. :try_end_1f} :catch_c1
4278 + .catchall {:try_start_c .. :try_end_1f} :catchall_f5
4279 + .catch Landroid/os/RemoteException; {:try_start_c .. :try_end_1f} :catch_dd
4283 @@ -3777,30 +3777,44 @@
4284 move-object/from16 v9, p5
4286 invoke-interface/range {v3 .. v10}, Landroid/content/IContentProvider;->query(Ljava/lang/String;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;
4288 - .catchall {:try_start_1f .. :try_end_30} :catchall_d9
4289 - .catch Landroid/os/DeadObjectException; {:try_start_1f .. :try_end_30} :catch_49
4290 - .catch Landroid/os/RemoteException; {:try_start_1f .. :try_end_30} :catch_c1
4292 move-result-object v20
4295 - if-nez v20, :cond_80
4296 + move-object/from16 v0, p0
4298 + iget-object v4, v0, Landroid/content/ContentResolver;->mContext:Landroid/content/Context;
4300 + move-object/from16 v0, p1
4302 + move-object/from16 v1, p2
4304 + move-object/from16 v2, v20
4306 + invoke-static {v0, v1, v4, v2}, Landroid/privacy/surrogate/PrivacyContentResolver;->enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;)Landroid/database/Cursor;
4308 + .catchall {:try_start_1f .. :try_end_3e} :catchall_f5
4309 + .catch Landroid/os/DeadObjectException; {:try_start_1f .. :try_end_3e} :catch_57
4310 + .catch Landroid/os/RemoteException; {:try_start_1f .. :try_end_3e} :catch_dd
4312 + move-result-object v20
4315 + if-nez v20, :cond_9c
4319 - if-eqz v20, :cond_3a
4320 + if-eqz v20, :cond_48
4322 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4325 - if-eqz v3, :cond_41
4327 + if-eqz v3, :cond_4f
4329 move-object/from16 v0, p0
4331 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4337 move-object/from16 v0, p0
4338 @@ -3809,37 +3823,37 @@
4348 move-object/from16 v0, p0
4350 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->unstableProviderDied(Landroid/content/IContentProvider;)V
4352 invoke-virtual/range {p0 .. p1}, Landroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
4354 - .catchall {:try_start_4a .. :try_end_52} :catchall_d9
4355 - .catch Landroid/os/RemoteException; {:try_start_4a .. :try_end_52} :catch_c1
4357 + .catchall {:try_start_58 .. :try_end_60} :catchall_f5
4358 + .catch Landroid/os/RemoteException; {:try_start_58 .. :try_end_60} :catch_dd
4360 move-result-object v11
4362 - if-nez v11, :cond_6b
4363 + if-nez v11, :cond_79
4367 - if-eqz v20, :cond_5c
4368 + if-eqz v20, :cond_6a
4370 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4373 - if-eqz v3, :cond_63
4375 + if-eqz v3, :cond_71
4377 move-object/from16 v0, p0
4379 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4385 move-object/from16 v0, p0
4386 @@ -3848,8 +3862,8 @@
4394 move-object/from16 v0, p0
4396 iget-object v12, v0, Landroid/content/ContentResolver;->mPackageName:Ljava/lang/String;
4397 @@ -3870,9 +3884,23 @@
4399 move-result-object v20
4402 + move-object/from16 v0, p0
4404 + iget-object v4, v0, Landroid/content/ContentResolver;->mContext:Landroid/content/Context;
4406 + move-object/from16 v0, p1
4408 + move-object/from16 v1, p2
4410 + move-object/from16 v2, v20
4412 + invoke-static {v0, v1, v4, v2}, Landroid/privacy/surrogate/PrivacyContentResolver;->enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;)Landroid/database/Cursor;
4414 + move-result-object v20
4420 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->getCount()I
4422 invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
4423 @@ -3895,11 +3923,11 @@
4425 new-instance v23, Landroid/content/ContentResolver$CursorWrapperInner;
4427 - if-eqz v11, :cond_bc
4428 + if-eqz v11, :cond_d8
4434 move-object/from16 v0, v23
4436 move-object/from16 v1, p0
4437 @@ -3907,26 +3935,26 @@
4438 move-object/from16 v2, v20
4440 invoke-direct {v0, v1, v2, v4}, Landroid/content/ContentResolver$CursorWrapperInner;-><init>(Landroid/content/ContentResolver;Landroid/database/Cursor;Landroid/content/IContentProvider;)V
4442 - .catchall {:try_start_6b .. :try_end_a4} :catchall_d9
4443 - .catch Landroid/os/RemoteException; {:try_start_6b .. :try_end_a4} :catch_c1
4445 + .catchall {:try_start_79 .. :try_end_c0} :catchall_f5
4446 + .catch Landroid/os/RemoteException; {:try_start_79 .. :try_end_c0} :catch_dd
4452 - if-eqz v20, :cond_ac
4453 + if-eqz v20, :cond_c8
4455 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4458 - if-eqz v3, :cond_b3
4460 + if-eqz v3, :cond_cf
4462 move-object/from16 v0, p0
4464 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4470 move-object/from16 v0, p0
4471 @@ -3935,34 +3963,34 @@
4479 invoke-virtual/range {p0 .. p1}, Landroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
4481 - .catchall {:try_start_bc .. :try_end_bf} :catchall_d9
4482 - .catch Landroid/os/RemoteException; {:try_start_bc .. :try_end_bf} :catch_c1
4484 + .catchall {:try_start_d8 .. :try_end_db} :catchall_f5
4485 + .catch Landroid/os/RemoteException; {:try_start_d8 .. :try_end_db} :catch_dd
4487 move-result-object v4
4498 - if-eqz v20, :cond_c9
4499 + if-eqz v20, :cond_e5
4501 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4504 - if-eqz v3, :cond_d0
4506 + if-eqz v3, :cond_ec
4508 move-object/from16 v0, p0
4510 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4516 move-object/from16 v0, p0
4517 @@ -3971,28 +3999,28 @@
4525 - if-eqz v20, :cond_df
4526 + if-eqz v20, :cond_fb
4528 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4531 - if-eqz v3, :cond_e6
4533 + if-eqz v3, :cond_102
4535 move-object/from16 v0, p0
4537 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4540 - if-eqz v11, :cond_ed
4542 + if-eqz v11, :cond_109
4544 move-object/from16 v0, p0
4546 invoke-virtual {v0, v11}, Landroid/content/ContentResolver;->releaseProvider(Landroid/content/IContentProvider;)Z
4553 diff -Npru stock-framework/smali/android/content/CursorLoader.smali pdroid-framework/smali/android/content/CursorLoader.smali
4554 --- stock-framework/smali/android/content/CursorLoader.smali 2013-08-10 20:37:46.635213613 -0700
4555 +++ pdroid-framework/smali/android/content/CursorLoader.smali 2013-08-10 20:37:41.231213389 -0700
4558 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4560 - const-string v0, "mSelection="
4561 + const-string/jumbo v0, "mSelection="
4563 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4567 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4569 - const-string v0, "mSelectionArgs="
4570 + const-string/jumbo v0, "mSelectionArgs="
4572 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4576 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4578 - const-string v0, "mSortOrder="
4579 + const-string/jumbo v0, "mSortOrder="
4581 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4583 diff -Npru stock-framework/smali/android/hardware/Camera$EventHandler.smali pdroid-framework/smali/android/hardware/Camera$EventHandler.smali
4584 --- stock-framework/smali/android/hardware/Camera$EventHandler.smali 2013-08-10 20:37:47.191213637 -0700
4585 +++ pdroid-framework/smali/android/hardware/Camera$EventHandler.smali 2013-08-10 20:37:41.743213411 -0700
4586 @@ -36,418 +36,644 @@
4589 .method public handleMessage(Landroid/os/Message;)V
4596 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4598 + #getter for: Landroid/hardware/Camera;->privacyMode:Z
4599 + invoke-static {v0}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Z
4603 + if-nez v0, :cond_e
4605 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4607 + #calls: Landroid/hardware/Camera;->initiate()V
4608 + invoke-static {v0}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)V
4611 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4613 + #calls: Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
4614 + invoke-static {v0}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)[Ljava/lang/String;
4616 + move-result-object v10
4618 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4620 + #calls: Landroid/hardware/Camera;->checkIfPackagesAllowed()I
4621 + invoke-static {v0}, Landroid/hardware/Camera;->access$300(Landroid/hardware/Camera;)I
4627 + if-ne v0, v1, :cond_68
4631 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4635 + #calls: Landroid/hardware/Camera;->dataAccess(Z)V
4636 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;Z)V
4638 + if-eqz v10, :cond_48
4640 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4642 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4643 + invoke-static {v0}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4645 + move-result-object v0
4649 + aget-object v1, v10, v1
4653 - iget v4, p1, Landroid/os/Message;->what:I
4656 + const-string v4, "camera"
4660 + iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4662 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4663 + invoke-static {v6}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4665 + move-result-object v6
4669 + aget-object v12, v10, v12
4671 + invoke-static {}, Landroid/os/Process;->myUid()I
4675 + invoke-virtual {v6, v12, v13}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
4677 - sparse-switch v4, :sswitch_data_158
4678 + move-result-object v6
4680 - const-string v3, "Camera"
4681 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
4683 - new-instance v4, Ljava/lang/StringBuilder;
4686 + iget v0, p1, Landroid/os/Message;->what:I
4688 - invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4689 + sparse-switch v0, :sswitch_data_218
4691 - const-string v5, "Unknown message type "
4692 + const-string v0, "Camera"
4694 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4695 + new-instance v1, Ljava/lang/StringBuilder;
4697 - move-result-object v4
4698 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
4700 - iget v5, p1, Landroid/os/Message;->what:I
4701 + const-string v2, "Unknown message type "
4703 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4704 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4706 - move-result-object v4
4707 + move-result-object v1
4709 + iget v2, p1, Landroid/os/Message;->what:I
4711 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4713 + move-result-object v1
4715 - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4716 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4718 - move-result-object v4
4719 + move-result-object v1
4721 - invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
4722 + invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
4731 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4733 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4737 + #calls: Landroid/hardware/Camera;->dataAccess(Z)V
4738 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;Z)V
4740 + if-eqz v10, :cond_48
4742 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4744 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4745 + invoke-static {v0}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4747 + move-result-object v0
4751 + aget-object v1, v10, v1
4757 + const-string v4, "camera"
4761 + iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4763 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4764 + invoke-static {v6}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4766 + move-result-object v6
4770 + aget-object v12, v10, v12
4772 + invoke-static {}, Landroid/os/Process;->myUid()I
4776 + invoke-virtual {v6, v12, v13}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
4778 + move-result-object v6
4780 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
4785 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4787 #getter for: Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
4788 - invoke-static {v3}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4789 + invoke-static {v0}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4791 - move-result-object v3
4792 + move-result-object v0
4794 - if-eqz v3, :cond_21
4795 + if-eqz v0, :cond_67
4797 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4798 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4800 #getter for: Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
4801 - invoke-static {v3}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4802 + invoke-static {v0}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4804 - move-result-object v3
4805 + move-result-object v0
4807 - invoke-interface {v3}, Landroid/hardware/Camera$ShutterCallback;->onShutter()V
4808 + invoke-interface {v0}, Landroid/hardware/Camera$ShutterCallback;->onShutter()V
4814 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4816 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4818 #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
4819 - invoke-static {v3}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4820 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4822 + move-result-object v0
4824 - move-result-object v3
4825 + if-eqz v0, :cond_67
4827 - if-eqz v3, :cond_21
4828 + if-eqz v7, :cond_c1
4830 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4831 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4833 #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
4834 - invoke-static {v3}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4835 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4837 - move-result-object v4
4838 + move-result-object v1
4840 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4841 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4849 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4850 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4852 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4853 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4859 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4861 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4863 + #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
4864 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4866 + move-result-object v0
4870 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4872 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4877 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4879 #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
4880 - invoke-static {v3}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4881 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4883 - move-result-object v3
4884 + move-result-object v0
4886 - if-eqz v3, :cond_21
4887 + if-eqz v0, :cond_67
4889 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4890 + if-eqz v7, :cond_eb
4892 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4894 #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
4895 - invoke-static {v3}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4896 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4898 - move-result-object v4
4899 + move-result-object v1
4901 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4902 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4910 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4911 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4913 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4914 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4920 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4922 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4924 - #getter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
4925 - invoke-static {v4}, Landroid/hardware/Camera;->access$300(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
4926 + #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
4927 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4929 + move-result-object v0
4931 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4933 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
4934 + invoke-static {v1}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
4936 move-result-object v1
4938 - if-eqz v1, :cond_21
4939 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4941 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4943 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4947 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4949 + #getter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
4950 + invoke-static {v0}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
4952 + move-result-object v9
4954 + if-eqz v9, :cond_67
4956 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4958 #getter for: Landroid/hardware/Camera;->mOneShot:Z
4959 - invoke-static {v4}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;)Z
4960 + invoke-static {v0}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Z
4965 - if-eqz v4, :cond_8a
4966 + if-eqz v0, :cond_123
4968 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4969 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4974 #setter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
4975 - invoke-static {v3, v4}, Landroid/hardware/Camera;->access$302(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
4976 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$1002(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
4980 + if-eqz v7, :cond_133
4984 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4985 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4993 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4994 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4996 - invoke-interface {v1, v3, v4}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
4997 + invoke-interface {v9, v0, v1}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5003 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5005 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5007 #getter for: Landroid/hardware/Camera;->mWithBuffer:Z
5008 - invoke-static {v4}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Z
5009 + invoke-static {v0}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Z
5013 + if-nez v0, :cond_114
5016 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5018 - if-nez v4, :cond_7e
5021 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5024 #calls: Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5025 - invoke-static {v4, v3, v2}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;ZZ)V
5026 + invoke-static {v0, v1, v2}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;ZZ)V
5031 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5034 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5035 + invoke-static {v0}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5037 + move-result-object v0
5040 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5041 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5043 + invoke-interface {v9, v0, v1}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5048 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5050 #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5051 - invoke-static {v3}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5052 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5054 - move-result-object v3
5055 + move-result-object v0
5057 - if-eqz v3, :cond_21
5058 + if-eqz v0, :cond_67
5060 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5061 + if-eqz v7, :cond_15d
5063 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5065 #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5066 - invoke-static {v3}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5067 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5069 - move-result-object v4
5070 + move-result-object v1
5072 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5073 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5081 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5082 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5084 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5085 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5093 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5095 + #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5096 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5098 + move-result-object v0
5100 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5102 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5103 + invoke-static {v1}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5105 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5106 + move-result-object v1
5108 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5110 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5117 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5119 #getter for: Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5120 - invoke-static {v4}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Ljava/lang/Object;
5121 + invoke-static {v0}, Landroid/hardware/Camera;->access$1500(Landroid/hardware/Camera;)Ljava/lang/Object;
5123 - move-result-object v4
5124 + move-result-object v1
5130 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5132 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5134 #getter for: Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5135 - invoke-static {v5}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5136 + invoke-static {v0}, Landroid/hardware/Camera;->access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5138 - move-result-object v0
5139 + move-result-object v8
5143 - .catchall {:try_start_bb .. :try_end_c2} :catchall_cf
5146 + .catchall {:try_start_178 .. :try_end_17f} :catchall_18d
5148 - if-eqz v0, :cond_21
5149 + if-eqz v8, :cond_67
5151 - iget v4, p1, Landroid/os/Message;->arg1:I
5152 + iget v0, p1, Landroid/os/Message;->arg1:I
5154 - if-nez v4, :cond_d2
5155 + if-nez v0, :cond_190
5158 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5161 - invoke-interface {v0, v2, v3}, Landroid/hardware/Camera$AutoFocusCallback;->onAutoFocus(ZLandroid/hardware/Camera;)V
5163 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5166 + invoke-interface {v8, v11, v0}, Landroid/hardware/Camera$AutoFocusCallback;->onAutoFocus(ZLandroid/hardware/Camera;)V
5175 - .catchall {:try_start_d0 .. :try_end_d1} :catchall_cf
5183 + .catchall {:try_start_18e .. :try_end_18f} :catchall_18d
5194 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5198 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5200 #getter for: Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5201 - invoke-static {v4}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5202 + invoke-static {v0}, Landroid/hardware/Camera;->access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5204 - move-result-object v4
5205 + move-result-object v0
5207 - if-eqz v4, :cond_21
5208 + if-eqz v0, :cond_67
5210 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5211 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5213 #getter for: Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5214 - invoke-static {v4}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5215 + invoke-static {v0}, Landroid/hardware/Camera;->access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5217 - move-result-object v4
5218 + move-result-object v1
5220 - iget v5, p1, Landroid/os/Message;->arg1:I
5221 + iget v2, p1, Landroid/os/Message;->arg1:I
5223 - iget v6, p1, Landroid/os/Message;->arg2:I
5224 + iget v0, p1, Landroid/os/Message;->arg2:I
5226 - if-eqz v6, :cond_ef
5227 + if-eqz v0, :cond_1ae
5230 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5233 - invoke-interface {v4, v5, v3, v6}, Landroid/hardware/Camera$OnZoomChangeListener;->onZoomChange(IZLandroid/hardware/Camera;)V
5235 + iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5238 + invoke-interface {v1, v2, v0, v3}, Landroid/hardware/Camera$OnZoomChangeListener;->onZoomChange(IZLandroid/hardware/Camera;)V
5249 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5253 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5255 #getter for: Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5256 - invoke-static {v3}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5257 + invoke-static {v0}, Landroid/hardware/Camera;->access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5259 - move-result-object v3
5260 + move-result-object v0
5262 - if-eqz v3, :cond_21
5263 + if-eqz v0, :cond_67
5265 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5266 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5268 #getter for: Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5269 - invoke-static {v3}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5270 + invoke-static {v0}, Landroid/hardware/Camera;->access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5272 - move-result-object v4
5273 + move-result-object v1
5275 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5276 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5278 - check-cast v3, [Landroid/hardware/Camera$Face;
5279 + check-cast v0, [Landroid/hardware/Camera$Face;
5281 - check-cast v3, [Landroid/hardware/Camera$Face;
5282 + check-cast v0, [Landroid/hardware/Camera$Face;
5284 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5285 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5287 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$FaceDetectionListener;->onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V
5288 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$FaceDetectionListener;->onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V
5294 - const-string v3, "Camera"
5296 + const-string v0, "Camera"
5298 - new-instance v4, Ljava/lang/StringBuilder;
5299 + new-instance v1, Ljava/lang/StringBuilder;
5301 - invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
5302 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
5304 - const-string v5, "Error "
5305 + const-string v2, "Error "
5307 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5308 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5310 - move-result-object v4
5311 + move-result-object v1
5313 - iget v5, p1, Landroid/os/Message;->arg1:I
5314 + iget v2, p1, Landroid/os/Message;->arg1:I
5316 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5317 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5319 - move-result-object v4
5320 + move-result-object v1
5322 - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5323 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5325 - move-result-object v4
5326 + move-result-object v1
5328 - invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5329 + invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5331 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5332 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5334 #getter for: Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5335 - invoke-static {v3}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5336 + invoke-static {v0}, Landroid/hardware/Camera;->access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5338 - move-result-object v3
5339 + move-result-object v0
5341 - if-eqz v3, :cond_21
5342 + if-eqz v0, :cond_67
5344 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5345 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5347 #getter for: Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5348 - invoke-static {v3}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5349 + invoke-static {v0}, Landroid/hardware/Camera;->access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5351 - move-result-object v3
5352 + move-result-object v0
5354 - iget v4, p1, Landroid/os/Message;->arg1:I
5355 + iget v1, p1, Landroid/os/Message;->arg1:I
5357 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5358 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5360 - invoke-interface {v3, v4, v5}, Landroid/hardware/Camera$ErrorCallback;->onError(ILandroid/hardware/Camera;)V
5361 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$ErrorCallback;->onError(ILandroid/hardware/Camera;)V
5367 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5369 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5371 #getter for: Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5372 - invoke-static {v4}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5373 + invoke-static {v0}, Landroid/hardware/Camera;->access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5375 - move-result-object v4
5376 + move-result-object v0
5378 - if-eqz v4, :cond_21
5379 + if-eqz v0, :cond_67
5381 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5382 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5384 #getter for: Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5385 - invoke-static {v4}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5386 + invoke-static {v0}, Landroid/hardware/Camera;->access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5388 - move-result-object v4
5389 + move-result-object v1
5391 - iget v5, p1, Landroid/os/Message;->arg1:I
5392 + iget v0, p1, Landroid/os/Message;->arg1:I
5394 - if-nez v5, :cond_156
5395 + if-nez v0, :cond_216
5398 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5402 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5404 - invoke-interface {v4, v2, v3}, Landroid/hardware/Camera$AutoFocusMoveCallback;->onAutoFocusMoving(ZLandroid/hardware/Camera;)V
5405 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$AutoFocusMoveCallback;->onAutoFocusMoving(ZLandroid/hardware/Camera;)V
5421 - 0x1 -> :sswitch_10c
5422 - 0x2 -> :sswitch_22
5423 - 0x4 -> :sswitch_b3
5424 - 0x8 -> :sswitch_d4
5425 - 0x10 -> :sswitch_68
5426 - 0x40 -> :sswitch_98
5427 - 0x80 -> :sswitch_34
5428 - 0x100 -> :sswitch_4e
5429 - 0x400 -> :sswitch_f1
5430 - 0x800 -> :sswitch_13d
5431 + 0x1 -> :sswitch_1cb
5432 + 0x2 -> :sswitch_93
5433 + 0x4 -> :sswitch_170
5434 + 0x8 -> :sswitch_192
5435 + 0x10 -> :sswitch_fe
5436 + 0x40 -> :sswitch_140
5437 + 0x80 -> :sswitch_a5
5438 + 0x100 -> :sswitch_ce
5439 + 0x400 -> :sswitch_1b0
5440 + 0x800 -> :sswitch_1fc
5443 diff -Npru stock-framework/smali/android/hardware/Camera.smali pdroid-framework/smali/android/hardware/Camera.smali
5444 --- stock-framework/smali/android/hardware/Camera.smali 2013-08-10 20:37:47.199213636 -0700
5445 +++ pdroid-framework/smali/android/hardware/Camera.smali 2013-08-10 20:37:41.751213410 -0700
5448 .field private static final CAMERA_MSG_ZOOM:I = 0x8
5450 +.field private static final GOT_ERROR:I = -0x3
5452 +.field private static final IS_ALLOWED:I = -0x1
5454 +.field private static final IS_NOT_ALLOWED:I = -0x2
5456 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,Camera"
5458 .field private static final TAG:Ljava/lang/String; = "Camera"
5462 +.field private context:Landroid/content/Context;
5464 .field private mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5466 .field private mAutoFocusCallbackLock:Ljava/lang/Object;
5469 .field private mOneShot:Z
5471 +.field private mPm:Landroid/content/pm/IPackageManager;
5473 .field private mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5475 .field private mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5476 @@ -98,16 +110,20 @@
5478 .field private mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5480 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
5482 +.field private privacyMode:Z
5486 .method constructor <init>()V
5490 - invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5494 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5496 - iput-boolean v0, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5497 + iput-boolean v1, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5499 new-instance v0, Ljava/lang/Object;
5501 @@ -115,19 +131,21 @@
5503 iput-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5505 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
5510 .method constructor <init>(I)V
5518 invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5522 - iput-boolean v2, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5523 + iput-boolean v4, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5525 new-instance v2, Ljava/lang/Object;
5529 iput-object v2, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5531 + iput-boolean v4, p0, Landroid/hardware/Camera;->privacyMode:Z
5533 iput-object v3, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5535 iput-object v3, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5536 @@ -147,11 +167,13 @@
5538 iput-object v3, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5540 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
5542 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
5544 move-result-object v0
5546 - if-eqz v0, :cond_34
5547 + if-eqz v0, :cond_39
5549 new-instance v2, Landroid/hardware/Camera$EventHandler;
5553 iput-object v2, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5557 invoke-static {}, Landroid/app/ActivityThread;->currentPackageName()Ljava/lang/String;
5559 move-result-object v1
5560 @@ -172,12 +194,12 @@
5566 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
5568 move-result-object v0
5570 - if-eqz v0, :cond_42
5571 + if-eqz v0, :cond_47
5573 new-instance v2, Landroid/hardware/Camera$EventHandler;
5575 @@ -185,12 +207,12 @@
5577 iput-object v2, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5584 iput-object v3, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5590 .method private final native _addCallbackBuffer([BI)V
5591 @@ -211,122 +233,184 @@
5592 .method private final native _stopPreview()V
5595 -.method static synthetic access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5596 +.method static synthetic access$000(Landroid/hardware/Camera;)Z
5599 - iget-object v0, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5600 + iget-boolean v0, p0, Landroid/hardware/Camera;->privacyMode:Z
5606 -.method static synthetic access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5607 +.method static synthetic access$100(Landroid/hardware/Camera;)V
5610 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
5615 +.method static synthetic access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5618 - iget-object v0, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5619 + iget-object v0, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5624 -.method static synthetic access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5625 +.method static synthetic access$1002(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5628 - iget-object v0, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5629 + iput-object p1, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5634 +.method static synthetic access$1100(Landroid/hardware/Camera;)Z
5637 + iget-boolean v0, p0, Landroid/hardware/Camera;->mOneShot:Z
5642 +.method static synthetic access$1200(Landroid/hardware/Camera;)Z
5645 + iget-boolean v0, p0, Landroid/hardware/Camera;->mWithBuffer:Z
5650 +.method static synthetic access$1300(Landroid/hardware/Camera;ZZ)V
5653 + invoke-direct {p0, p1, p2}, Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5658 +.method static synthetic access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5661 + iget-object v0, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5666 -.method static synthetic access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5667 +.method static synthetic access$1500(Landroid/hardware/Camera;)Ljava/lang/Object;
5670 - iget-object v0, p0, Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5671 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5676 -.method static synthetic access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5677 +.method static synthetic access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5680 - iget-object v0, p0, Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5681 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5686 -.method static synthetic access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5687 +.method static synthetic access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5690 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5691 + iget-object v0, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5696 -.method static synthetic access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5697 +.method static synthetic access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5700 - iget-object v0, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5701 + iget-object v0, p0, Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5706 -.method static synthetic access$300(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5707 +.method static synthetic access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5710 - iget-object v0, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5711 + iget-object v0, p0, Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5716 -.method static synthetic access$302(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5717 +.method static synthetic access$200(Landroid/hardware/Camera;)[Ljava/lang/String;
5720 - iput-object p1, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5721 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
5724 + move-result-object v0
5729 -.method static synthetic access$400(Landroid/hardware/Camera;)Z
5730 +.method static synthetic access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5733 - iget-boolean v0, p0, Landroid/hardware/Camera;->mOneShot:Z
5734 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5740 -.method static synthetic access$500(Landroid/hardware/Camera;)Z
5741 +.method static synthetic access$300(Landroid/hardware/Camera;)I
5744 - iget-boolean v0, p0, Landroid/hardware/Camera;->mWithBuffer:Z
5745 + invoke-direct {p0}, Landroid/hardware/Camera;->checkIfPackagesAllowed()I
5752 -.method static synthetic access$600(Landroid/hardware/Camera;ZZ)V
5754 +.method static synthetic access$400(Landroid/hardware/Camera;Z)V
5757 - invoke-direct {p0, p1, p2}, Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5758 + invoke-direct {p0, p1}, Landroid/hardware/Camera;->dataAccess(Z)V
5763 +.method static synthetic access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
5766 + iget-object v0, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5771 +.method static synthetic access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5774 + iget-object v0, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5779 .method static synthetic access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5782 - iget-object v0, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5783 + iget-object v0, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5788 -.method static synthetic access$800(Landroid/hardware/Camera;)Ljava/lang/Object;
5789 +.method static synthetic access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5792 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5793 + iget-object v0, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5798 -.method static synthetic access$900(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5799 +.method static synthetic access$900(Landroid/hardware/Camera;)[B
5802 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5803 + invoke-direct {p0}, Landroid/hardware/Camera;->getFakeImage()[B
5805 + move-result-object v0
5809 @@ -372,6 +456,205 @@
5813 +.method private checkIfPackagesAllowed()I
5819 + iget-object v6, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5821 + if-eqz v6, :cond_41
5825 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
5827 + move-result-object v3
5829 + invoke-static {}, Landroid/os/Process;->myUid()I
5833 + if-eqz v3, :cond_2c
5838 + array-length v6, v3
5840 + if-ge v1, v6, :cond_2a
5842 + iget-object v6, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5844 + aget-object v7, v3, v1
5846 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
5848 + move-result-object v2
5850 + if-eqz v2, :cond_26
5852 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
5856 + if-eqz v6, :cond_26
5866 + add-int/lit8 v1, v1, 0x1
5876 + const-string v6, "PM,Camera"
5878 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
5880 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5882 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
5889 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
5891 + const-string v6, "PM,Camera"
5893 + const-string v7, "Got exception in checkIfPackagesAllowed"
5895 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5901 + const-string v6, "PM,Camera"
5903 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
5905 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5907 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
5912 +.method private dataAccess(Z)V
5915 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
5917 + move-result-object v1
5919 + if-eqz p1, :cond_2f
5921 + if-eqz v1, :cond_2f
5926 + array-length v2, v1
5928 + if-ge v0, v2, :cond_58
5930 + const-string v2, "PM,Camera"
5932 + new-instance v3, Ljava/lang/StringBuilder;
5934 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
5936 + const-string v4, "Allowed Package: -"
5938 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5940 + move-result-object v3
5942 + aget-object v4, v1, v0
5944 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5946 + move-result-object v3
5948 + const-string v4, "- accessing camera."
5950 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5952 + move-result-object v3
5954 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5956 + move-result-object v3
5958 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
5960 + add-int/lit8 v0, v0, 0x1
5965 + if-eqz v1, :cond_58
5970 + array-length v2, v1
5972 + if-ge v0, v2, :cond_58
5974 + const-string v2, "PM,Camera"
5976 + new-instance v3, Ljava/lang/StringBuilder;
5978 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
5980 + const-string v4, "Blocked Package: -"
5982 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5984 + move-result-object v3
5986 + aget-object v4, v1, v0
5988 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5990 + move-result-object v3
5992 + const-string v4, "- accessing camera."
5994 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5996 + move-result-object v3
5998 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6000 + move-result-object v3
6002 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6004 + add-int/lit8 v0, v0, 0x1
6012 .method private native enableFocusMoveCallback(I)V
6015 @@ -437,9 +720,193 @@
6019 +.method private getFakeImage()[B
6023 + const-string v2, "/system/media/PDroid.jpeg"
6025 + new-instance v5, Ljava/io/File;
6027 + invoke-direct {v5, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
6031 + new-instance v3, Ljava/io/FileInputStream;
6033 + invoke-direct {v3, v5}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
6035 + invoke-static {v3}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap;
6037 + move-result-object v0
6039 + new-instance v4, Ljava/io/ByteArrayOutputStream;
6041 + invoke-direct {v4}, Ljava/io/ByteArrayOutputStream;-><init>()V
6043 + sget-object v6, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
6047 + invoke-virtual {v0, v6, v7, v4}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
6049 + invoke-virtual {v4}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
6051 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_20} :catch_22
6053 + move-result-object v6
6061 + const-string v6, "PM,Camera"
6063 + const-string/jumbo v7, "something went wrong with getting the picture!"
6065 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6067 + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
6074 .method public static native getNumberOfCameras()I
6077 +.method private getPackageName()[Ljava/lang/String;
6081 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6083 + if-eqz v3, :cond_f
6085 + invoke-static {}, Landroid/os/Process;->myUid()I
6089 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6091 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6093 + move-result-object v1
6099 + const-string/jumbo v3, "package"
6101 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6103 + move-result-object v3
6105 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6107 + move-result-object v3
6109 + iput-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6111 + invoke-static {}, Landroid/os/Process;->myUid()I
6115 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6117 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6119 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
6121 + move-result-object v1
6128 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6130 + const-string v3, "PM,Camera"
6132 + const-string/jumbo v4, "something went wrong with getting package name"
6134 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6141 +.method private initiate()V
6147 + iput-object v1, p0, Landroid/hardware/Camera;->context:Landroid/content/Context;
6149 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
6151 + iget-object v2, p0, Landroid/hardware/Camera;->context:Landroid/content/Context;
6153 + const-string/jumbo v3, "privacy"
6155 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6157 + move-result-object v3
6159 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
6161 + move-result-object v3
6163 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
6165 + iput-object v1, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6167 + const-string/jumbo v1, "package"
6169 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6171 + move-result-object v1
6173 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6175 + move-result-object v1
6177 + iput-object v1, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6181 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6183 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
6191 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6193 + const-string v1, "PM,Camera"
6195 + const-string v2, "Something went wrong with initalize variables"
6197 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6201 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6206 .method private final native native_autoFocus()V
6209 @@ -1022,7 +1489,7 @@
6212 .method public final takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V
6216 iput-object p1, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6218 @@ -1032,36 +1499,62 @@
6220 iput-object p4, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
6222 + iget-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6224 + if-nez v1, :cond_f
6226 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
6229 + invoke-direct {p0}, Landroid/hardware/Camera;->checkIfPackagesAllowed()I
6235 + if-ne v1, v2, :cond_20
6239 + iput-object v1, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6241 + const-string v1, "PM,Camera"
6243 + const-string v2, "blocked rawImageCallback -> it will never be called!"
6245 + invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6250 iget-object v1, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6252 - if-eqz v1, :cond_f
6253 + if-eqz v1, :cond_27
6255 or-int/lit8 v0, v0, 0x2
6259 iget-object v1, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6261 - if-eqz v1, :cond_15
6262 + if-eqz v1, :cond_2d
6264 or-int/lit16 v0, v0, 0x80
6268 iget-object v1, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
6270 - if-eqz v1, :cond_1b
6271 + if-eqz v1, :cond_33
6273 or-int/lit8 v0, v0, 0x40
6277 iget-object v1, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
6279 - if-eqz v1, :cond_21
6280 + if-eqz v1, :cond_39
6282 or-int/lit16 v0, v0, 0x100
6286 invoke-direct {p0, v0}, Landroid/hardware/Camera;->native_takePicture(I)V
6289 diff -Npru stock-framework/smali/android/media/AudioRecord.smali pdroid-framework/smali/android/media/AudioRecord.smali
6290 --- stock-framework/smali/android/media/AudioRecord.smali 2013-08-10 20:37:47.351213643 -0700
6291 +++ pdroid-framework/smali/android/media/AudioRecord.smali 2013-08-10 20:37:41.899213417 -0700
6294 .field public static final ERROR_INVALID_OPERATION:I = -0x3
6296 +.field private static final GOT_ERROR:I = -0x3
6298 +.field private static final IS_ALLOWED:I = -0x1
6300 +.field private static final IS_NOT_ALLOWED:I = -0x2
6302 .field private static final NATIVE_EVENT_MARKER:I = 0x2
6304 .field private static final NATIVE_EVENT_NEW_POS:I = 0x3
6306 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,AudioRecord"
6308 .field public static final RECORDSTATE_RECORDING:I = 0x3
6310 .field public static final RECORDSTATE_STOPPED:I = 0x1
6315 +.field private context:Landroid/content/Context;
6317 .field private mAudioFormat:I
6319 .field private mChannelConfiguration:I
6322 .field private mNativeRecorderInJavaObj:I
6324 +.field private mPm:Landroid/content/pm/IPackageManager;
6326 .field private mPositionListener:Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
6328 .field private final mPositionListenerLock:Ljava/lang/Object;
6331 .field private mState:I
6333 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
6335 +.field private privacyMode:Z
6339 .method public constructor <init>(IIIII)V
6340 @@ -159,6 +175,10 @@
6344 + iput-boolean v0, p0, Landroid/media/AudioRecord;->privacyMode:Z
6348 iput v0, p0, Landroid/media/AudioRecord;->mState:I
6353 iput-object v0, p0, Landroid/media/AudioRecord;->mInitializationLooper:Landroid/os/Looper;
6355 - if-nez v0, :cond_4f
6356 + if-nez v0, :cond_52
6358 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
6362 iput-object v0, p0, Landroid/media/AudioRecord;->mInitializationLooper:Landroid/os/Looper;
6366 invoke-direct {p0, p1, p2, p3, p4}, Landroid/media/AudioRecord;->audioParamCheck(IIII)V
6368 invoke-direct {p0, p5}, Landroid/media/AudioRecord;->audioBuffSizeCheck(I)V
6373 - if-eqz v8, :cond_8f
6374 + if-eqz v8, :cond_92
6376 new-instance v0, Ljava/lang/StringBuilder;
6378 @@ -242,10 +262,12 @@
6380 invoke-static {v0}, Landroid/media/AudioRecord;->loge(Ljava/lang/String;)V
6388 + invoke-direct {p0}, Landroid/media/AudioRecord;->initiate()V
6395 iput v0, p0, Landroid/media/AudioRecord;->mState:I
6401 .method static synthetic access$000(Landroid/media/AudioRecord;)Ljava/lang/Object;
6402 @@ -469,6 +491,205 @@
6406 +.method private checkIfPackagesAllowed()I
6412 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6414 + if-eqz v6, :cond_41
6418 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6420 + move-result-object v3
6422 + invoke-static {}, Landroid/os/Process;->myUid()I
6426 + if-eqz v3, :cond_2c
6431 + array-length v6, v3
6433 + if-ge v1, v6, :cond_2a
6435 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6437 + aget-object v7, v3, v1
6439 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6441 + move-result-object v2
6443 + if-eqz v2, :cond_26
6445 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
6449 + if-eqz v6, :cond_26
6459 + add-int/lit8 v1, v1, 0x1
6469 + const-string v6, "PM,AudioRecord"
6471 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
6473 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6475 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
6482 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6484 + const-string v6, "PM,AudioRecord"
6486 + const-string v7, "Got exception in checkIfPackagesAllowed"
6488 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6494 + const-string v6, "PM,AudioRecord"
6496 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
6498 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6500 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
6505 +.method private dataAccess(Z)V
6508 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6510 + move-result-object v1
6512 + if-eqz p1, :cond_2f
6514 + if-eqz v1, :cond_2f
6519 + array-length v2, v1
6521 + if-ge v0, v2, :cond_58
6523 + const-string v2, "PM,AudioRecord"
6525 + new-instance v3, Ljava/lang/StringBuilder;
6527 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6529 + const-string v4, "Allowed Package: -"
6531 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6533 + move-result-object v3
6535 + aget-object v4, v1, v0
6537 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6539 + move-result-object v3
6541 + const-string v4, "- accessing microphone."
6543 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6545 + move-result-object v3
6547 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6549 + move-result-object v3
6551 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6553 + add-int/lit8 v0, v0, 0x1
6558 + if-eqz v1, :cond_58
6563 + array-length v2, v1
6565 + if-ge v0, v2, :cond_58
6567 + const-string v2, "PM,AudioRecord"
6569 + new-instance v3, Ljava/lang/StringBuilder;
6571 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6573 + const-string v4, "Blocked Package: -"
6575 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6577 + move-result-object v3
6579 + aget-object v4, v1, v0
6581 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6583 + move-result-object v3
6585 + const-string v4, "- accessing microphone."
6587 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6589 + move-result-object v3
6591 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6593 + move-result-object v3
6595 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6597 + add-int/lit8 v0, v0, 0x1
6605 .method public static getMinBufferSize(III)I
6608 @@ -540,6 +761,135 @@
6612 +.method private getPackageName()[Ljava/lang/String;
6616 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6618 + if-eqz v3, :cond_f
6620 + invoke-static {}, Landroid/os/Process;->myUid()I
6624 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6626 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6628 + move-result-object v1
6634 + const-string/jumbo v3, "package"
6636 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6638 + move-result-object v3
6640 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6642 + move-result-object v3
6644 + iput-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6646 + invoke-static {}, Landroid/os/Process;->myUid()I
6650 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6652 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6654 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
6656 + move-result-object v1
6663 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6665 + const-string v3, "PM,AudioRecord"
6667 + const-string/jumbo v4, "something went wrong with getting package name"
6669 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6676 +.method private initiate()V
6682 + iput-object v1, p0, Landroid/media/AudioRecord;->context:Landroid/content/Context;
6684 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
6686 + iget-object v2, p0, Landroid/media/AudioRecord;->context:Landroid/content/Context;
6688 + const-string/jumbo v3, "privacy"
6690 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6692 + move-result-object v3
6694 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
6696 + move-result-object v3
6698 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
6700 + iput-object v1, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6702 + const-string/jumbo v1, "package"
6704 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6706 + move-result-object v1
6708 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6710 + move-result-object v1
6712 + iput-object v1, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6716 + iput-boolean v1, p0, Landroid/media/AudioRecord;->privacyMode:Z
6718 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
6726 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6728 + const-string v1, "PM,AudioRecord"
6730 + const-string v2, "Something went wrong with initalize variables"
6732 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6736 + iput-boolean v1, p0, Landroid/media/AudioRecord;->privacyMode:Z
6741 .method private static logd(Ljava/lang/String;)V
6744 @@ -990,19 +1340,68 @@
6747 .method public startRecording()V
6750 .annotation system Ldalvik/annotation/Throws;
6752 Ljava/lang/IllegalStateException;
6762 + iget-boolean v0, p0, Landroid/media/AudioRecord;->privacyMode:Z
6764 + if-nez v0, :cond_a
6766 + invoke-direct {p0}, Landroid/media/AudioRecord;->initiate()V
6769 iget v0, p0, Landroid/media/AudioRecord;->mState:I
6772 + if-ne v0, v3, :cond_15
6774 + invoke-direct {p0}, Landroid/media/AudioRecord;->checkIfPackagesAllowed()I
6780 + if-ne v0, v1, :cond_3d
6782 - if-eq v0, v1, :cond_e
6784 + invoke-direct {p0, v2}, Landroid/media/AudioRecord;->dataAccess(Z)V
6786 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6788 + move-result-object v7
6790 + if-eqz v7, :cond_34
6792 + iget-object v0, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6794 + aget-object v1, v7, v2
6796 + const-string/jumbo v4, "recordAudio"
6798 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6800 + aget-object v8, v7, v2
6802 + invoke-static {}, Landroid/os/Process;->myUid()I
6806 + invoke-virtual {v6, v8, v9}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6808 + move-result-object v6
6810 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
6813 new-instance v0, Ljava/lang/IllegalStateException;
6815 const-string/jumbo v1, "startRecording() called on an uninitialized AudioRecord."
6816 @@ -1011,7 +1410,38 @@
6822 + invoke-direct {p0, v3}, Landroid/media/AudioRecord;->dataAccess(Z)V
6824 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6826 + move-result-object v7
6828 + if-eqz v7, :cond_5d
6830 + iget-object v0, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6832 + aget-object v1, v7, v2
6834 + const-string/jumbo v4, "recordAudio"
6836 + iget-object v3, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6838 + aget-object v6, v7, v2
6840 + invoke-static {}, Landroid/os/Process;->myUid()I
6844 + invoke-virtual {v3, v6, v8}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6846 + move-result-object v6
6850 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
6853 iget-object v1, p0, Landroid/media/AudioRecord;->mRecordingStateLock:Ljava/lang/Object;
6856 @@ -1020,28 +1450,28 @@
6862 invoke-direct {p0, v0, v2}, Landroid/media/AudioRecord;->native_start(II)I
6866 - if-nez v0, :cond_1c
6867 + if-nez v0, :cond_6b
6871 iput v0, p0, Landroid/media/AudioRecord;->mRecordingState:I
6885 - .catchall {:try_start_13 .. :try_end_20} :catchall_1e
6887 + .catchall {:try_start_62 .. :try_end_6f} :catchall_6d
6891 diff -Npru stock-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali pdroid-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali
6892 --- stock-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali 1969-12-31 16:00:00.000000000 -0800
6893 +++ pdroid-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali 2013-08-10 20:37:41.975213420 -0700
6895 +.class Landroid/media/MediaRecorder$PrivacyRunner;
6896 +.super Ljava/lang/Thread;
6897 +.source "MediaRecorder.java"
6901 +.annotation system Ldalvik/annotation/EnclosingClass;
6902 + value = Landroid/media/MediaRecorder;
6905 +.annotation system Ldalvik/annotation/InnerClass;
6907 + name = "PrivacyRunner"
6912 +.field private static final OFFSET_DELAY:J = 0x9c4L
6916 +.field private delay:J
6918 +.field final synthetic this$0:Landroid/media/MediaRecorder;
6922 +.method public constructor <init>(Landroid/media/MediaRecorder;)V
6925 + iput-object p1, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
6927 + invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
6929 + const-wide/16 v0, 0x9c4
6931 + iput-wide v0, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
6938 +.method public getDelay()J
6941 + iget-wide v0, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
6946 +.method public run()V
6950 + iget-wide v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
6952 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
6954 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
6956 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
6957 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
6959 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
6961 + #getter for: Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
6962 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
6964 + move-result-object v2
6966 + if-eqz v2, :cond_2f
6968 + new-instance v1, Ljava/io/File;
6970 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
6972 + #getter for: Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
6973 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
6975 + move-result-object v2
6977 + invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
6979 + invoke-virtual {v1}, Ljava/io/File;->delete()Z
6983 + if-eqz v2, :cond_29
6985 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
6989 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
6990 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
6992 + .catchall {:try_start_0 .. :try_end_29} :catchall_76
6993 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_29} :catch_57
6997 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
6999 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7000 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7007 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7009 + #getter for: Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
7010 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$600(Landroid/media/MediaRecorder;)Ljava/io/FileDescriptor;
7012 + move-result-object v2
7014 + if-eqz v2, :cond_68
7016 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7018 + #getter for: Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7019 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7021 + move-result-object v2
7023 + if-eqz v2, :cond_68
7025 + new-instance v1, Ljava/io/File;
7027 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7029 + #getter for: Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7030 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7032 + move-result-object v2
7034 + invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7036 + invoke-virtual {v1}, Ljava/io/File;->delete()Z
7040 + if-eqz v2, :cond_29
7042 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7046 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7047 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7049 + .catchall {:try_start_2f .. :try_end_56} :catchall_76
7050 + .catch Ljava/lang/Exception; {:try_start_2f .. :try_end_56} :catch_57
7058 + const-string v2, "PM,MediaRecorder"
7060 + const-string v3, "Something went wrong while waiting for cancel the stream!"
7062 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7064 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7066 + .catchall {:try_start_58 .. :try_end_62} :catchall_76
7068 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7070 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7071 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7077 + const-string v2, "PM,MediaRecorder"
7079 + const-string v3, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
7081 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7083 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7087 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7088 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7090 + .catchall {:try_start_68 .. :try_end_75} :catchall_76
7091 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_75} :catch_57
7098 + iget-object v3, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7100 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7101 + invoke-static {v3}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7106 +.method public setDelay(J)V
7109 + iput-wide p1, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7113 diff -Npru stock-framework/smali/android/media/MediaRecorder.smali pdroid-framework/smali/android/media/MediaRecorder.smali
7114 --- stock-framework/smali/android/media/MediaRecorder.smali 2013-08-10 20:37:47.499213649 -0700
7115 +++ pdroid-framework/smali/android/media/MediaRecorder.smali 2013-08-10 20:37:41.979213420 -0700
7118 .annotation system Ldalvik/annotation/MemberClasses;
7120 + Landroid/media/MediaRecorder$PrivacyRunner;,
7121 Landroid/media/MediaRecorder$EventHandler;,
7122 Landroid/media/MediaRecorder$OnInfoListener;,
7123 Landroid/media/MediaRecorder$OnErrorListener;,
7128 +.field private static final BOTH_DATA_ACCESS:I = 0xb
7130 +.field private static final GOT_ERROR:I = -0x3
7132 +.field private static final IS_ALLOWED:I = -0x1
7134 +.field private static final IS_NOT_ALLOWED:I = -0x2
7136 .field public static final MEDIA_ERROR_SERVER_DIED:I = 0x64
7138 .field public static final MEDIA_RECORDER_ERROR_UNKNOWN:I = 0x1
7141 .field public static final MEDIA_RECORDER_TRACK_INTER_CHUNK_TIME_MS:I = 0x3ee
7143 +.field private static final MIC_DATA_ACCESS:I = 0xa
7145 +.field private static final MODE_RECORD_AUDIO:I = 0x2
7147 +.field private static final MODE_RECORD_BOTH:I = 0x3
7149 +.field private static final PRIVACY_PATH_DEF:Ljava/lang/String; = "/data/data/"
7151 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,MediaRecorder"
7153 +.field private static final STATE_RECORD_AUDIO:I = 0x0
7155 +.field private static final STATE_RECORD_BOTH:I = 0x1
7157 .field private static final TAG:Ljava/lang/String; = "MediaRecorder"
7161 +.field private ACTUAL_STATE:I
7163 +.field private context:Landroid/content/Context;
7165 +.field private deletedFile:Z
7167 .field private mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7169 .field private mFd:Ljava/io/FileDescriptor;
7172 .field private mPath:Ljava/lang/String;
7174 +.field private mPm:Landroid/content/pm/IPackageManager;
7176 .field private mSurface:Landroid/view/Surface;
7178 +.field private pFileDescriptor:Ljava/io/FileDescriptor;
7180 +.field private pFileDescriptorPath:Ljava/lang/String;
7182 +.field private pPath:Ljava/lang/String;
7184 +.field private pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
7186 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
7188 +.field private privacyMode:Z
7190 +.field private stoppedStream:Z
7194 .method static constructor <clinit>()V
7195 @@ -86,15 +131,35 @@
7198 .method public constructor <init>()V
7206 invoke-direct {p0}, Ljava/lang/Object;-><init>()V
7208 + iput-object v2, p0, Landroid/media/MediaRecorder;->pPath:Ljava/lang/String;
7210 + iput-object v2, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7212 + iput-object v2, p0, Landroid/media/MediaRecorder;->pFileDescriptor:Ljava/io/FileDescriptor;
7214 + iput-object v2, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
7216 + iput-boolean v3, p0, Landroid/media/MediaRecorder;->deletedFile:Z
7218 + iput-boolean v3, p0, Landroid/media/MediaRecorder;->privacyMode:Z
7220 + iput-boolean v3, p0, Landroid/media/MediaRecorder;->stoppedStream:Z
7222 + iput v3, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
7224 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
7226 move-result-object v0
7228 - if-eqz v0, :cond_1d
7229 + if-eqz v0, :cond_32
7231 new-instance v2, Landroid/media/MediaRecorder$EventHandler;
7235 iput-object v2, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7239 + invoke-direct {p0}, Landroid/media/MediaRecorder;->initiate()V
7241 invoke-static {}, Landroid/app/ActivityThread;->currentPackageName()Ljava/lang/String;
7243 move-result-object v1
7244 @@ -115,12 +182,12 @@
7250 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
7252 move-result-object v0
7254 - if-eqz v0, :cond_2b
7255 + if-eqz v0, :cond_40
7257 new-instance v2, Landroid/media/MediaRecorder$EventHandler;
7259 @@ -128,14 +195,12 @@
7261 iput-object v2, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7270 iput-object v2, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7276 .method private native _prepare()V
7277 @@ -180,12 +245,1724 @@
7281 -.method public static final getAudioSourceMax()I
7282 +.method static synthetic access$300(Landroid/media/MediaRecorder;)V
7286 + invoke-direct {p0}, Landroid/media/MediaRecorder;->privacyStop()V
7291 +.method static synthetic access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
7294 + iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
7299 +.method static synthetic access$502(Landroid/media/MediaRecorder;Z)Z
7302 + iput-boolean p1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
7307 +.method static synthetic access$600(Landroid/media/MediaRecorder;)Ljava/io/FileDescriptor;
7310 + iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
7315 +.method static synthetic access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7318 + iget-object v0, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7323 +.method private checkIfPackagesAllowed(I)I
7333 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7335 + if-eqz v8, :cond_5b
7339 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7341 + move-result-object v3
7343 + invoke-static {}, Landroid/os/Process;->myUid()I
7347 + if-eqz v3, :cond_51
7349 + packed-switch p1, :pswitch_data_72
7361 + array-length v8, v3
7363 + if-ge v1, v8, :cond_2f
7365 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7367 + aget-object v9, v3, v1
7369 + invoke-virtual {v8, v9, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7371 + move-result-object v2
7373 + if-eqz v2, :cond_2b
7375 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
7379 + if-nez v8, :cond_16
7384 + add-int/lit8 v1, v1, 0x1
7397 + array-length v8, v3
7399 + if-ge v1, v8, :cond_4f
7401 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7403 + aget-object v9, v3, v1
7405 + invoke-virtual {v8, v9, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7407 + move-result-object v2
7409 + if-eqz v2, :cond_4b
7411 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
7415 + if-nez v8, :cond_16
7417 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
7421 + if-nez v8, :cond_16
7426 + add-int/lit8 v1, v1, 0x1
7436 + const-string v5, "PM,MediaRecorder"
7438 + const-string/jumbo v6, "return GOT_ERROR, because package_names are NULL"
7440 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7447 + const-string v5, "PM,MediaRecorder"
7449 + const-string/jumbo v6, "return GOT_ERROR, because pSetMan is NULL"
7451 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7453 + .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_63} :catch_65
7462 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7464 + const-string v5, "PM,MediaRecorder"
7466 + const-string v6, "Got exception in checkIfPackagesAllowed"
7468 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7475 + .packed-switch 0x2
7478 + .end packed-switch
7481 +.method private dataAccess(ZI)V
7484 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7486 + move-result-object v1
7488 + if-eqz p1, :cond_5a
7490 + if-eqz v1, :cond_5a
7492 + packed-switch p2, :pswitch_data_ae
7502 + array-length v2, v1
7504 + if-ge v0, v2, :cond_b
7506 + const-string v2, "PM,MediaRecorder"
7508 + new-instance v3, Ljava/lang/StringBuilder;
7510 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7512 + const-string v4, "Allowed Package: -"
7514 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7516 + move-result-object v3
7518 + aget-object v4, v1, v0
7520 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7522 + move-result-object v3
7524 + const-string v4, "- accessing microphone."
7526 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7528 + move-result-object v3
7530 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7532 + move-result-object v3
7534 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7536 + add-int/lit8 v0, v0, 0x1
7544 + array-length v2, v1
7546 + if-ge v0, v2, :cond_b
7548 + const-string v2, "PM,MediaRecorder"
7550 + new-instance v3, Ljava/lang/StringBuilder;
7552 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7554 + const-string v4, "Allowed Package: -"
7556 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7558 + move-result-object v3
7560 + aget-object v4, v1, v0
7562 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7564 + move-result-object v3
7566 + const-string v4, "- accessing microphone and camera."
7568 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7570 + move-result-object v3
7572 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7574 + move-result-object v3
7576 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7578 + add-int/lit8 v0, v0, 0x1
7583 + if-eqz v1, :cond_b
7585 + packed-switch p2, :pswitch_data_b6
7593 + array-length v2, v1
7595 + if-ge v0, v2, :cond_b
7597 + const-string v2, "PM,MediaRecorder"
7599 + new-instance v3, Ljava/lang/StringBuilder;
7601 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7603 + const-string v4, "Blocked Package: -"
7605 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7607 + move-result-object v3
7609 + aget-object v4, v1, v0
7611 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7613 + move-result-object v3
7615 + const-string v4, "- accessing microphone."
7617 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7619 + move-result-object v3
7621 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7623 + move-result-object v3
7625 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7627 + add-int/lit8 v0, v0, 0x1
7635 + array-length v2, v1
7637 + if-ge v0, v2, :cond_b
7639 + const-string v2, "PM,MediaRecorder"
7641 + new-instance v3, Ljava/lang/StringBuilder;
7643 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7645 + const-string v4, "Blocked Package: -"
7647 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7649 + move-result-object v3
7651 + aget-object v4, v1, v0
7653 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7655 + move-result-object v3
7657 + const-string v4, "- accessing microphone and camera."
7659 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7661 + move-result-object v3
7663 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7665 + move-result-object v3
7667 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7669 + add-int/lit8 v0, v0, 0x1
7674 + .packed-switch 0xa
7677 + .end packed-switch
7680 + .packed-switch 0xa
7683 + .end packed-switch
7686 +.method public static final getAudioSourceMax()I
7694 +.method private getPackageName()[Ljava/lang/String;
7698 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7700 + if-eqz v3, :cond_f
7702 + invoke-static {}, Landroid/os/Process;->myUid()I
7706 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7708 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
7710 + move-result-object v1
7716 + const-string/jumbo v3, "package"
7718 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
7720 + move-result-object v3
7722 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
7724 + move-result-object v3
7726 + iput-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7728 + invoke-static {}, Landroid/os/Process;->myUid()I
7732 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7734 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
7736 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
7738 + move-result-object v1
7745 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7747 + const-string v3, "PM,MediaRecorder"
7749 + const-string/jumbo v4, "something went wrong with getting package name"
7751 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7758 +.method private getPrivacyFileDescriptor()Ljava/io/FileDescriptor;
7761 + invoke-direct/range {p0 .. p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7763 + move-result-object v12
7765 + new-instance v14, Ljava/util/Random;
7767 + invoke-direct {v14}, Ljava/util/Random;-><init>()V
7771 + new-instance v15, Ljava/lang/StringBuilder;
7773 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7775 + invoke-virtual {v14}, Ljava/util/Random;->nextLong()J
7777 + move-result-wide v16
7779 + invoke-virtual/range {v15 .. v17}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
7781 + move-result-object v15
7783 + const-string v16, ".tmp"
7785 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7787 + move-result-object v15
7789 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7791 + move-result-object v2
7800 + array-length v15, v12
7802 + if-ge v11, v15, :cond_247
7805 + new-instance v9, Ljava/io/File;
7807 + new-instance v15, Ljava/lang/StringBuilder;
7809 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7811 + const-string v16, "/data/data/"
7813 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7815 + move-result-object v15
7817 + aget-object v16, v12, v11
7819 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7821 + move-result-object v15
7823 + const-string v16, "/cache/"
7825 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7827 + move-result-object v15
7829 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7831 + move-result-object v15
7833 + invoke-direct {v9, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7835 + invoke-virtual {v9}, Ljava/io/File;->mkdirs()Z
7837 + new-instance v8, Ljava/io/FileWriter;
7839 + new-instance v15, Ljava/lang/StringBuilder;
7841 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7843 + const-string v16, "/data/data/"
7845 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7847 + move-result-object v15
7849 + aget-object v16, v12, v11
7851 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7853 + move-result-object v15
7855 + const-string v16, "/cache/"
7857 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7859 + move-result-object v15
7861 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7863 + move-result-object v15
7865 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7867 + move-result-object v15
7869 + invoke-direct {v8, v15}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
7871 + .catchall {:try_start_27 .. :try_end_6e} :catchall_15f
7872 + .catch Ljava/lang/Exception; {:try_start_27 .. :try_end_6e} :catch_155
7875 + const-string/jumbo v15, "test"
7877 + invoke-virtual {v8, v15}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
7879 + invoke-virtual {v8}, Ljava/io/FileWriter;->flush()V
7881 + invoke-virtual {v8}, Ljava/io/FileWriter;->close()V
7883 + new-instance v4, Ljava/io/File;
7885 + new-instance v15, Ljava/lang/StringBuilder;
7887 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7889 + const-string v16, "/data/data/"
7891 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7893 + move-result-object v15
7895 + aget-object v16, v12, v11
7897 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7899 + move-result-object v15
7901 + const-string v16, "/cache/"
7903 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7905 + move-result-object v15
7907 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7909 + move-result-object v15
7911 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7913 + move-result-object v15
7915 + invoke-direct {v4, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7917 + .catchall {:try_start_6e .. :try_end_9e} :catchall_235
7918 + .catch Ljava/lang/Exception; {:try_start_6e .. :try_end_9e} :catch_23e
7921 + invoke-virtual {v4}, Ljava/io/File;->delete()Z
7923 + const-string v15, "PM,MediaRecorder"
7925 + new-instance v16, Ljava/lang/StringBuilder;
7927 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
7929 + const-string v17, "found our package: "
7931 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7933 + move-result-object v16
7935 + aget-object v17, v12, v11
7937 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7939 + move-result-object v16
7941 + const-string v17, " with internal path. File: "
7943 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7945 + move-result-object v16
7947 + move-object/from16 v0, v16
7949 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7951 + move-result-object v16
7953 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7955 + move-result-object v16
7957 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7959 + aget-object v1, v12, v11
7961 + .catchall {:try_start_9e .. :try_end_c9} :catchall_239
7962 + .catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c9} :catch_242
7968 + invoke-static {}, Ljava/lang/System;->gc()V
7970 + move-object v4, v3
7972 + move-object v8, v7
7975 + if-eqz v1, :cond_172
7978 + new-instance v10, Ljava/io/FileOutputStream;
7980 + new-instance v15, Ljava/lang/StringBuilder;
7982 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7984 + const-string v16, "/data/data/"
7986 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7988 + move-result-object v15
7990 + invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7992 + move-result-object v15
7994 + const-string v16, "/cache/"
7996 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7998 + move-result-object v15
8000 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8002 + move-result-object v15
8004 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8006 + move-result-object v15
8008 + invoke-direct {v10, v15}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
8010 + invoke-virtual {v10}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
8012 + move-result-object v6
8014 + new-instance v15, Ljava/lang/StringBuilder;
8016 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8018 + const-string v16, "/data/data/"
8020 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8022 + move-result-object v15
8024 + invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8026 + move-result-object v15
8028 + const-string v16, "/cache/"
8030 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8032 + move-result-object v15
8034 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8036 + move-result-object v15
8038 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8040 + move-result-object v15
8042 + move-object/from16 v0, p0
8044 + iput-object v15, v0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
8046 + const-string v15, "PM,MediaRecorder"
8048 + new-instance v16, Ljava/lang/StringBuilder;
8050 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8052 + const-string/jumbo v17, "returned fileDescriptor for package: "
8054 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8056 + move-result-object v16
8058 + move-object/from16 v0, v16
8060 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8062 + move-result-object v16
8064 + const-string v17, " with internal path. Path: "
8066 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8068 + move-result-object v16
8070 + const-string v17, "/data/data/"
8072 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8074 + move-result-object v16
8076 + move-object/from16 v0, v16
8078 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8080 + move-result-object v16
8082 + const-string v17, "/cache/"
8084 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8086 + move-result-object v16
8088 + move-object/from16 v0, v16
8090 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8092 + move-result-object v16
8094 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8096 + move-result-object v16
8098 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8100 + .catch Ljava/lang/Exception; {:try_start_d2 .. :try_end_152} :catch_166
8102 + move-object v3, v4
8104 + move-object v7, v8
8110 + move-exception v15
8117 + invoke-static {}, Ljava/lang/System;->gc()V
8119 + add-int/lit8 v11, v11, 0x1
8124 + move-exception v15
8131 + invoke-static {}, Ljava/lang/System;->gc()V
8138 + const-string v15, "PM,MediaRecorder"
8140 + const-string v16, "Got exception while creating fileDescriptor -> return null"
8142 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
8146 + move-object v3, v4
8148 + move-object v7, v8
8154 + invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
8156 + move-result-object v15
8158 + invoke-virtual {v15}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
8160 + move-result-object v13
8162 + new-instance v7, Ljava/io/FileWriter;
8164 + new-instance v15, Ljava/lang/StringBuilder;
8166 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8168 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8170 + move-result-object v15
8172 + const-string v16, "/"
8174 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8176 + move-result-object v15
8178 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8180 + move-result-object v15
8182 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8184 + move-result-object v15
8186 + invoke-direct {v7, v15}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8188 + .catch Ljava/lang/Exception; {:try_start_172 .. :try_end_196} :catch_22e
8191 + const-string/jumbo v15, "test"
8193 + invoke-virtual {v7, v15}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8195 + invoke-virtual {v7}, Ljava/io/FileWriter;->flush()V
8197 + invoke-virtual {v7}, Ljava/io/FileWriter;->close()V
8199 + new-instance v3, Ljava/io/File;
8201 + new-instance v15, Ljava/lang/StringBuilder;
8203 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8205 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8207 + move-result-object v15
8209 + const-string v16, "/"
8211 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8213 + move-result-object v15
8215 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8217 + move-result-object v15
8219 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8221 + move-result-object v15
8223 + invoke-direct {v3, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8225 + .catch Ljava/lang/Exception; {:try_start_196 .. :try_end_1be} :catch_232
8228 + invoke-virtual {v3}, Ljava/io/File;->delete()Z
8230 + new-instance v10, Ljava/io/FileOutputStream;
8232 + new-instance v15, Ljava/lang/StringBuilder;
8234 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8236 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8238 + move-result-object v15
8240 + const-string v16, "/"
8242 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8244 + move-result-object v15
8246 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8248 + move-result-object v15
8250 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8252 + move-result-object v15
8254 + invoke-direct {v10, v15}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
8256 + invoke-virtual {v10}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
8258 + move-result-object v6
8260 + new-instance v15, Ljava/lang/StringBuilder;
8262 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8264 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8266 + move-result-object v15
8268 + const-string v16, "/"
8270 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8272 + move-result-object v15
8274 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8276 + move-result-object v15
8278 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8280 + move-result-object v15
8282 + move-object/from16 v0, p0
8284 + iput-object v15, v0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
8286 + const-string v15, "PM,MediaRecorder"
8288 + new-instance v16, Ljava/lang/StringBuilder;
8290 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8292 + const-string v17, "Returned FileDescriptor. Path: "
8294 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8296 + move-result-object v16
8298 + move-object/from16 v0, v16
8300 + invoke-virtual {v0, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8302 + move-result-object v16
8304 + const-string v17, "/"
8306 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8308 + move-result-object v16
8310 + move-object/from16 v0, v16
8312 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8314 + move-result-object v16
8316 + const-string v17, " . It is on SDCard!"
8318 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8320 + move-result-object v16
8322 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8324 + move-result-object v16
8326 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8328 + .catch Ljava/lang/Exception; {:try_start_1be .. :try_end_228} :catch_22a
8343 + move-object v3, v4
8345 + move-object v7, v8
8352 + move-object v3, v4
8357 + move-exception v15
8359 + move-object v7, v8
8364 + move-exception v15
8366 + move-object v3, v4
8368 + move-object v7, v8
8373 + move-exception v15
8375 + move-object v7, v8
8380 + move-exception v15
8382 + move-object v3, v4
8384 + move-object v7, v8
8389 + move-object v4, v3
8391 + move-object v8, v7
8396 +.method private getPrivacyPath()Ljava/lang/String;
8399 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
8401 + move-result-object v9
8403 + new-instance v11, Ljava/util/Random;
8405 + invoke-direct {v11}, Ljava/util/Random;-><init>()V
8409 + new-instance v12, Ljava/lang/StringBuilder;
8411 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8413 + invoke-virtual {v11}, Ljava/util/Random;->nextLong()J
8415 + move-result-wide v13
8417 + invoke-virtual {v12, v13, v14}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
8419 + move-result-object v12
8421 + const-string v13, ".tmp"
8423 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8425 + move-result-object v12
8427 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8429 + move-result-object v1
8438 + array-length v12, v9
8440 + if-ge v8, v12, :cond_1eb
8443 + new-instance v7, Ljava/io/File;
8445 + new-instance v12, Ljava/lang/StringBuilder;
8447 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8449 + const-string v13, "/data/data/"
8451 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8453 + move-result-object v12
8455 + aget-object v13, v9, v8
8457 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8459 + move-result-object v12
8461 + const-string v13, "/cache/"
8463 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8465 + move-result-object v12
8467 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8469 + move-result-object v12
8471 + invoke-direct {v7, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8473 + invoke-virtual {v7}, Ljava/io/File;->mkdirs()Z
8475 + new-instance v6, Ljava/io/FileWriter;
8477 + new-instance v12, Ljava/lang/StringBuilder;
8479 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8481 + const-string v13, "/data/data/"
8483 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8485 + move-result-object v12
8487 + aget-object v13, v9, v8
8489 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8491 + move-result-object v12
8493 + const-string v13, "/cache/"
8495 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8497 + move-result-object v12
8499 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8501 + move-result-object v12
8503 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8505 + move-result-object v12
8507 + invoke-direct {v6, v12}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8509 + .catchall {:try_start_27 .. :try_end_6e} :catchall_137
8510 + .catch Ljava/lang/Exception; {:try_start_27 .. :try_end_6e} :catch_12d
8513 + const-string/jumbo v12, "test"
8515 + invoke-virtual {v6, v12}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8517 + invoke-virtual {v6}, Ljava/io/FileWriter;->flush()V
8519 + invoke-virtual {v6}, Ljava/io/FileWriter;->close()V
8521 + new-instance v3, Ljava/io/File;
8523 + new-instance v12, Ljava/lang/StringBuilder;
8525 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8527 + const-string v13, "/data/data/"
8529 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8531 + move-result-object v12
8533 + aget-object v13, v9, v8
8535 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8537 + move-result-object v12
8539 + const-string v13, "/cache/"
8541 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8543 + move-result-object v12
8545 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8547 + move-result-object v12
8549 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8551 + move-result-object v12
8553 + invoke-direct {v3, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8555 + .catchall {:try_start_6e .. :try_end_9e} :catchall_1d9
8556 + .catch Ljava/lang/Exception; {:try_start_6e .. :try_end_9e} :catch_1e2
8559 + invoke-virtual {v3}, Ljava/io/File;->delete()Z
8561 + const-string v12, "PM,MediaRecorder"
8563 + new-instance v13, Ljava/lang/StringBuilder;
8565 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
8567 + const-string v14, "found our package: "
8569 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8571 + move-result-object v13
8573 + aget-object v14, v9, v8
8575 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8577 + move-result-object v13
8579 + const-string v14, " with internal path. File: "
8581 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8583 + move-result-object v13
8585 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8587 + move-result-object v13
8589 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8591 + move-result-object v13
8593 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8595 + aget-object v0, v9, v8
8597 + .catchall {:try_start_9e .. :try_end_c7} :catchall_1dd
8598 + .catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c7} :catch_1e6
8604 + invoke-static {}, Ljava/lang/System;->gc()V
8606 + move-object v3, v2
8608 + move-object v6, v5
8611 + if-eqz v0, :cond_13e
8613 + const-string v12, "PM,MediaRecorder"
8615 + new-instance v13, Ljava/lang/StringBuilder;
8617 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
8619 + const-string/jumbo v14, "returned file: "
8621 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8623 + move-result-object v13
8625 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8627 + move-result-object v13
8629 + const-string v14, " for package: "
8631 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8633 + move-result-object v13
8635 + invoke-virtual {v13, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8637 + move-result-object v13
8639 + const-string v14, " with internal path. Path: "
8641 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8643 + move-result-object v13
8645 + const-string v14, "/data/data/"
8647 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8649 + move-result-object v13
8651 + invoke-virtual {v13, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8653 + move-result-object v13
8655 + const-string v14, "/cache/"
8657 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8659 + move-result-object v13
8661 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8663 + move-result-object v13
8665 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8667 + move-result-object v13
8669 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8671 + new-instance v12, Ljava/lang/StringBuilder;
8673 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8675 + const-string v13, "/data/data/"
8677 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8679 + move-result-object v12
8681 + invoke-virtual {v12, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8683 + move-result-object v12
8685 + const-string v13, "/cache/"
8687 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8689 + move-result-object v12
8691 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8693 + move-result-object v12
8695 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8697 + move-result-object v12
8699 + move-object v2, v3
8701 + move-object v5, v6
8707 + move-exception v12
8714 + invoke-static {}, Ljava/lang/System;->gc()V
8716 + add-int/lit8 v8, v8, 0x1
8721 + move-exception v12
8728 + invoke-static {}, Ljava/lang/System;->gc()V
8734 + invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
8736 + move-result-object v12
8738 + invoke-virtual {v12}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
8740 + move-result-object v10
8742 + new-instance v5, Ljava/io/FileWriter;
8744 + new-instance v12, Ljava/lang/StringBuilder;
8746 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8748 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8750 + move-result-object v12
8752 + const-string v13, "/"
8754 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8756 + move-result-object v12
8758 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8760 + move-result-object v12
8762 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8764 + move-result-object v12
8766 + invoke-direct {v5, v12}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8768 + .catch Ljava/lang/Exception; {:try_start_13e .. :try_end_162} :catch_1ce
8771 + const-string/jumbo v12, "test"
8773 + invoke-virtual {v5, v12}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8775 + invoke-virtual {v5}, Ljava/io/FileWriter;->flush()V
8777 + invoke-virtual {v5}, Ljava/io/FileWriter;->close()V
8779 + new-instance v2, Ljava/io/File;
8781 + new-instance v12, Ljava/lang/StringBuilder;
8783 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8785 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8787 + move-result-object v12
8789 + const-string v13, "/"
8791 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8793 + move-result-object v12
8795 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8797 + move-result-object v12
8799 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8801 + move-result-object v12
8803 + invoke-direct {v2, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8805 + .catch Ljava/lang/Exception; {:try_start_162 .. :try_end_18a} :catch_1d4
8808 + invoke-virtual {v2}, Ljava/io/File;->delete()Z
8810 + const-string v12, "PM,MediaRecorder"
8812 + new-instance v13, Ljava/lang/StringBuilder;
8814 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
8816 + const-string v14, "Return filePath: "
8818 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8820 + move-result-object v13
8822 + invoke-virtual {v13, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8824 + move-result-object v13
8826 + const-string v14, "/"
8828 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8830 + move-result-object v13
8832 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8834 + move-result-object v13
8836 + const-string v14, " . It is on SDCard!"
8838 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8840 + move-result-object v13
8842 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8844 + move-result-object v13
8846 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8848 + new-instance v12, Ljava/lang/StringBuilder;
8850 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8852 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8854 + move-result-object v12
8856 + const-string v13, "/"
8858 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8860 + move-result-object v12
8862 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8864 + move-result-object v12
8866 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8868 + .catch Ljava/lang/Exception; {:try_start_18a .. :try_end_1cb} :catch_1d7
8870 + move-result-object v12
8877 + move-object v2, v3
8879 + move-object v5, v6
8889 + move-object v2, v3
8899 + move-exception v12
8901 + move-object v5, v6
8906 + move-exception v12
8908 + move-object v2, v3
8910 + move-object v5, v6
8915 + move-exception v12
8917 + move-object v5, v6
8922 + move-exception v12
8924 + move-object v2, v3
8926 + move-object v5, v6
8931 + move-object v3, v2
8933 + move-object v6, v5
8938 +.method private initiate()V
8944 + iput-object v1, p0, Landroid/media/MediaRecorder;->context:Landroid/content/Context;
8946 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
8948 + iget-object v2, p0, Landroid/media/MediaRecorder;->context:Landroid/content/Context;
8950 + const-string/jumbo v3, "privacy"
8952 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
8954 + move-result-object v3
8956 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
8958 + move-result-object v3
8960 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
8962 + iput-object v1, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
8964 + const-string/jumbo v1, "package"
8966 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
8968 + move-result-object v1
8970 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
8972 + move-result-object v1
8974 + iput-object v1, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
8978 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->privacyMode:Z
8980 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
8988 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
8990 + const-string v1, "PM,MediaRecorder"
8992 + const-string v2, "Something went wrong with initalize variables"
8994 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
8999 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9004 .method private final native native_finalize()V
9005 @@ -240,17 +2017,104 @@
9009 +.method private privacyStop()V
9013 + invoke-virtual {p0}, Landroid/media/MediaRecorder;->stop()V
9015 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_3} :catch_4
9023 + const-string v1, "PM,MediaRecorder"
9025 + const-string v2, "Got exception while trying to call privacyStop()"
9027 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9032 .method private native setParameter(Ljava/lang/String;)V
9037 .method protected finalize()V
9043 + iget-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9045 + if-nez v1, :cond_18
9047 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9049 + if-eqz v1, :cond_1c
9051 + new-instance v0, Ljava/io/File;
9053 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9055 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9057 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9061 + if-eqz v1, :cond_18
9063 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9067 invoke-direct {p0}, Landroid/media/MediaRecorder;->native_finalize()V
9072 + iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9074 + if-eqz v1, :cond_34
9076 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9078 + if-eqz v1, :cond_34
9080 + new-instance v0, Ljava/io/File;
9082 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9084 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9086 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9090 + if-eqz v1, :cond_18
9092 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9097 + const-string v1, "PM,MediaRecorder"
9099 + const-string v2, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
9101 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9105 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9110 .method public native getMaxAmplitude()I
9111 @@ -262,7 +2126,7 @@
9114 .method public prepare()V
9117 .annotation system Ldalvik/annotation/Throws;
9119 Ljava/lang/IllegalStateException;,
9120 @@ -270,20 +2134,80 @@
9124 - const-wide/16 v2, 0x0
9125 + iget-boolean v0, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9127 + if-nez v0, :cond_7
9129 + invoke-direct {p0}, Landroid/media/MediaRecorder;->initiate()V
9134 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9138 + iget v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9140 + packed-switch v0, :pswitch_data_102
9144 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9146 + move-result-object v8
9148 + if-nez v9, :cond_31
9150 + iget v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9154 + if-ne v0, v1, :cond_cf
9156 + if-eqz v8, :cond_cf
9158 + array-length v0, v8
9160 + if-lez v0, :cond_cf
9162 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9166 + aget-object v1, v8, v1
9172 + const-string v4, "camera"
9178 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9184 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9187 iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9189 - if-eqz v0, :cond_25
9190 + if-eqz v0, :cond_ea
9192 - new-instance v6, Ljava/io/FileOutputStream;
9193 + new-instance v7, Ljava/io/FileOutputStream;
9195 iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9197 - invoke-direct {v6, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
9198 + invoke-direct {v7, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
9201 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
9203 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
9205 move-result-object v1
9207 @@ -294,39 +2218,215 @@
9210 invoke-direct/range {v0 .. v5}, Landroid/media/MediaRecorder;->_setOutputFile(Ljava/io/FileDescriptor;JJ)V
9212 - .catchall {:try_start_d .. :try_end_19} :catchall_20
9214 + .catchall {:try_start_3c .. :try_end_48} :catchall_e5
9216 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->close()V
9217 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
9221 invoke-direct {p0}, Landroid/media/MediaRecorder;->_prepare()V
9229 + invoke-direct {p0, v0}, Landroid/media/MediaRecorder;->checkIfPackagesAllowed(I)I
9235 + if-ne v0, v1, :cond_10
9237 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9239 + move-result-object v10
9241 + if-eqz v10, :cond_6f
9243 + array-length v0, v10
9245 + if-lez v0, :cond_6f
9247 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9251 + aget-object v1, v10, v1
9257 + const-string/jumbo v4, "recordAudio"
9263 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9266 + new-instance v0, Landroid/media/MediaRecorder$PrivacyRunner;
9268 + invoke-direct {v0, p0}, Landroid/media/MediaRecorder$PrivacyRunner;-><init>(Landroid/media/MediaRecorder;)V
9270 + iput-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9272 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9274 + const-wide/16 v1, 0x32
9276 + invoke-virtual {v0, v1, v2}, Landroid/media/MediaRecorder$PrivacyRunner;->setDelay(J)V
9278 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9280 + invoke-virtual {v0}, Landroid/media/MediaRecorder$PrivacyRunner;->start()V
9289 + invoke-direct {p0, v0}, Landroid/media/MediaRecorder;->checkIfPackagesAllowed(I)I
9295 + if-ne v0, v1, :cond_10
9297 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9299 + move-result-object v10
9301 + if-eqz v10, :cond_a3
9303 + array-length v0, v10
9305 + if-lez v0, :cond_a3
9307 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9311 + aget-object v1, v10, v1
9317 + const-string v4, "camera"
9323 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9326 + iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9328 + if-eqz v0, :cond_bc
9330 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPrivacyPath()Ljava/lang/String;
9332 + move-result-object v0
9334 + iput-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9337 + new-instance v0, Landroid/media/MediaRecorder$PrivacyRunner;
9339 + invoke-direct {v0, p0}, Landroid/media/MediaRecorder$PrivacyRunner;-><init>(Landroid/media/MediaRecorder;)V
9341 + iput-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9343 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9345 + invoke-virtual {v0}, Landroid/media/MediaRecorder$PrivacyRunner;->start()V
9352 + iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9354 + if-eqz v0, :cond_c7
9356 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPrivacyFileDescriptor()Ljava/io/FileDescriptor;
9358 + move-result-object v0
9360 + iput-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9365 + new-instance v0, Ljava/io/IOException;
9367 + const-string v1, "No valid output file"
9369 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
9374 + if-eqz v8, :cond_2e
9376 + array-length v0, v8
9378 + if-lez v0, :cond_2e
9380 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9384 + aget-object v1, v8, v1
9390 + const-string/jumbo v4, "recordAudio"
9396 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9403 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->close()V
9404 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
9410 iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9412 - if-eqz v0, :cond_31
9413 + if-eqz v0, :cond_fa
9415 iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9417 - move-object v0, p0
9418 + const-wide/16 v2, 0x0
9421 + const-wide/16 v4, 0x0
9423 + move-object v0, p0
9425 invoke-direct/range {v0 .. v5}, Landroid/media/MediaRecorder;->_setOutputFile(Ljava/io/FileDescriptor;JJ)V
9432 new-instance v0, Ljava/io/IOException;
9434 const-string v1, "No valid output file"
9435 @@ -334,23 +2434,97 @@
9436 invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
9441 + .packed-switch 0x0
9444 + .end packed-switch
9447 .method public native release()V
9450 .method public reset()V
9458 invoke-direct {p0}, Landroid/media/MediaRecorder;->native_reset()V
9460 - iget-object v0, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
9461 + iget-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9464 + if-nez v1, :cond_1c
9466 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9468 + if-eqz v1, :cond_27
9470 + new-instance v0, Ljava/io/File;
9472 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9474 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9476 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9480 + if-eqz v1, :cond_1c
9482 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9484 - invoke-virtual {v0, v1}, Landroid/media/MediaRecorder$EventHandler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
9487 + iput-object v3, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9489 + invoke-static {}, Ljava/lang/System;->gc()V
9491 + iget-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
9493 + invoke-virtual {v1, v3}, Landroid/media/MediaRecorder$EventHandler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
9498 + iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9500 + if-eqz v1, :cond_3f
9502 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9504 + if-eqz v1, :cond_3f
9506 + new-instance v0, Ljava/io/File;
9508 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9510 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9512 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9516 + if-eqz v1, :cond_1c
9518 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9523 + const-string v1, "PM,MediaRecorder"
9525 + const-string v2, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
9527 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9531 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9536 .method public setAudioChannels(I)V
9537 @@ -510,6 +2684,10 @@
9538 .method public setCaptureRate(D)V
9543 + iput v3, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9545 const-string/jumbo v3, "time-lapse-enable=1"
9547 invoke-direct {p0, v3}, Landroid/media/MediaRecorder;->setParameter(Ljava/lang/String;)V
9548 @@ -804,6 +2982,10 @@
9550 iput-object p1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9554 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9559 @@ -821,6 +3003,10 @@
9561 iput-object p1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9565 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9570 @@ -833,7 +3019,11 @@
9573 .method public setPreviewDisplay(Landroid/view/Surface;)V
9579 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9581 iput-object p1, p0, Landroid/media/MediaRecorder;->mSurface:Landroid/view/Surface;
9583 @@ -843,6 +3033,10 @@
9584 .method public setProfile(Landroid/media/CamcorderProfile;)V
9589 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9591 iget v0, p1, Landroid/media/CamcorderProfile;->fileFormat:I
9593 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setOutputFormat(I)V
9594 @@ -869,18 +3063,18 @@
9598 - if-lt v0, v1, :cond_28
9599 + if-lt v0, v1, :cond_2b
9601 iget v0, p1, Landroid/media/CamcorderProfile;->quality:I
9605 - if-gt v0, v1, :cond_28
9606 + if-gt v0, v1, :cond_2b
9614 iget v0, p1, Landroid/media/CamcorderProfile;->audioBitRate:I
9616 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setAudioEncodingBitRate(I)V
9617 @@ -897,7 +3091,7 @@
9619 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setAudioEncoder(I)V
9625 .method public native setVideoEncoder(I)V
9626 @@ -911,7 +3105,11 @@
9627 .method public setVideoEncodingBitRate(I)V
9630 - if-gtz p1, :cond_a
9633 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9635 + if-gtz p1, :cond_d
9637 new-instance v0, Ljava/lang/IllegalArgumentException;
9639 @@ -921,7 +3119,7 @@
9645 new-instance v0, Ljava/lang/StringBuilder;
9647 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
9648 diff -Npru stock-framework/smali/android/net/NetworkInfo.smali pdroid-framework/smali/android/net/NetworkInfo.smali
9649 --- stock-framework/smali/android/net/NetworkInfo.smali 2013-08-10 20:37:47.667213655 -0700
9650 +++ pdroid-framework/smali/android/net/NetworkInfo.smali 2013-08-10 20:37:42.139213426 -0700
9651 @@ -848,6 +848,14 @@
9655 +.method public setState(Landroid/net/NetworkInfo$State;)V
9658 + iput-object p1, p0, Landroid/net/NetworkInfo;->mState:Landroid/net/NetworkInfo$State;
9663 .method setSubtype(ILjava/lang/String;)V
9666 diff -Npru stock-framework/smali/android/net/wifi/p2p/WifiP2pService$P2pStateMachine.smali pdroid-framework/smali/android/net/wifi/p2p/WifiP2pService$P2pStateMachine.smali
9667 --- stock-framework/smali/android/net/wifi/p2p/WifiP2pService$P2pStateMachine.smali 2013-08-10 20:37:47.807213661 -0700
9668 +++ pdroid-framework/smali/android/net/wifi/p2p/WifiP2pService$P2pStateMachine.smali 2013-08-10 20:37:42.279213433 -0700
9669 @@ -4546,7 +4546,7 @@
9671 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
9673 - const-string v1, "mSavedPeerConfig "
9674 + const-string/jumbo v1, "mSavedPeerConfig "
9676 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9678 @@ -4568,7 +4568,7 @@
9680 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
9682 - const-string v1, "mSavedP2pGroup "
9683 + const-string/jumbo v1, "mSavedP2pGroup "
9685 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9687 diff -Npru stock-framework/smali/android/net/wifi/p2p/WifiP2pService.smali pdroid-framework/smali/android/net/wifi/p2p/WifiP2pService.smali
9688 --- stock-framework/smali/android/net/wifi/p2p/WifiP2pService.smali 2013-08-10 20:37:47.811213662 -0700
9689 +++ pdroid-framework/smali/android/net/wifi/p2p/WifiP2pService.smali 2013-08-10 20:37:42.279213433 -0700
9692 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
9694 - const-string v1, "mServiceDiscReqId "
9695 + const-string/jumbo v1, "mServiceDiscReqId "
9697 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9699 diff -Npru stock-framework/smali/android/net/wifi/WifiInfo.smali pdroid-framework/smali/android/net/wifi/WifiInfo.smali
9700 --- stock-framework/smali/android/net/wifi/WifiInfo.smali 2013-08-10 20:37:47.735213659 -0700
9701 +++ pdroid-framework/smali/android/net/wifi/WifiInfo.smali 2013-08-10 20:37:42.203213430 -0700
9702 @@ -265,6 +265,44 @@
9706 +.method public constructor <init>(Z)V
9711 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
9713 + const-string v0, ""
9715 + invoke-static {v0}, Landroid/net/wifi/WifiSsid;->createFromAsciiEncoded(Ljava/lang/String;)Landroid/net/wifi/WifiSsid;
9717 + move-result-object v0
9719 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mWifiSsid:Landroid/net/wifi/WifiSsid;
9721 + const-string v0, ""
9723 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mBSSID:Ljava/lang/String;
9725 + iput v1, p0, Landroid/net/wifi/WifiInfo;->mNetworkId:I
9727 + sget-object v0, Landroid/net/wifi/SupplicantState;->UNINITIALIZED:Landroid/net/wifi/SupplicantState;
9729 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mSupplicantState:Landroid/net/wifi/SupplicantState;
9731 + const/16 v0, -0x270f
9733 + iput v0, p0, Landroid/net/wifi/WifiInfo;->mRssi:I
9735 + iput v1, p0, Landroid/net/wifi/WifiInfo;->mLinkSpeed:I
9739 + iput-boolean v0, p0, Landroid/net/wifi/WifiInfo;->mHiddenSSID:Z
9744 .method static synthetic access$002(Landroid/net/wifi/WifiInfo;Landroid/net/wifi/WifiSsid;)Landroid/net/wifi/WifiSsid;
9747 diff -Npru stock-framework/smali/android/os/Looper.smali pdroid-framework/smali/android/os/Looper.smali
9748 --- stock-framework/smali/android/os/Looper.smali 2013-08-10 20:37:47.895213666 -0700
9749 +++ pdroid-framework/smali/android/os/Looper.smali 2013-08-10 20:37:42.391213438 -0700
9752 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
9754 - const-string v5, "mRun="
9755 + const-string/jumbo v5, "mRun="
9757 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9759 @@ -503,11 +503,11 @@
9761 iget-object v4, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
9763 - if-eqz v4, :cond_93
9764 + if-eqz v4, :cond_94
9766 iget-object v4, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
9770 invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
9772 move-result-object v4
9773 @@ -520,13 +520,13 @@
9775 iget-object v4, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
9777 - if-eqz v4, :cond_b3
9778 + if-eqz v4, :cond_b4
9780 iget-object v5, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
9786 invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
9794 - if-eqz v0, :cond_96
9796 + if-eqz v0, :cond_97
9798 new-instance v4, Ljava/lang/StringBuilder;
9800 @@ -577,18 +577,18 @@
9801 add-int/lit8 v1, v1, 0x1
9803 iget-object v0, v0, Landroid/os/Message;->next:Landroid/os/Message;
9805 - .catchall {:try_start_5f .. :try_end_92} :catchall_b4
9807 + .catchall {:try_start_60 .. :try_end_93} :catchall_b5
9814 const-string v4, "(null"
9823 new-instance v4, Ljava/lang/StringBuilder;
9825 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
9826 @@ -617,15 +617,15 @@
9840 - .catchall {:try_start_96 .. :try_end_b6} :catchall_b4
9842 + .catchall {:try_start_97 .. :try_end_b7} :catchall_b5
9846 diff -Npru stock-framework/smali/android/os/SystemProperties.smali pdroid-framework/smali/android/os/SystemProperties.smali
9847 --- stock-framework/smali/android/os/SystemProperties.smali 2013-08-10 20:37:47.931213667 -0700
9848 +++ pdroid-framework/smali/android/os/SystemProperties.smali 2013-08-10 20:37:42.435213438 -0700
9853 +.field private static final GOT_ERROR:I = -0x3
9855 +.field private static final IS_ALLOWED:I = -0x1
9857 +.field private static final IS_NOT_ALLOWED:I = -0x2
9859 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "SystemProperties"
9861 .field public static final PROP_NAME_MAX:I = 0x1f
9863 .field public static final PROP_VALUE_MAX:I = 0x5b
9865 +.field private static context:Landroid/content/Context;
9867 +.field private static mPm:Landroid/content/pm/IPackageManager;
9869 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
9871 +.field private static privacyMode:Z
9873 .field private static final sChangeCallbacks:Ljava/util/ArrayList;
9874 .annotation system Ldalvik/annotation/Signature;
9878 sput-object v0, Landroid/os/SystemProperties;->sChangeCallbacks:Ljava/util/ArrayList;
9882 + sput-boolean v0, Landroid/os/SystemProperties;->privacyMode:Z
9887 @@ -142,6 +162,205 @@
9891 +.method private static checkIfPackagesAllowed()I
9897 + sget-object v6, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9899 + if-eqz v6, :cond_41
9903 + invoke-static {}, Landroid/os/SystemProperties;->getPackageName()[Ljava/lang/String;
9905 + move-result-object v3
9907 + invoke-static {}, Landroid/os/Process;->myUid()I
9911 + if-eqz v3, :cond_2c
9916 + array-length v6, v3
9918 + if-ge v1, v6, :cond_2a
9920 + sget-object v6, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9922 + aget-object v7, v3, v1
9924 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
9926 + move-result-object v2
9928 + if-eqz v2, :cond_26
9930 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
9934 + if-eqz v6, :cond_26
9944 + add-int/lit8 v1, v1, 0x1
9954 + const-string v6, "SystemProperties"
9956 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
9958 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9960 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
9967 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
9969 + const-string v6, "SystemProperties"
9971 + const-string v7, "Got exception in checkIfPackagesAllowed"
9973 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9979 + const-string v6, "SystemProperties"
9981 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
9983 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9985 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
9990 +.method private static dataAccess(Z)V
9993 + invoke-static {}, Landroid/os/SystemProperties;->getPackageName()[Ljava/lang/String;
9995 + move-result-object v1
9997 + if-eqz p0, :cond_2f
9999 + if-eqz v1, :cond_2f
10004 + array-length v2, v1
10006 + if-ge v0, v2, :cond_58
10008 + const-string v2, "SystemProperties"
10010 + new-instance v3, Ljava/lang/StringBuilder;
10012 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
10014 + const-string v4, "Allowed Package: -"
10016 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10018 + move-result-object v3
10020 + aget-object v4, v1, v0
10022 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10024 + move-result-object v3
10026 + const-string v4, "- accessing networkinfo."
10028 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10030 + move-result-object v3
10032 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
10034 + move-result-object v3
10036 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
10038 + add-int/lit8 v0, v0, 0x1
10043 + if-eqz v1, :cond_58
10048 + array-length v2, v1
10050 + if-ge v0, v2, :cond_58
10052 + const-string v2, "SystemProperties"
10054 + new-instance v3, Ljava/lang/StringBuilder;
10056 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
10058 + const-string v4, "Blocked Package: -"
10060 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10062 + move-result-object v3
10064 + aget-object v4, v1, v0
10066 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10068 + move-result-object v3
10070 + const-string v4, "- accessing networkinfo."
10072 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10074 + move-result-object v3
10076 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
10078 + move-result-object v3
10080 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
10082 + add-int/lit8 v0, v0, 0x1
10090 .method public static get(Ljava/lang/String;)Ljava/lang/String;
10093 @@ -162,11 +381,53 @@
10097 + const-string v0, "gsm.operator.alpha"
10099 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10103 + if-nez v0, :cond_20
10105 + const-string v0, "gsm.operator.numeric"
10107 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10111 + if-eqz v0, :cond_35
10114 + invoke-static {}, Landroid/os/SystemProperties;->initiate()V
10116 + invoke-static {}, Landroid/os/SystemProperties;->checkIfPackagesAllowed()I
10122 + if-ne v0, v1, :cond_31
10126 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10128 + const-string v0, ""
10136 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10139 invoke-static {p0}, Landroid/os/SystemProperties;->native_get(Ljava/lang/String;)Ljava/lang/String;
10141 move-result-object v0
10147 .method public static get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
10148 @@ -189,11 +450,53 @@
10152 + const-string v0, "gsm.operator.alpha"
10154 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10158 + if-nez v0, :cond_20
10160 + const-string v0, "gsm.operator.numeric"
10162 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10166 + if-eqz v0, :cond_35
10169 + invoke-static {}, Landroid/os/SystemProperties;->initiate()V
10171 + invoke-static {}, Landroid/os/SystemProperties;->checkIfPackagesAllowed()I
10177 + if-ne v0, v1, :cond_31
10181 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10183 + const-string v0, ""
10191 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10194 invoke-static {p0, p1}, Landroid/os/SystemProperties;->native_get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
10196 move-result-object v0
10202 .method public static getBoolean(Ljava/lang/String;Z)Z
10203 @@ -376,6 +679,135 @@
10207 +.method private static getPackageName()[Ljava/lang/String;
10211 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10213 + if-eqz v3, :cond_f
10215 + invoke-static {}, Landroid/os/Process;->myUid()I
10219 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10221 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
10223 + move-result-object v1
10229 + const-string/jumbo v3, "package"
10231 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10233 + move-result-object v3
10235 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
10237 + move-result-object v3
10239 + sput-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10241 + invoke-static {}, Landroid/os/Process;->myUid()I
10245 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10247 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
10249 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
10251 + move-result-object v1
10256 + move-exception v0
10258 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10260 + const-string v3, "SystemProperties"
10262 + const-string/jumbo v4, "something went wrong with getting package name"
10264 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10271 +.method private static initiate()V
10277 + sput-object v1, Landroid/os/SystemProperties;->context:Landroid/content/Context;
10279 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
10281 + sget-object v2, Landroid/os/SystemProperties;->context:Landroid/content/Context;
10283 + const-string/jumbo v3, "privacy"
10285 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10287 + move-result-object v3
10289 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
10291 + move-result-object v3
10293 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
10295 + sput-object v1, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
10297 + const-string/jumbo v1, "package"
10299 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10301 + move-result-object v1
10303 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
10305 + move-result-object v1
10307 + sput-object v1, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10311 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
10313 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
10319 + move-exception v0
10321 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10323 + const-string v1, "SystemProperties"
10325 + const-string v2, "Something went wrong with initalize variables"
10327 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10331 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
10336 .method private static native native_add_change_callback()V
10339 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager.smali pdroid-framework/smali/android/privacy/IPrivacySettingsManager.smali
10340 --- stock-framework/smali/android/privacy/IPrivacySettingsManager.smali 1969-12-31 16:00:00.000000000 -0800
10341 +++ pdroid-framework/smali/android/privacy/IPrivacySettingsManager.smali 2013-08-10 20:37:42.487213441 -0700
10343 +.class public interface abstract Landroid/privacy/IPrivacySettingsManager;
10344 +.super Ljava/lang/Object;
10345 +.source "IPrivacySettingsManager.java"
10348 +.implements Landroid/os/IInterface;
10352 +.annotation system Ldalvik/annotation/MemberClasses;
10354 + Landroid/privacy/IPrivacySettingsManager$Stub;
10360 +.method public abstract addObserver(Ljava/lang/String;)V
10361 + .annotation system Ldalvik/annotation/Throws;
10363 + Landroid/os/RemoteException;
10368 +.method public abstract deleteSettings(Ljava/lang/String;)Z
10369 + .annotation system Ldalvik/annotation/Throws;
10371 + Landroid/os/RemoteException;
10376 +.method public abstract getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
10377 + .annotation system Ldalvik/annotation/Throws;
10379 + Landroid/os/RemoteException;
10384 +.method public abstract notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
10385 + .annotation system Ldalvik/annotation/Throws;
10387 + Landroid/os/RemoteException;
10392 +.method public abstract purgeSettings()Z
10393 + .annotation system Ldalvik/annotation/Throws;
10395 + Landroid/os/RemoteException;
10400 +.method public abstract registerObservers()V
10401 + .annotation system Ldalvik/annotation/Throws;
10403 + Landroid/os/RemoteException;
10408 +.method public abstract saveSettings(Landroid/privacy/PrivacySettings;)Z
10409 + .annotation system Ldalvik/annotation/Throws;
10411 + Landroid/os/RemoteException;
10416 +.method public abstract setBootCompleted()V
10417 + .annotation system Ldalvik/annotation/Throws;
10419 + Landroid/os/RemoteException;
10424 +.method public abstract setEnabled(Z)Z
10425 + .annotation system Ldalvik/annotation/Throws;
10427 + Landroid/os/RemoteException;
10432 +.method public abstract setNotificationsEnabled(Z)Z
10433 + .annotation system Ldalvik/annotation/Throws;
10435 + Landroid/os/RemoteException;
10439 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali pdroid-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali
10440 --- stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali 1969-12-31 16:00:00.000000000 -0800
10441 +++ pdroid-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali 2013-08-10 20:37:42.487213441 -0700
10443 +.class Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
10444 +.super Ljava/lang/Object;
10445 +.source "IPrivacySettingsManager.java"
10448 +.implements Landroid/privacy/IPrivacySettingsManager;
10452 +.annotation system Ldalvik/annotation/EnclosingClass;
10453 + value = Landroid/privacy/IPrivacySettingsManager$Stub;
10456 +.annotation system Ldalvik/annotation/InnerClass;
10457 + accessFlags = 0xa
10463 +.field private mRemote:Landroid/os/IBinder;
10467 +.method constructor <init>(Landroid/os/IBinder;)V
10470 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
10472 + iput-object p1, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10479 +.method public addObserver(Ljava/lang/String;)V
10481 + .annotation system Ldalvik/annotation/Throws;
10483 + Landroid/os/RemoteException;
10487 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10489 + move-result-object v0
10491 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10493 + move-result-object v1
10496 + const-string v2, "android.privacy.IPrivacySettingsManager"
10498 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10500 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10502 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10508 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10510 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10512 + .catchall {:try_start_8 .. :try_end_1a} :catchall_21
10514 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10516 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10521 + move-exception v2
10523 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10525 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10530 +.method public asBinder()Landroid/os/IBinder;
10533 + iget-object v0, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10538 +.method public deleteSettings(Ljava/lang/String;)Z
10540 + .annotation system Ldalvik/annotation/Throws;
10542 + Landroid/os/RemoteException;
10548 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10550 + move-result-object v0
10552 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10554 + move-result-object v1
10557 + const-string v3, "android.privacy.IPrivacySettingsManager"
10559 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10561 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10563 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10569 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10571 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10573 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10575 + .catchall {:try_start_9 .. :try_end_1e} :catchall_29
10579 + if-eqz v3, :cond_22
10584 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10586 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10591 + move-exception v3
10593 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10595 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10600 +.method public getInterfaceDescriptor()Ljava/lang/String;
10603 + const-string v0, "android.privacy.IPrivacySettingsManager"
10608 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
10610 + .annotation system Ldalvik/annotation/Throws;
10612 + Landroid/os/RemoteException;
10616 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10618 + move-result-object v0
10620 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10622 + move-result-object v1
10625 + const-string v3, "android.privacy.IPrivacySettingsManager"
10627 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10629 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10631 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10637 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10639 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10641 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10645 + if-eqz v3, :cond_2f
10647 + sget-object v3, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
10649 + invoke-interface {v3, v1}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
10651 + move-result-object v2
10653 + check-cast v2, Landroid/privacy/PrivacySettings;
10655 + .catchall {:try_start_8 .. :try_end_28} :catchall_31
10658 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10660 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10670 + move-exception v3
10672 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10674 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10679 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
10681 + .annotation system Ldalvik/annotation/Throws;
10683 + Landroid/os/RemoteException;
10687 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10689 + move-result-object v0
10691 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10693 + move-result-object v1
10696 + const-string v2, "android.privacy.IPrivacySettingsManager"
10698 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10700 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10702 + invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeByte(B)V
10704 + invoke-virtual {v0, p3}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10706 + invoke-virtual {v0, p4}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10708 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10714 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10716 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10718 + .catchall {:try_start_8 .. :try_end_23} :catchall_2a
10720 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10722 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10727 + move-exception v2
10729 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10731 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10736 +.method public purgeSettings()Z
10738 + .annotation system Ldalvik/annotation/Throws;
10740 + Landroid/os/RemoteException;
10746 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10748 + move-result-object v0
10750 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10752 + move-result-object v1
10755 + const-string v3, "android.privacy.IPrivacySettingsManager"
10757 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10759 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10765 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10767 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10769 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10771 + .catchall {:try_start_9 .. :try_end_1b} :catchall_26
10775 + if-eqz v3, :cond_1f
10780 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10782 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10787 + move-exception v3
10789 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10791 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10796 +.method public registerObservers()V
10798 + .annotation system Ldalvik/annotation/Throws;
10800 + Landroid/os/RemoteException;
10804 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10806 + move-result-object v0
10808 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10810 + move-result-object v1
10813 + const-string v2, "android.privacy.IPrivacySettingsManager"
10815 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10817 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10823 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10825 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10827 + .catchall {:try_start_8 .. :try_end_17} :catchall_1e
10829 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10831 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10836 + move-exception v2
10838 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10840 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10845 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
10847 + .annotation system Ldalvik/annotation/Throws;
10849 + Landroid/os/RemoteException;
10857 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10859 + move-result-object v0
10861 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10863 + move-result-object v1
10866 + const-string v4, "android.privacy.IPrivacySettingsManager"
10868 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10870 + if-eqz p1, :cond_30
10874 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
10878 + invoke-virtual {p1, v0, v4}, Landroid/privacy/PrivacySettings;->writeToParcel(Landroid/os/Parcel;I)V
10881 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10887 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10889 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10891 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10893 + .catchall {:try_start_a .. :try_end_26} :catchall_35
10897 + if-eqz v4, :cond_3d
10900 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10902 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10910 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
10912 + .catchall {:try_start_31 .. :try_end_34} :catchall_35
10917 + move-exception v3
10919 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10921 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10931 +.method public setBootCompleted()V
10933 + .annotation system Ldalvik/annotation/Throws;
10935 + Landroid/os/RemoteException;
10939 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10941 + move-result-object v0
10943 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10945 + move-result-object v1
10948 + const-string v2, "android.privacy.IPrivacySettingsManager"
10950 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10952 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10958 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10960 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10962 + .catchall {:try_start_8 .. :try_end_18} :catchall_1f
10964 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10966 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10971 + move-exception v2
10973 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10975 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10980 +.method public setEnabled(Z)Z
10982 + .annotation system Ldalvik/annotation/Throws;
10984 + Landroid/os/RemoteException;
10992 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10994 + move-result-object v0
10996 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10998 + move-result-object v1
11001 + const-string v4, "android.privacy.IPrivacySettingsManager"
11003 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11005 + if-eqz p1, :cond_2d
11010 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11012 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11018 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11020 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11022 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11024 + .catchall {:try_start_a .. :try_end_23} :catchall_31
11028 + if-eqz v4, :cond_2f
11031 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11033 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11048 + move-exception v3
11050 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11052 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11057 +.method public setNotificationsEnabled(Z)Z
11059 + .annotation system Ldalvik/annotation/Throws;
11061 + Landroid/os/RemoteException;
11069 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11071 + move-result-object v0
11073 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11075 + move-result-object v1
11078 + const-string v4, "android.privacy.IPrivacySettingsManager"
11080 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11082 + if-eqz p1, :cond_2d
11087 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11089 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11095 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11097 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11099 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11101 + .catchall {:try_start_a .. :try_end_23} :catchall_31
11105 + if-eqz v4, :cond_2f
11108 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11110 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11125 + move-exception v3
11127 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11129 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11133 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali pdroid-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali
11134 --- stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali 1969-12-31 16:00:00.000000000 -0800
11135 +++ pdroid-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali 2013-08-10 20:37:42.491213441 -0700
11137 +.class public abstract Landroid/privacy/IPrivacySettingsManager$Stub;
11138 +.super Landroid/os/Binder;
11139 +.source "IPrivacySettingsManager.java"
11142 +.implements Landroid/privacy/IPrivacySettingsManager;
11146 +.annotation system Ldalvik/annotation/EnclosingClass;
11147 + value = Landroid/privacy/IPrivacySettingsManager;
11150 +.annotation system Ldalvik/annotation/InnerClass;
11151 + accessFlags = 0x409
11155 +.annotation system Ldalvik/annotation/MemberClasses;
11157 + Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
11163 +.field private static final DESCRIPTOR:Ljava/lang/String; = "android.privacy.IPrivacySettingsManager"
11165 +.field static final TRANSACTION_addObserver:I = 0x6
11167 +.field static final TRANSACTION_deleteSettings:I = 0x3
11169 +.field static final TRANSACTION_getSettings:I = 0x1
11171 +.field static final TRANSACTION_notification:I = 0x4
11173 +.field static final TRANSACTION_purgeSettings:I = 0x7
11175 +.field static final TRANSACTION_registerObservers:I = 0x5
11177 +.field static final TRANSACTION_saveSettings:I = 0x2
11179 +.field static final TRANSACTION_setBootCompleted:I = 0xa
11181 +.field static final TRANSACTION_setEnabled:I = 0x8
11183 +.field static final TRANSACTION_setNotificationsEnabled:I = 0x9
11187 +.method public constructor <init>()V
11190 + invoke-direct {p0}, Landroid/os/Binder;-><init>()V
11192 + const-string v0, "android.privacy.IPrivacySettingsManager"
11194 + invoke-virtual {p0, p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V
11199 +.method public static asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
11202 + if-nez p0, :cond_4
11210 + const-string v1, "android.privacy.IPrivacySettingsManager"
11212 + invoke-interface {p0, v1}, Landroid/os/IBinder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
11214 + move-result-object v0
11216 + if-eqz v0, :cond_13
11218 + instance-of v1, v0, Landroid/privacy/IPrivacySettingsManager;
11220 + if-eqz v1, :cond_13
11222 + check-cast v0, Landroid/privacy/IPrivacySettingsManager;
11227 + new-instance v0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
11229 + invoke-direct {v0, p0}, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
11236 +.method public asBinder()Landroid/os/IBinder;
11242 +.method public onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11244 + .annotation system Ldalvik/annotation/Throws;
11246 + Landroid/os/RemoteException;
11254 + sparse-switch p1, :sswitch_data_fc
11256 + invoke-super {p0, p1, p2, p3, p4}, Landroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11264 + const-string v5, "android.privacy.IPrivacySettingsManager"
11266 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
11271 + const-string v7, "android.privacy.IPrivacySettingsManager"
11273 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11275 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11277 + move-result-object v0
11279 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11281 + move-result-object v4
11283 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11285 + if-eqz v4, :cond_29
11287 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11289 + invoke-virtual {v4, p3, v6}, Landroid/privacy/PrivacySettings;->writeToParcel(Landroid/os/Parcel;I)V
11294 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11299 + const-string v7, "android.privacy.IPrivacySettingsManager"
11301 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11303 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11307 + if-eqz v7, :cond_4e
11309 + sget-object v7, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
11311 + invoke-interface {v7, p2}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
11313 + move-result-object v0
11315 + check-cast v0, Landroid/privacy/PrivacySettings;
11318 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->saveSettings(Landroid/privacy/PrivacySettings;)Z
11322 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11324 + if-eqz v4, :cond_4a
11329 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11339 + const-string v7, "android.privacy.IPrivacySettingsManager"
11341 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11343 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11345 + move-result-object v0
11347 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->deleteSettings(Ljava/lang/String;)Z
11351 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11353 + if-eqz v4, :cond_63
11358 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11363 + const-string v5, "android.privacy.IPrivacySettingsManager"
11365 + invoke-virtual {p2, v5}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11367 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11369 + move-result-object v0
11371 + invoke-virtual {p2}, Landroid/os/Parcel;->readByte()B
11375 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11377 + move-result-object v2
11379 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11381 + move-result-object v3
11383 + invoke-virtual {p0, v0, v1, v2, v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11385 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11390 + const-string v5, "android.privacy.IPrivacySettingsManager"
11392 + invoke-virtual {p2, v5}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11394 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->registerObservers()V
11396 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11401 + const-string v5, "android.privacy.IPrivacySettingsManager"
11403 + invoke-virtual {p2, v5}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11405 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11407 + move-result-object v0
11409 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->addObserver(Ljava/lang/String;)V
11411 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11416 + const-string v7, "android.privacy.IPrivacySettingsManager"
11418 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11420 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->purgeSettings()Z
11424 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11426 + if-eqz v4, :cond_b0
11431 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11436 + const-string v7, "android.privacy.IPrivacySettingsManager"
11438 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11440 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11444 + if-eqz v7, :cond_d0
11449 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setEnabled(Z)Z
11453 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11455 + if-eqz v4, :cond_cb
11460 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11470 + const-string v7, "android.privacy.IPrivacySettingsManager"
11472 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11474 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11478 + if-eqz v7, :cond_ed
11483 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setNotificationsEnabled(Z)Z
11487 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11489 + if-eqz v4, :cond_e8
11494 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11504 + const-string v5, "android.privacy.IPrivacySettingsManager"
11506 + invoke-virtual {p2, v5}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11508 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setBootCompleted()V
11510 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11516 + 0x1 -> :sswitch_10
11517 + 0x2 -> :sswitch_2d
11518 + 0x3 -> :sswitch_50
11519 + 0x4 -> :sswitch_67
11520 + 0x5 -> :sswitch_83
11521 + 0x6 -> :sswitch_90
11522 + 0x7 -> :sswitch_a1
11523 + 0x8 -> :sswitch_b5
11524 + 0x9 -> :sswitch_d2
11525 + 0xa -> :sswitch_ef
11526 + 0x5f4e5446 -> :sswitch_a
11527 + .end sparse-switch
11529 diff -Npru stock-framework/smali/android/privacy/PrivacyFileObserver.smali pdroid-framework/smali/android/privacy/PrivacyFileObserver.smali
11530 --- stock-framework/smali/android/privacy/PrivacyFileObserver.smali 1969-12-31 16:00:00.000000000 -0800
11531 +++ pdroid-framework/smali/android/privacy/PrivacyFileObserver.smali 2013-08-10 20:37:42.491213441 -0700
11533 +.class public final Landroid/privacy/PrivacyFileObserver;
11534 +.super Landroid/os/FileObserver;
11535 +.source "PrivacyFileObserver.java"
11539 +.field public static final PACKAGE_PATH_INDEX:I = 0x3
11541 +.field public static final SETTINGS_TYPE_INDEX:I = 0x4
11543 +.field public static final TAG:Ljava/lang/String; = "PrivacyFileObserver"
11547 +.field public absolutePath:Ljava/lang/String;
11549 +.field public children:Ljava/util/HashMap;
11550 + .annotation system Ldalvik/annotation/Signature;
11552 + "Ljava/util/HashMap",
11554 + "Ljava/lang/String;",
11555 + "Landroid/privacy/PrivacyFileObserver;",
11561 +.field private pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11565 +.method public constructor <init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11568 + const/16 v8, 0xfff
11570 + invoke-direct {p0, p1, v8}, Landroid/os/FileObserver;-><init>(Ljava/lang/String;I)V
11572 + iput-object p1, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11574 + iput-object p2, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11576 + new-instance v8, Ljava/util/HashMap;
11578 + invoke-direct {v8}, Ljava/util/HashMap;-><init>()V
11580 + iput-object v8, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11582 + new-instance v7, Ljava/io/File;
11584 + iget-object v8, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11586 + invoke-direct {v7, v8}, Ljava/io/File;-><init>(Ljava/lang/String;)V
11588 + invoke-virtual {v7}, Ljava/io/File;->isDirectory()Z
11592 + if-eqz v8, :cond_42
11594 + invoke-virtual {v7}, Ljava/io/File;->listFiles()[Ljava/io/File;
11596 + move-result-object v6
11598 + move-object v0, v6
11600 + array-length v4, v0
11605 + if-ge v3, v4, :cond_42
11607 + aget-object v2, v0, v3
11609 + invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
11611 + move-result-object v5
11613 + new-instance v1, Landroid/privacy/PrivacyFileObserver;
11615 + invoke-direct {v1, v5, p2}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11617 + iget-object v8, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11619 + invoke-virtual {v8, v5, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
11621 + invoke-virtual {v2}, Ljava/io/File;->isFile()Z
11625 + if-eqz v8, :cond_3f
11627 + invoke-virtual {v1}, Landroid/privacy/PrivacyFileObserver;->startWatching()V
11630 + add-int/lit8 v3, v3, 0x1
11640 +.method public addObserver(Ljava/lang/String;)V
11643 + new-instance v2, Ljava/lang/StringBuilder;
11645 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
11647 + iget-object v3, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11649 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11651 + move-result-object v2
11653 + const-string v3, "/"
11655 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11657 + move-result-object v2
11659 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11661 + move-result-object v2
11663 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
11665 + move-result-object v1
11667 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11669 + invoke-virtual {v2, v1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
11671 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
11673 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11675 + invoke-direct {v0, v1, v2}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11677 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11679 + invoke-virtual {v2, v1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
11684 +.method public onEvent(ILjava/lang/String;)V
11687 + and-int/lit8 v5, p1, 0x1
11689 + if-eqz v5, :cond_48
11691 + new-instance v4, Ljava/util/StringTokenizer;
11693 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11695 + const-string v6, "/"
11697 + invoke-direct {v4, v5, v6}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
11704 + if-ge v0, v5, :cond_1d
11706 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreElements()Z
11710 + if-eqz v5, :cond_1d
11712 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
11714 + add-int/lit8 v0, v0, 0x1
11719 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
11721 + move-result-object v2
11725 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreElements()Z
11729 + if-eqz v5, :cond_2c
11731 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
11733 + move-result-object v3
11736 + if-eqz v3, :cond_49
11739 + const-string v5, "ipTableProtectSetting"
11741 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
11745 + if-eqz v5, :cond_49
11747 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11749 + invoke-virtual {v5, v2}, Landroid/privacy/PrivacySettingsManagerService;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11751 + move-result-object v1
11753 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11755 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
11759 + const-string v7, "iptables"
11763 + invoke-virtual {v5, v2, v6, v7, v8}, Landroid/privacy/PrivacySettingsManagerService;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11770 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11772 + invoke-virtual {v5, v2}, Landroid/privacy/PrivacySettingsManagerService;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11774 + move-result-object v1
11776 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11778 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
11782 + const-string/jumbo v7, "systemLogs"
11786 + invoke-virtual {v5, v2, v6, v7, v8}, Landroid/privacy/PrivacySettingsManagerService;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11788 + .catch Ljava/lang/Exception; {:try_start_2e .. :try_end_5c} :catch_5d
11793 + move-exception v5
11798 +.method public startWatching()V
11801 + invoke-super {p0}, Landroid/os/FileObserver;->startWatching()V
11805 diff -Npru stock-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali pdroid-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali
11806 --- stock-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali 1969-12-31 16:00:00.000000000 -0800
11807 +++ pdroid-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali 2013-08-10 20:37:42.495213442 -0700
11809 +.class public final Landroid/privacy/PrivacyPersistenceAdapter;
11810 +.super Ljava/lang/Object;
11811 +.source "PrivacyPersistenceAdapter.java"
11815 +.field private static final CREATE_TABLE_ALLOWED_CONTACTS:Ljava/lang/String; = "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
11817 +.field private static final CREATE_TABLE_MAP:Ljava/lang/String; = "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
11819 +.field private static final CREATE_TABLE_SETTINGS:Ljava/lang/String; = "CREATE TABLE IF NOT EXISTS settings ( _id INTEGER PRIMARY KEY AUTOINCREMENT, packageName TEXT, uid INTEGER, deviceIdSetting INTEGER, deviceId TEXT, line1NumberSetting INTEGER, line1Number TEXT, locationGpsSetting INTEGER, locationGpsLat TEXT, locationGpsLon TEXT, locationNetworkSetting INTEGER, locationNetworkLat TEXT, locationNetworkLon TEXT, networkInfoSetting INTEGER, simInfoSetting INTEGER, simSerialNumberSetting INTEGER, simSerialNumber TEXT, subscriberIdSetting INTEGER, subscriberId TEXT, accountsSetting INTEGER, accountsAuthTokensSetting INTEGER, outgoingCallsSetting INTEGER, incomingCallsSetting INTEGER, contactsSetting INTEGER, calendarSetting INTEGER, mmsSetting INTEGER, smsSetting INTEGER, callLogSetting INTEGER, bookmarksSetting INTEGER, systemLogsSetting INTEGER, externalStorageSetting INTEGER, cameraSetting INTEGER, recordAudioSetting INTEGER, notificationSetting INTEGER, intentBootCompletedSetting INTEGER, smsSendSetting INTEGER, phoneCallSetting INTEGER, ipTableProtectSetting INTEGER, iccAccessSetting INTEGER, addOnManagementSetting INTEGER, androidIdSetting INTEGER, androidId TEXT, wifiInfoSetting INTEGER, switchConnectivitySetting INTEGER, sendMmsSetting INTEGER, forceOnlineState INTEGER, switchWifiStateSetting INTEGER);"
11821 +.field private static final DATABASE_FIELDS:[Ljava/lang/String; = null
11823 +.field private static final DATABASE_FILE:Ljava/lang/String; = "/data/system/privacy.db"
11825 +.field private static final DATABASE_VERSION:I = 0x4
11827 +.field private static final DEFAULT_CACHE_ENTRIES:I = 0x14
11829 +.field public static final DUMMY_UID:I = -0x1
11831 +.field private static final INSERT_ENABLED:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
11833 +.field private static final INSERT_NOTIFICATIONS_ENABLED:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
11835 +.field private static final INSERT_VERSION:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
11837 +.field private static final LOG_CACHE:Z = false
11839 +.field private static final LOG_LOCKING:Z = false
11841 +.field private static final LOG_OPEN_AND_CLOSE:Z = false
11843 +.field private static final MINIMUM_CACHE_ENTRIES:I = 0x0
11845 +.field private static final RETRY_QUERY_COUNT:I = 0x5
11847 +.field public static final SETTINGS_DIRECTORY:Ljava/lang/String; = "/data/system/privacy"
11849 +.field public static final SETTING_DB_VERSION:Ljava/lang/String; = "db_version"
11851 +.field public static final SETTING_ENABLED:Ljava/lang/String; = "enabled"
11853 +.field public static final SETTING_NOTIFICATIONS_ENABLED:Ljava/lang/String; = "notifications_enabled"
11855 +.field private static final TABLE_ALLOWED_CONTACTS:Ljava/lang/String; = "allowed_contacts"
11857 +.field private static final TABLE_MAP:Ljava/lang/String; = "map"
11859 +.field private static final TABLE_SETTINGS:Ljava/lang/String; = "settings"
11861 +.field private static final TABLE_VERSION:Ljava/lang/String; = "version"
11863 +.field private static final TAG:Ljava/lang/String; = "PrivacyPersistenceAdapter"
11865 +.field public static final VALUE_FALSE:Ljava/lang/String; = "0"
11867 +.field public static final VALUE_TRUE:Ljava/lang/String; = "1"
11869 +.field private static final autoCloseDb:Z = false
11871 +.field public static volatile sDbAccessThreads:Ljava/lang/Integer; = null
11873 +.field private static sDbLock:Ljava/util/concurrent/locks/ReadWriteLock; = null
11875 +.field public static volatile sDbVersion:I = 0x0
11877 +.field private static settingsCache:Landroid/util/LruCache; = null
11878 + .annotation system Ldalvik/annotation/Signature;
11880 + "Landroid/util/LruCache",
11882 + "Ljava/lang/String;",
11883 + "Landroid/privacy/PrivacySettingsStub;",
11889 +.field private static final useCache:Z = true
11893 +.field private mContext:Landroid/content/Context;
11895 +.field private mDb:Landroid/database/sqlite/SQLiteDatabase;
11899 +.method static constructor <clinit>()V
11902 + const/16 v3, 0x14
11906 + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
11908 + move-result-object v0
11910 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
11912 + new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock;
11914 + invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;-><init>()V
11916 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
11918 + new-instance v0, Landroid/util/LruCache;
11920 + invoke-direct {v0, v3}, Landroid/util/LruCache;-><init>(I)V
11922 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
11924 + const/16 v0, 0x2f
11926 + new-array v0, v0, [Ljava/lang/String;
11928 + const-string v1, "_id"
11930 + aput-object v1, v0, v2
11934 + const-string/jumbo v2, "packageName"
11936 + aput-object v2, v0, v1
11940 + const-string/jumbo v2, "uid"
11942 + aput-object v2, v0, v1
11946 + const-string v2, "deviceIdSetting"
11948 + aput-object v2, v0, v1
11952 + const-string v2, "deviceId"
11954 + aput-object v2, v0, v1
11958 + const-string v2, "line1NumberSetting"
11960 + aput-object v2, v0, v1
11964 + const-string v2, "line1Number"
11966 + aput-object v2, v0, v1
11970 + const-string v2, "locationGpsSetting"
11972 + aput-object v2, v0, v1
11976 + const-string v2, "locationGpsLat"
11978 + aput-object v2, v0, v1
11982 + const-string v2, "locationGpsLon"
11984 + aput-object v2, v0, v1
11988 + const-string v2, "locationNetworkSetting"
11990 + aput-object v2, v0, v1
11994 + const-string v2, "locationNetworkLat"
11996 + aput-object v2, v0, v1
12000 + const-string v2, "locationNetworkLon"
12002 + aput-object v2, v0, v1
12006 + const-string/jumbo v2, "networkInfoSetting"
12008 + aput-object v2, v0, v1
12012 + const-string/jumbo v2, "simInfoSetting"
12014 + aput-object v2, v0, v1
12018 + const-string/jumbo v2, "simSerialNumberSetting"
12020 + aput-object v2, v0, v1
12022 + const/16 v1, 0x10
12024 + const-string/jumbo v2, "simSerialNumber"
12026 + aput-object v2, v0, v1
12028 + const/16 v1, 0x11
12030 + const-string/jumbo v2, "subscriberIdSetting"
12032 + aput-object v2, v0, v1
12034 + const/16 v1, 0x12
12036 + const-string/jumbo v2, "subscriberId"
12038 + aput-object v2, v0, v1
12040 + const/16 v1, 0x13
12042 + const-string v2, "accountsSetting"
12044 + aput-object v2, v0, v1
12046 + const-string v1, "accountsAuthTokensSetting"
12048 + aput-object v1, v0, v3
12050 + const/16 v1, 0x15
12052 + const-string/jumbo v2, "outgoingCallsSetting"
12054 + aput-object v2, v0, v1
12056 + const/16 v1, 0x16
12058 + const-string v2, "incomingCallsSetting"
12060 + aput-object v2, v0, v1
12062 + const/16 v1, 0x17
12064 + const-string v2, "contactsSetting"
12066 + aput-object v2, v0, v1
12068 + const/16 v1, 0x18
12070 + const-string v2, "calendarSetting"
12072 + aput-object v2, v0, v1
12074 + const/16 v1, 0x19
12076 + const-string/jumbo v2, "mmsSetting"
12078 + aput-object v2, v0, v1
12080 + const/16 v1, 0x1a
12082 + const-string/jumbo v2, "smsSetting"
12084 + aput-object v2, v0, v1
12086 + const/16 v1, 0x1b
12088 + const-string v2, "callLogSetting"
12090 + aput-object v2, v0, v1
12092 + const/16 v1, 0x1c
12094 + const-string v2, "bookmarksSetting"
12096 + aput-object v2, v0, v1
12098 + const/16 v1, 0x1d
12100 + const-string/jumbo v2, "systemLogsSetting"
12102 + aput-object v2, v0, v1
12104 + const/16 v1, 0x1e
12106 + const-string v2, "externalStorageSetting"
12108 + aput-object v2, v0, v1
12110 + const/16 v1, 0x1f
12112 + const-string v2, "cameraSetting"
12114 + aput-object v2, v0, v1
12116 + const/16 v1, 0x20
12118 + const-string/jumbo v2, "recordAudioSetting"
12120 + aput-object v2, v0, v1
12122 + const/16 v1, 0x21
12124 + const-string/jumbo v2, "notificationSetting"
12126 + aput-object v2, v0, v1
12128 + const/16 v1, 0x22
12130 + const-string v2, "intentBootCompletedSetting"
12132 + aput-object v2, v0, v1
12134 + const/16 v1, 0x23
12136 + const-string/jumbo v2, "smsSendSetting"
12138 + aput-object v2, v0, v1
12140 + const/16 v1, 0x24
12142 + const-string/jumbo v2, "phoneCallSetting"
12144 + aput-object v2, v0, v1
12146 + const/16 v1, 0x25
12148 + const-string v2, "ipTableProtectSetting"
12150 + aput-object v2, v0, v1
12152 + const/16 v1, 0x26
12154 + const-string v2, "iccAccessSetting"
12156 + aput-object v2, v0, v1
12158 + const/16 v1, 0x27
12160 + const-string v2, "addOnManagementSetting"
12162 + aput-object v2, v0, v1
12164 + const/16 v1, 0x28
12166 + const-string v2, "androidIdSetting"
12168 + aput-object v2, v0, v1
12170 + const/16 v1, 0x29
12172 + const-string v2, "androidId"
12174 + aput-object v2, v0, v1
12176 + const/16 v1, 0x2a
12178 + const-string/jumbo v2, "wifiInfoSetting"
12180 + aput-object v2, v0, v1
12182 + const/16 v1, 0x2b
12184 + const-string/jumbo v2, "switchConnectivitySetting"
12186 + aput-object v2, v0, v1
12188 + const/16 v1, 0x2c
12190 + const-string/jumbo v2, "sendMmsSetting"
12192 + aput-object v2, v0, v1
12194 + const/16 v1, 0x2d
12196 + const-string v2, "forceOnlineState"
12198 + aput-object v2, v0, v1
12200 + const/16 v1, 0x2e
12202 + const-string/jumbo v2, "switchWifiStateSetting"
12204 + aput-object v2, v0, v1
12206 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->DATABASE_FIELDS:[Ljava/lang/String;
12211 +.method public constructor <init>(Landroid/content/Context;)V
12214 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
12216 + iput-object p1, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mContext:Landroid/content/Context;
12218 + new-instance v0, Ljava/io/File;
12220 + const-string v1, "/data/system/"
12222 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12224 + invoke-virtual {v0}, Ljava/io/File;->canWrite()Z
12228 + if-eqz v0, :cond_6c
12230 + new-instance v0, Ljava/io/File;
12232 + const-string v1, "/data/system/privacy.db"
12234 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12236 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12240 + if-eqz v0, :cond_2c
12242 + new-instance v0, Ljava/io/File;
12244 + const-string v1, "/data/system/privacy"
12246 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12248 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12252 + if-nez v0, :cond_5e
12255 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12257 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12259 + move-result-object v0
12261 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
12264 + new-instance v0, Ljava/io/File;
12266 + const-string v1, "/data/system/privacy.db"
12268 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12270 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12274 + if-nez v0, :cond_45
12276 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->createDatabase()V
12279 + new-instance v0, Ljava/io/File;
12281 + const-string v1, "/data/system/privacy"
12283 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12285 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12289 + if-nez v0, :cond_55
12291 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->createSettingsDir()V
12293 + .catchall {:try_start_35 .. :try_end_55} :catchall_6d
12296 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12298 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12300 + move-result-object v0
12302 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
12305 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDbVersion()I
12309 + sput v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12311 + sget v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12315 + if-ge v0, v1, :cond_6c
12317 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->upgradeDatabase()V
12323 + move-exception v0
12325 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12327 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12329 + move-result-object v1
12331 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
12336 +.method private closeIdleDatabase()V
12339 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12344 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12346 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12348 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
12352 + add-int/lit8 v0, v0, -0x1
12354 + invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
12356 + move-result-object v0
12358 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12360 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12362 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
12366 + if-nez v0, :cond_27
12368 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12370 + if-eqz v0, :cond_27
12372 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12374 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12378 + if-eqz v0, :cond_27
12386 + move-exception v0
12390 + .catchall {:try_start_3 .. :try_end_2b} :catchall_29
12395 +.method private createDatabase()V
12398 + const-string v2, "PrivacyPersistenceAdapter"
12400 + const-string v3, "createDatabase - creating privacy database file"
12402 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12405 + const-string v2, "/data/system/privacy.db"
12409 + const/high16 v4, 0x1000
12411 + invoke-static {v2, v3, v4}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
12413 + move-result-object v0
12415 + const-string v2, "PrivacyPersistenceAdapter"
12417 + const-string v3, "createDatabase - creating privacy database"
12419 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12421 + const-string v2, "CREATE TABLE IF NOT EXISTS settings ( _id INTEGER PRIMARY KEY AUTOINCREMENT, packageName TEXT, uid INTEGER, deviceIdSetting INTEGER, deviceId TEXT, line1NumberSetting INTEGER, line1Number TEXT, locationGpsSetting INTEGER, locationGpsLat TEXT, locationGpsLon TEXT, locationNetworkSetting INTEGER, locationNetworkLat TEXT, locationNetworkLon TEXT, networkInfoSetting INTEGER, simInfoSetting INTEGER, simSerialNumberSetting INTEGER, simSerialNumber TEXT, subscriberIdSetting INTEGER, subscriberId TEXT, accountsSetting INTEGER, accountsAuthTokensSetting INTEGER, outgoingCallsSetting INTEGER, incomingCallsSetting INTEGER, contactsSetting INTEGER, calendarSetting INTEGER, mmsSetting INTEGER, smsSetting INTEGER, callLogSetting INTEGER, bookmarksSetting INTEGER, systemLogsSetting INTEGER, externalStorageSetting INTEGER, cameraSetting INTEGER, recordAudioSetting INTEGER, notificationSetting INTEGER, intentBootCompletedSetting INTEGER, smsSendSetting INTEGER, phoneCallSetting INTEGER, ipTableProtectSetting INTEGER, iccAccessSetting INTEGER, addOnManagementSetting INTEGER, androidIdSetting INTEGER, androidId TEXT, wifiInfoSetting INTEGER, switchConnectivitySetting INTEGER, sendMmsSetting INTEGER, forceOnlineState INTEGER, switchWifiStateSetting INTEGER);"
12423 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12425 + const-string v2, "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
12427 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12429 + const-string v2, "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
12431 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12433 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
12435 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12437 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
12439 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12441 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
12443 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12445 + if-eqz v0, :cond_40
12447 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12451 + if-eqz v2, :cond_40
12453 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12455 + .catch Landroid/database/SQLException; {:try_start_7 .. :try_end_40} :catch_41
12462 + move-exception v1
12464 + const-string v2, "PrivacyPersistenceAdapter"
12466 + const-string v3, "createDatabase - failed to create privacy database"
12468 + invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
12473 +.method private createSettingsDir()V
12480 + new-instance v0, Ljava/io/File;
12482 + const-string v1, "/data/system/privacy/"
12484 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12486 + invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
12488 + invoke-virtual {v0, v3, v2}, Ljava/io/File;->setReadable(ZZ)Z
12490 + invoke-virtual {v0, v3, v2}, Ljava/io/File;->setExecutable(ZZ)Z
12495 +.method private deleteRecursive(Ljava/io/File;)V
12498 + invoke-virtual {p1}, Ljava/io/File;->isDirectory()Z
12502 + if-eqz v4, :cond_16
12504 + invoke-virtual {p1}, Ljava/io/File;->listFiles()[Ljava/io/File;
12506 + move-result-object v0
12508 + array-length v3, v0
12513 + if-ge v2, v3, :cond_16
12515 + aget-object v1, v0, v2
12517 + invoke-direct {p0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
12519 + add-int/lit8 v2, v2, 0x1
12524 + invoke-virtual {p1}, Ljava/io/File;->delete()Z
12529 +.method private declared-synchronized getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12535 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12537 + if-eqz v0, :cond_15
12539 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12541 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12545 + if-eqz v0, :cond_15
12547 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12549 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isReadOnly()Z
12553 + if-eqz v0, :cond_1f
12556 + const-string v0, "/data/system/privacy.db"
12562 + invoke-static {v0, v1, v2}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
12564 + move-result-object v0
12566 + iput-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12569 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12571 + .catchall {:try_start_1 .. :try_end_21} :catchall_23
12578 + move-exception v0
12585 +.method private getDbVersion()I
12590 + const-string v3, "db_version"
12592 + invoke-virtual {p0, v3}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
12594 + move-result-object v1
12596 + if-nez v1, :cond_11
12598 + const-string v3, "PrivacyPersistenceAdapter"
12600 + const-string v4, "PrivacyPersistenceAdapter:getDbVersion: getValue returned null; assuming version = 1"
12602 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
12609 + invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
12611 + .catch Ljava/lang/Exception; {:try_start_11 .. :try_end_14} :catch_16
12618 + move-exception v0
12620 + const-string v3, "PrivacyPersistenceAdapter"
12622 + const-string v4, "PrivacyPersistenceAdapter:getDbVersion: failed to parse database version; returning 1"
12624 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
12629 +.method private query(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
12631 + .annotation system Ldalvik/annotation/Throws;
12633 + Ljava/lang/Exception;
12644 + if-nez v3, :cond_27
12648 + if-ge v2, v4, :cond_27
12650 + if-eqz v0, :cond_d
12653 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
12656 + invoke-virtual/range {p1 .. p9}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
12658 + .catch Ljava/lang/IllegalStateException; {:try_start_a .. :try_end_10} :catch_15
12660 + move-result-object v0
12665 + add-int/lit8 v2, v2, 0x1
12670 + move-exception v1
12674 + if-eqz p1, :cond_22
12676 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12680 + if-eqz v4, :cond_22
12682 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12685 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12687 + move-result-object p1
12692 + if-nez v3, :cond_32
12694 + new-instance v4, Ljava/lang/Exception;
12696 + const-string/jumbo v5, "query - failed to execute query on the DB"
12698 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
12706 +.method private rawQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)Landroid/database/Cursor;
12708 + .annotation system Ldalvik/annotation/Throws;
12710 + Ljava/lang/Exception;
12721 + if-nez v3, :cond_28
12725 + if-ge v2, v4, :cond_28
12727 + if-eqz v0, :cond_d
12730 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
12735 + invoke-virtual {p1, p2, v4}, Landroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
12737 + .catch Ljava/lang/IllegalStateException; {:try_start_a .. :try_end_11} :catch_16
12739 + move-result-object v0
12744 + add-int/lit8 v2, v2, 0x1
12749 + move-exception v1
12753 + if-eqz p1, :cond_23
12755 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12759 + if-eqz v4, :cond_23
12761 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12764 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12766 + move-result-object p1
12771 + if-nez v3, :cond_33
12773 + new-instance v4, Ljava/lang/Exception;
12775 + const-string/jumbo v5, "query - failed to execute query on the DB"
12777 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
12785 +.method private upgradeDatabase()V
12788 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12792 + if-ge v14, v15, :cond_31
12794 + const-string v14, "PrivacyPersistenceAdapter"
12796 + new-instance v15, Ljava/lang/StringBuilder;
12798 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
12800 + const-string v16, "PrivacyPersistenceAdapter:upgradeDatabase - upgrading DB from version "
12802 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
12804 + move-result-object v15
12806 + sget v16, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12808 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
12810 + move-result-object v15
12812 + const-string v16, " to "
12814 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
12816 + move-result-object v15
12818 + const/16 v16, 0x4
12820 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
12822 + move-result-object v15
12824 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
12826 + move-result-object v15
12828 + invoke-static {v14, v15}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12832 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12834 + packed-switch v14, :pswitch_data_12c
12842 + sget-object v15, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12844 + monitor-enter v15
12846 + .catchall {:try_start_32 .. :try_end_35} :catchall_11e
12847 + .catch Landroid/database/SQLException; {:try_start_32 .. :try_end_35} :catch_e6
12850 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12852 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12854 + invoke-virtual {v14}, Ljava/lang/Integer;->intValue()I
12858 + add-int/lit8 v14, v14, 0x1
12860 + invoke-static {v14}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
12862 + move-result-object v14
12864 + sput-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12868 + .catchall {:try_start_35 .. :try_end_46} :catchall_e3
12871 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12873 + move-result-object v3
12875 + if-eqz v3, :cond_109
12877 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12881 + if-eqz v14, :cond_109
12883 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12885 + invoke-interface {v14}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12887 + move-result-object v14
12889 + invoke-interface {v14}, Ljava/util/concurrent/locks/Lock;->lock()V
12891 + .catchall {:try_start_46 .. :try_end_5b} :catchall_11e
12892 + .catch Landroid/database/SQLException; {:try_start_46 .. :try_end_5b} :catch_e6
12895 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12899 + if-ge v14, v15, :cond_100
12901 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
12903 + .catchall {:try_start_5b .. :try_end_63} :catchall_113
12906 + const-string v14, "DROP TABLE IF EXISTS version;"
12908 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12910 + const-string v14, "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
12912 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12914 + const-string v14, "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
12916 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12918 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
12920 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12922 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
12924 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12926 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
12928 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12930 + invoke-virtual/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->purgeSettings()Z
12932 + new-instance v11, Ljava/io/File;
12934 + const-string v14, "/data/system/privacy"
12936 + invoke-direct {v11, v14}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12938 + invoke-virtual {v11}, Ljava/io/File;->listFiles()[Ljava/io/File;
12940 + move-result-object v1
12942 + array-length v7, v1
12949 + if-ge v6, v7, :cond_f7
12951 + aget-object v10, v1, v6
12953 + invoke-virtual {v10}, Ljava/io/File;->listFiles()[Ljava/io/File;
12955 + move-result-object v2
12957 + array-length v8, v2
12962 + if-ge v5, v8, :cond_f3
12964 + aget-object v13, v2, v5
12966 + invoke-virtual {v13}, Ljava/io/File;->isDirectory()Z
12970 + if-eqz v14, :cond_e0
12972 + invoke-virtual {v13}, Ljava/io/File;->listFiles()[Ljava/io/File;
12974 + move-result-object v12
12978 + aget-object v14, v12, v14
12980 + if-eqz v14, :cond_e0
12982 + new-instance v9, Ljava/io/File;
12984 + new-instance v14, Ljava/lang/StringBuilder;
12986 + invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
12988 + invoke-virtual {v14, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
12990 + move-result-object v14
12992 + const-string v15, "/"
12994 + invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
12996 + move-result-object v14
13000 + aget-object v15, v12, v15
13002 + invoke-virtual {v15}, Ljava/io/File;->getName()Ljava/lang/String;
13004 + move-result-object v15
13006 + invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13008 + move-result-object v14
13010 + invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13012 + move-result-object v14
13014 + invoke-direct {v9, v14}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13016 + invoke-virtual {v9}, Ljava/io/File;->delete()Z
13020 + aget-object v14, v12, v14
13022 + invoke-virtual {v14, v9}, Ljava/io/File;->renameTo(Ljava/io/File;)Z
13024 + move-object/from16 v0, p0
13026 + invoke-direct {v0, v13}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
13028 + .catchall {:try_start_63 .. :try_end_e0} :catchall_10e
13031 + add-int/lit8 v5, v5, 0x1
13036 + move-exception v14
13041 + .catchall {:try_start_e4 .. :try_end_e5} :catchall_e3
13046 + .catchall {:try_start_e5 .. :try_end_e6} :catchall_11e
13047 + .catch Landroid/database/SQLException; {:try_start_e5 .. :try_end_e6} :catch_e6
13050 + move-exception v4
13053 + const-string v14, "PrivacyPersistenceAdapter"
13055 + const-string v15, "PrivacyPersistenceAdapter:upgradeDatabase: SQLException occurred performing database upgrade"
13057 + invoke-static {v14, v15, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13059 + .catchall {:try_start_e7 .. :try_end_ee} :catchall_11e
13061 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13066 + add-int/lit8 v5, v6, 0x1
13074 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
13078 + sput v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13080 + .catchall {:try_start_f7 .. :try_end_fd} :catchall_10e
13083 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13085 + .catchall {:try_start_fd .. :try_end_100} :catchall_113
13089 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13091 + invoke-interface {v14}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13093 + move-result-object v14
13095 + invoke-interface {v14}, Ljava/util/concurrent/locks/Lock;->unlock()V
13097 + .catchall {:try_start_100 .. :try_end_109} :catchall_11e
13098 + .catch Landroid/database/SQLException; {:try_start_100 .. :try_end_109} :catch_e6
13101 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13106 + move-exception v14
13109 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13113 + .catchall {:try_start_10f .. :try_end_113} :catchall_113
13116 + move-exception v14
13119 + sget-object v15, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13121 + invoke-interface {v15}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13123 + move-result-object v15
13125 + invoke-interface {v15}, Ljava/util/concurrent/locks/Lock;->unlock()V
13129 + .catchall {:try_start_114 .. :try_end_11e} :catchall_11e
13130 + .catch Landroid/database/SQLException; {:try_start_114 .. :try_end_11e} :catch_e6
13133 + move-exception v14
13135 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13140 + const-string v14, "PrivacyPersistenceAdapter"
13142 + const-string v15, "PrivacyPersistenceAdapter:upgradeDatabase: Database is already at the most recent version"
13144 + invoke-static {v14, v15}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
13148 + :pswitch_data_12c
13149 + .packed-switch 0x1
13154 + .end packed-switch
13157 +.method private writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
13159 + .annotation system Ldalvik/annotation/Throws;
13161 + Ljava/lang/Exception;
13167 + new-instance v2, Ljava/io/File;
13169 + new-instance v5, Ljava/lang/StringBuilder;
13171 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13173 + const-string v6, "/data/system/privacy/"
13175 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13177 + move-result-object v5
13179 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13181 + move-result-object v5
13183 + const-string v6, "/"
13185 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13187 + move-result-object v5
13189 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13191 + move-result-object v5
13193 + invoke-direct {v2, v5}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13195 + new-instance v3, Ljava/io/File;
13197 + new-instance v5, Ljava/lang/StringBuilder;
13199 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13201 + const-string v6, "/data/system/privacy/"
13203 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13205 + move-result-object v5
13207 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13209 + move-result-object v5
13211 + const-string v6, "/"
13213 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13215 + move-result-object v5
13217 + const-string v6, "/"
13219 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13221 + move-result-object v5
13223 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13225 + move-result-object v5
13227 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13229 + move-result-object v5
13231 + invoke-direct {v3, v5}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13235 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13237 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13239 + move-result-object v5
13241 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->lock()V
13244 + invoke-virtual {v2}, Ljava/io/File;->mkdirs()Z
13250 + invoke-virtual {v2, v5, v6}, Ljava/io/File;->setReadable(ZZ)Z
13256 + invoke-virtual {v2, v5, v6}, Ljava/io/File;->setExecutable(ZZ)Z
13258 + invoke-virtual {v3}, Ljava/io/File;->createNewFile()Z
13264 + invoke-virtual {v3, v5, v6}, Ljava/io/File;->setReadable(ZZ)Z
13266 + new-instance v4, Ljava/io/OutputStreamWriter;
13268 + new-instance v5, Ljava/io/FileOutputStream;
13270 + invoke-direct {v5, v3}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
13272 + invoke-direct {v4, v5}, Ljava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;)V
13274 + const-string/jumbo v5, "systemLogsSetting"
13276 + invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
13280 + if-eqz v5, :cond_a4
13282 + new-instance v5, Ljava/lang/StringBuilder;
13284 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13286 + invoke-virtual {p3}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
13290 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13292 + move-result-object v5
13294 + const-string v6, ""
13296 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13298 + move-result-object v5
13300 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13302 + move-result-object v5
13304 + invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
13308 + invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->flush()V
13310 + invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->close()V
13312 + .catchall {:try_start_51 .. :try_end_99} :catchall_d1
13313 + .catch Ljava/io/IOException; {:try_start_51 .. :try_end_99} :catch_c7
13317 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13319 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13321 + move-result-object v5
13323 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->unlock()V
13329 + const-string v5, "ipTableProtectSetting"
13331 + invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
13335 + if-eqz v5, :cond_93
13337 + new-instance v5, Ljava/lang/StringBuilder;
13339 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13341 + invoke-virtual {p3}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
13345 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13347 + move-result-object v5
13349 + const-string v6, ""
13351 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13353 + move-result-object v5
13355 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13357 + move-result-object v5
13359 + invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
13361 + .catchall {:try_start_a4 .. :try_end_c6} :catchall_d1
13362 + .catch Ljava/io/IOException; {:try_start_a4 .. :try_end_c6} :catch_c7
13367 + move-exception v0
13370 + new-instance v5, Ljava/lang/Exception;
13372 + const-string/jumbo v6, "saveSettings - could not write settings to file"
13374 + invoke-direct {v5, v6, v0}, Ljava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
13378 + .catchall {:try_start_c8 .. :try_end_d1} :catchall_d1
13381 + move-exception v5
13383 + sget-object v6, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13385 + invoke-interface {v6}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13387 + move-result-object v6
13389 + invoke-interface {v6}, Ljava/util/concurrent/locks/Lock;->unlock()V
13396 +.method public deleteSettings(Ljava/lang/String;)Z
13404 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13408 + .catchall {:try_start_2 .. :try_end_5} :catchall_14d
13409 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_2 .. :try_end_5} :catch_103
13410 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_140
13413 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13415 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13417 + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
13421 + add-int/lit8 v1, v1, 0x1
13423 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
13425 + move-result-object v1
13427 + sput-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13431 + .catchall {:try_start_5 .. :try_end_16} :catchall_100
13434 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13436 + move-result-object v0
13438 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13440 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13442 + move-result-object v1
13444 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
13446 + .catchall {:try_start_16 .. :try_end_23} :catchall_14d
13447 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_16 .. :try_end_23} :catch_103
13448 + .catch Ljava/lang/Exception; {:try_start_16 .. :try_end_23} :catch_140
13451 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
13453 + .catchall {:try_start_23 .. :try_end_26} :catchall_135
13456 + const-string/jumbo v1, "settings"
13460 + new-array v2, v2, [Ljava/lang/String;
13464 + const-string v4, "_id"
13466 + aput-object v4, v2, v3
13468 + const-string/jumbo v3, "packageName=?"
13472 + new-array v4, v4, [Ljava/lang/String;
13476 + aput-object p1, v4, v5
13484 + invoke-virtual/range {v0 .. v7}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
13486 + move-result-object v8
13488 + if-eqz v8, :cond_110
13490 + invoke-interface {v8}, Landroid/database/Cursor;->getCount()I
13494 + if-lez v1, :cond_110
13496 + invoke-interface {v8}, Landroid/database/Cursor;->moveToFirst()Z
13500 + if-eqz v1, :cond_110
13504 + invoke-interface {v8, v1}, Landroid/database/Cursor;->getInt(I)I
13508 + const-string v1, "allowed_contacts"
13510 + const-string/jumbo v2, "settings_id=?"
13514 + new-array v3, v3, [Ljava/lang/String;
13518 + invoke-static {v10}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
13520 + move-result-object v5
13522 + aput-object v5, v3, v4
13524 + invoke-virtual {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
13526 + invoke-interface {v8}, Landroid/database/Cursor;->close()V
13529 + const-string/jumbo v1, "settings"
13531 + const-string/jumbo v2, "packageName=?"
13535 + new-array v3, v3, [Ljava/lang/String;
13539 + aput-object p1, v3, v4
13541 + invoke-virtual {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
13545 + if-nez v1, :cond_99
13547 + const-string v1, "PrivacyPersistenceAdapter"
13549 + new-instance v2, Ljava/lang/StringBuilder;
13551 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
13553 + const-string v3, "deleteSettings - database entry for "
13555 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13557 + move-result-object v2
13559 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13561 + move-result-object v2
13563 + const-string v3, " not found"
13565 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13567 + move-result-object v2
13569 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13571 + move-result-object v2
13573 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
13576 + new-instance v12, Ljava/io/File;
13578 + new-instance v1, Ljava/lang/StringBuilder;
13580 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
13582 + const-string v2, "/data/system/privacy/"
13584 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13586 + move-result-object v1
13588 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13590 + move-result-object v1
13592 + const-string v2, "/"
13594 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13596 + move-result-object v1
13598 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13600 + move-result-object v1
13602 + invoke-direct {v12, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13604 + new-instance v13, Ljava/io/File;
13606 + new-instance v1, Ljava/lang/StringBuilder;
13608 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
13610 + const-string v2, "/data/system/privacy/"
13612 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13614 + move-result-object v1
13616 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13618 + move-result-object v1
13620 + const-string v2, "/systemLogsSetting"
13622 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13624 + move-result-object v1
13626 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13628 + move-result-object v1
13630 + invoke-direct {v13, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13632 + invoke-virtual {v13}, Ljava/io/File;->delete()Z
13634 + invoke-virtual {v12}, Ljava/io/File;->list()[Ljava/lang/String;
13636 + move-result-object v1
13638 + if-eqz v1, :cond_e5
13640 + invoke-virtual {v12}, Ljava/io/File;->list()[Ljava/lang/String;
13642 + move-result-object v1
13644 + array-length v1, v1
13646 + if-nez v1, :cond_e8
13649 + invoke-virtual {v12}, Ljava/io/File;->delete()Z
13652 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
13654 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
13656 + invoke-virtual {v1, p1}, Landroid/util/LruCache;->remove(Ljava/lang/Object;)Ljava/lang/Object;
13658 + .catchall {:try_start_26 .. :try_end_f0} :catchall_130
13661 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13663 + .catchall {:try_start_f0 .. :try_end_f3} :catchall_135
13666 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13668 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13670 + move-result-object v1
13672 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
13674 + .catchall {:try_start_f3 .. :try_end_fc} :catchall_14d
13675 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_f3 .. :try_end_fc} :catch_103
13676 + .catch Ljava/lang/Exception; {:try_start_f3 .. :try_end_fc} :catch_140
13678 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13684 + move-exception v1
13689 + .catchall {:try_start_101 .. :try_end_102} :catchall_100
13694 + .catchall {:try_start_102 .. :try_end_103} :catchall_14d
13695 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_102 .. :try_end_103} :catch_103
13696 + .catch Ljava/lang/Exception; {:try_start_102 .. :try_end_103} :catch_140
13699 + move-exception v9
13704 + const-string v1, "PrivacyPersistenceAdapter"
13706 + const-string v2, "PrivacyPersistenceAdapter:deleteSettings: failed to open the database, or open a transaction"
13708 + invoke-static {v1, v2, v9}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13710 + .catchall {:try_start_105 .. :try_end_10c} :catchall_14d
13712 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13718 + const-string v1, "PrivacyPersistenceAdapter"
13720 + new-instance v2, Ljava/lang/StringBuilder;
13722 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
13724 + const-string v3, "deleteSettings - database entry for "
13726 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13728 + move-result-object v2
13730 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13732 + move-result-object v2
13734 + const-string v3, " not found"
13736 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13738 + move-result-object v2
13740 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13742 + move-result-object v2
13744 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
13746 + .catchall {:try_start_110 .. :try_end_12e} :catchall_130
13751 + move-exception v1
13754 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13758 + .catchall {:try_start_131 .. :try_end_135} :catchall_135
13761 + move-exception v1
13764 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13766 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13768 + move-result-object v2
13770 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
13774 + .catchall {:try_start_136 .. :try_end_140} :catchall_14d
13775 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_136 .. :try_end_140} :catch_103
13776 + .catch Ljava/lang/Exception; {:try_start_136 .. :try_end_140} :catch_140
13779 + move-exception v9
13784 + const-string v1, "PrivacyPersistenceAdapter"
13786 + const-string v2, "PrivacyPersistenceAdapter:deleteSettings - could not delete settings"
13788 + invoke-static {v1, v2, v9}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13790 + .catchall {:try_start_142 .. :try_end_149} :catchall_14d
13792 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13797 + move-exception v1
13799 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13804 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
13807 + const/16 v56, 0x0
13809 + if-nez p1, :cond_c
13811 + new-instance v1, Ljava/security/InvalidParameterException;
13813 + const-string v4, "PrivacyPersistenceAdapter:getSettings:insufficient application identifier - package name is required"
13815 + invoke-direct {v1, v4}, Ljava/security/InvalidParameterException;-><init>(Ljava/lang/String;)V
13820 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
13822 + move-object/from16 v0, p1
13824 + invoke-virtual {v1, v0}, Landroid/util/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
13826 + move-result-object v53
13828 + check-cast v53, Landroid/privacy/PrivacySettingsStub;
13830 + if-eqz v53, :cond_28
13832 + move-object/from16 v0, v53
13834 + instance-of v1, v0, Landroid/privacy/PrivacySettings;
13836 + if-eqz v1, :cond_23
13838 + check-cast v53, Landroid/privacy/PrivacySettings;
13840 + move-object/from16 v3, v56
13843 + return-object v53
13846 + const/16 v53, 0x0
13848 + move-object/from16 v3, v56
13854 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13858 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_28 .. :try_end_2b} :catch_a8
13861 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13863 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13865 + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
13869 + add-int/lit8 v1, v1, 0x1
13871 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
13873 + move-result-object v1
13875 + sput-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13879 + .catchall {:try_start_2b .. :try_end_3c} :catchall_a5
13882 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13884 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_3c .. :try_end_3f} :catch_a8
13886 + move-result-object v2
13888 + const/16 v54, 0x0
13890 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13892 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
13894 + move-result-object v1
13896 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
13899 + const-string/jumbo v3, "settings"
13901 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->DATABASE_FIELDS:[Ljava/lang/String;
13903 + const-string/jumbo v5, "packageName=?"
13907 + new-array v6, v1, [Ljava/lang/String;
13911 + aput-object p1, v6, v1
13921 + move-object/from16 v1, p0
13923 + invoke-direct/range {v1 .. v10}, Landroid/privacy/PrivacyPersistenceAdapter;->query(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
13925 + move-result-object v54
13927 + if-eqz v54, :cond_367
13929 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getCount()I
13933 + if-nez v1, :cond_b6
13935 + const-string v1, "PrivacyPersistenceAdapter"
13937 + new-instance v4, Ljava/lang/StringBuilder;
13939 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
13941 + const-string v5, "PrivacyPersistenceAdapter:getSettingsfound for package "
13943 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13945 + move-result-object v4
13947 + move-object/from16 v0, p1
13949 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13951 + move-result-object v4
13953 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13955 + move-result-object v4
13957 + invoke-static {v1, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
13959 + .catchall {:try_start_4b .. :try_end_85} :catchall_35f
13960 + .catch Ljava/lang/Exception; {:try_start_4b .. :try_end_85} :catch_363
13962 + move-object/from16 v3, v56
13966 + if-eqz v3, :cond_351
13969 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
13971 + move-object/from16 v0, p1
13973 + invoke-virtual {v1, v0, v3}, Landroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
13975 + .catchall {:try_start_89 .. :try_end_90} :catchall_33e
13976 + .catch Ljava/lang/Exception; {:try_start_89 .. :try_end_90} :catch_307
13979 + if-eqz v54, :cond_95
13981 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->close()V
13984 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13986 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
13988 + move-result-object v1
13990 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
13992 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13995 + move-object/from16 v53, v3
14000 + move-exception v1
14005 + .catchall {:try_start_a6 .. :try_end_a7} :catchall_a5
14010 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_a7 .. :try_end_a8} :catch_a8
14013 + move-exception v55
14015 + const-string v1, "PrivacyPersistenceAdapter"
14017 + const-string v4, "getSettings - database could not be opened"
14019 + move-object/from16 v0, v55
14021 + invoke-static {v1, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14023 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14029 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getCount()I
14035 + if-le v1, v4, :cond_d7
14037 + const-string v1, "PrivacyPersistenceAdapter"
14039 + new-instance v4, Ljava/lang/StringBuilder;
14041 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
14043 + const-string v5, "Multiple privacy settings found for package "
14045 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14047 + move-result-object v4
14049 + move-object/from16 v0, p1
14051 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14053 + move-result-object v4
14055 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14057 + move-result-object v4
14059 + invoke-static {v1, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
14062 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->moveToFirst()Z
14066 + if-eqz v1, :cond_367
14068 + new-instance v3, Landroid/privacy/PrivacySettings;
14072 + move-object/from16 v0, v54
14074 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I
14078 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
14080 + move-result-object v4
14084 + move-object/from16 v0, v54
14086 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14088 + move-result-object v5
14092 + move-object/from16 v0, v54
14094 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I
14100 + move-object/from16 v0, v54
14102 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14106 + int-to-byte v7, v1
14110 + move-object/from16 v0, v54
14112 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14114 + move-result-object v8
14118 + move-object/from16 v0, v54
14120 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14124 + int-to-byte v9, v1
14128 + move-object/from16 v0, v54
14130 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14132 + move-result-object v10
14136 + move-object/from16 v0, v54
14138 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14142 + int-to-byte v11, v1
14146 + move-object/from16 v0, v54
14148 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14150 + move-result-object v12
14154 + move-object/from16 v0, v54
14156 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14158 + move-result-object v13
14162 + move-object/from16 v0, v54
14164 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14168 + int-to-byte v14, v1
14172 + move-object/from16 v0, v54
14174 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14176 + move-result-object v15
14180 + move-object/from16 v0, v54
14182 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14184 + move-result-object v16
14188 + move-object/from16 v0, v54
14190 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14194 + int-to-byte v0, v1
14196 + move/from16 v17, v0
14200 + move-object/from16 v0, v54
14202 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14206 + int-to-byte v0, v1
14208 + move/from16 v18, v0
14212 + move-object/from16 v0, v54
14214 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14218 + int-to-byte v0, v1
14220 + move/from16 v19, v0
14222 + const/16 v1, 0x10
14224 + move-object/from16 v0, v54
14226 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14228 + move-result-object v20
14230 + const/16 v1, 0x11
14232 + move-object/from16 v0, v54
14234 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14238 + int-to-byte v0, v1
14240 + move/from16 v21, v0
14242 + const/16 v1, 0x12
14244 + move-object/from16 v0, v54
14246 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14248 + move-result-object v22
14250 + const/16 v1, 0x13
14252 + move-object/from16 v0, v54
14254 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14258 + int-to-byte v0, v1
14260 + move/from16 v23, v0
14262 + const/16 v1, 0x14
14264 + move-object/from16 v0, v54
14266 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14270 + int-to-byte v0, v1
14272 + move/from16 v24, v0
14274 + const/16 v1, 0x15
14276 + move-object/from16 v0, v54
14278 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14282 + int-to-byte v0, v1
14284 + move/from16 v25, v0
14286 + const/16 v1, 0x16
14288 + move-object/from16 v0, v54
14290 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14294 + int-to-byte v0, v1
14296 + move/from16 v26, v0
14298 + const/16 v1, 0x17
14300 + move-object/from16 v0, v54
14302 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14306 + int-to-byte v0, v1
14308 + move/from16 v27, v0
14310 + const/16 v1, 0x18
14312 + move-object/from16 v0, v54
14314 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14318 + int-to-byte v0, v1
14320 + move/from16 v28, v0
14322 + const/16 v1, 0x19
14324 + move-object/from16 v0, v54
14326 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14330 + int-to-byte v0, v1
14332 + move/from16 v29, v0
14334 + const/16 v1, 0x1a
14336 + move-object/from16 v0, v54
14338 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14342 + int-to-byte v0, v1
14344 + move/from16 v30, v0
14346 + const/16 v1, 0x1b
14348 + move-object/from16 v0, v54
14350 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14354 + int-to-byte v0, v1
14356 + move/from16 v31, v0
14358 + const/16 v1, 0x1c
14360 + move-object/from16 v0, v54
14362 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14366 + int-to-byte v0, v1
14368 + move/from16 v32, v0
14370 + const/16 v1, 0x1d
14372 + move-object/from16 v0, v54
14374 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14378 + int-to-byte v0, v1
14380 + move/from16 v33, v0
14382 + const/16 v1, 0x1e
14384 + move-object/from16 v0, v54
14386 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14390 + int-to-byte v0, v1
14392 + move/from16 v34, v0
14394 + const/16 v1, 0x1f
14396 + move-object/from16 v0, v54
14398 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14402 + int-to-byte v0, v1
14404 + move/from16 v35, v0
14406 + const/16 v1, 0x20
14408 + move-object/from16 v0, v54
14410 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14414 + int-to-byte v0, v1
14416 + move/from16 v36, v0
14418 + const/16 v1, 0x21
14420 + move-object/from16 v0, v54
14422 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14426 + int-to-byte v0, v1
14428 + move/from16 v37, v0
14430 + const/16 v1, 0x22
14432 + move-object/from16 v0, v54
14434 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14438 + int-to-byte v0, v1
14440 + move/from16 v38, v0
14442 + const/16 v39, 0x0
14444 + const/16 v1, 0x23
14446 + move-object/from16 v0, v54
14448 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14452 + int-to-byte v0, v1
14454 + move/from16 v40, v0
14456 + const/16 v1, 0x24
14458 + move-object/from16 v0, v54
14460 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14464 + int-to-byte v0, v1
14466 + move/from16 v41, v0
14468 + const/16 v1, 0x25
14470 + move-object/from16 v0, v54
14472 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14476 + int-to-byte v0, v1
14478 + move/from16 v42, v0
14480 + const/16 v1, 0x26
14482 + move-object/from16 v0, v54
14484 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14488 + int-to-byte v0, v1
14490 + move/from16 v43, v0
14492 + const/16 v1, 0x27
14494 + move-object/from16 v0, v54
14496 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14500 + int-to-byte v0, v1
14502 + move/from16 v44, v0
14504 + const/16 v1, 0x28
14506 + move-object/from16 v0, v54
14508 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14512 + int-to-byte v0, v1
14514 + move/from16 v45, v0
14516 + const/16 v1, 0x29
14518 + move-object/from16 v0, v54
14520 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14522 + move-result-object v46
14524 + const/16 v1, 0x2a
14526 + move-object/from16 v0, v54
14528 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14532 + int-to-byte v0, v1
14534 + move/from16 v47, v0
14536 + const/16 v1, 0x2b
14538 + move-object/from16 v0, v54
14540 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14544 + int-to-byte v0, v1
14546 + move/from16 v48, v0
14548 + const/16 v1, 0x2c
14550 + move-object/from16 v0, v54
14552 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14556 + int-to-byte v0, v1
14558 + move/from16 v49, v0
14560 + const/16 v1, 0x2d
14562 + move-object/from16 v0, v54
14564 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14568 + int-to-byte v0, v1
14570 + move/from16 v50, v0
14572 + const/16 v1, 0x2e
14574 + move-object/from16 v0, v54
14576 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14580 + int-to-byte v0, v1
14582 + move/from16 v51, v0
14584 + invoke-direct/range {v3 .. v51}, Landroid/privacy/PrivacySettings;-><init>(Ljava/lang/Integer;Ljava/lang/String;IBLjava/lang/String;BLjava/lang/String;BLjava/lang/String;Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;BBBLjava/lang/String;BLjava/lang/String;BBBBBBBBBBBBBBBB[IBBBBBBLjava/lang/String;BBBBB)V
14586 + .catchall {:try_start_b6 .. :try_end_2b9} :catchall_35f
14587 + .catch Ljava/lang/Exception; {:try_start_b6 .. :try_end_2b9} :catch_363
14590 + const-string v6, "allowed_contacts"
14594 + new-array v7, v1, [Ljava/lang/String;
14598 + const-string v4, "contact_id"
14600 + aput-object v4, v7, v1
14602 + const-string/jumbo v8, "settings_id=?"
14606 + new-array v9, v1, [Ljava/lang/String;
14610 + invoke-virtual {v3}, Landroid/privacy/PrivacySettings;->get_id()Ljava/lang/Integer;
14612 + move-result-object v4
14614 + invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
14618 + invoke-static {v4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
14620 + move-result-object v4
14622 + aput-object v4, v9, v1
14632 + move-object/from16 v4, p0
14634 + move-object v5, v2
14636 + invoke-direct/range {v4 .. v13}, Landroid/privacy/PrivacyPersistenceAdapter;->query(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
14638 + move-result-object v54
14640 + if-eqz v54, :cond_87
14642 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getCount()I
14646 + if-lez v1, :cond_87
14648 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getCount()I
14652 + new-array v0, v1, [I
14654 + move-object/from16 v52, v0
14657 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->moveToNext()Z
14661 + if-eqz v1, :cond_337
14663 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getPosition()I
14669 + move-object/from16 v0, v54
14671 + invoke-interface {v0, v4}, Landroid/database/Cursor;->getInt(I)I
14677 + .catchall {:try_start_2b9 .. :try_end_306} :catchall_33e
14678 + .catch Ljava/lang/Exception; {:try_start_2b9 .. :try_end_306} :catch_307
14683 + move-exception v55
14687 + const-string v1, "PrivacyPersistenceAdapter"
14689 + new-instance v4, Ljava/lang/StringBuilder;
14691 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
14693 + const-string v5, "getSettings - failed to get settings for package: "
14695 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14697 + move-result-object v4
14699 + move-object/from16 v0, p1
14701 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14703 + move-result-object v4
14705 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14707 + move-result-object v4
14709 + move-object/from16 v0, v55
14711 + invoke-static {v1, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14713 + .catchall {:try_start_308 .. :try_end_324} :catchall_33e
14715 + if-eqz v54, :cond_329
14717 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->close()V
14720 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14722 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14724 + move-result-object v1
14726 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
14728 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14734 + move-object/from16 v0, v52
14736 + invoke-virtual {v3, v0}, Landroid/privacy/PrivacySettings;->setAllowedContacts([I)V
14738 + .catchall {:try_start_337 .. :try_end_33c} :catchall_33e
14739 + .catch Ljava/lang/Exception; {:try_start_337 .. :try_end_33c} :catch_307
14744 + move-exception v1
14747 + if-eqz v54, :cond_344
14749 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->close()V
14752 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14754 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14756 + move-result-object v4
14758 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
14760 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14766 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
14768 + new-instance v4, Landroid/privacy/PrivacySettingsStub;
14770 + invoke-direct {v4}, Landroid/privacy/PrivacySettingsStub;-><init>()V
14772 + move-object/from16 v0, p1
14774 + invoke-virtual {v1, v0, v4}, Landroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
14776 + .catchall {:try_start_351 .. :try_end_35d} :catchall_33e
14777 + .catch Ljava/lang/Exception; {:try_start_351 .. :try_end_35d} :catch_307
14782 + move-exception v1
14784 + move-object/from16 v3, v56
14789 + move-exception v55
14791 + move-object/from16 v3, v56
14796 + move-object/from16 v3, v56
14801 +.method public getValue(Ljava/lang/String;)Ljava/lang/String;
14809 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14813 + .catchall {:try_start_2 .. :try_end_5} :catchall_41
14816 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14818 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14820 + invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
14824 + add-int/lit8 v3, v3, 0x1
14826 + invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
14828 + move-result-object v3
14830 + sput-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14834 + .catchall {:try_start_5 .. :try_end_16} :catchall_3e
14837 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
14839 + move-result-object v1
14841 + if-eqz v1, :cond_22
14843 + invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
14847 + if-nez v2, :cond_46
14850 + const-string v2, "PrivacyPersistenceAdapter"
14852 + new-instance v3, Ljava/lang/StringBuilder;
14854 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
14856 + const-string v4, "PrivacyPersistenceAdapter:getValue: Database not obtained while getting value for name: "
14858 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14860 + move-result-object v3
14862 + invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14864 + move-result-object v3
14866 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14868 + move-result-object v3
14870 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
14872 + .catchall {:try_start_16 .. :try_end_3a} :catchall_41
14874 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14880 + move-exception v0
14885 + .catchall {:try_start_3f .. :try_end_40} :catchall_3e
14890 + .catchall {:try_start_40 .. :try_end_41} :catchall_41
14893 + move-exception v0
14895 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14901 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14903 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14905 + move-result-object v0
14907 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
14909 + .catchall {:try_start_46 .. :try_end_4f} :catchall_41
14912 + const-string/jumbo v2, "map"
14916 + new-array v3, v0, [Ljava/lang/String;
14920 + const-string/jumbo v4, "value"
14922 + aput-object v4, v3, v0
14924 + const-string/jumbo v4, "name=?"
14928 + new-array v5, v0, [Ljava/lang/String;
14932 + aput-object p1, v5, v0
14942 + move-object v0, p0
14944 + invoke-direct/range {v0 .. v9}, Landroid/privacy/PrivacyPersistenceAdapter;->query(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
14946 + move-result-object v10
14948 + if-eqz v10, :cond_97
14950 + invoke-interface {v10}, Landroid/database/Cursor;->getCount()I
14954 + if-lez v0, :cond_97
14956 + invoke-interface {v10}, Landroid/database/Cursor;->moveToFirst()Z
14960 + if-eqz v0, :cond_97
14962 + const-string/jumbo v0, "value"
14964 + invoke-interface {v10, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
14968 + invoke-interface {v10, v0}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14970 + move-result-object v12
14972 + invoke-interface {v10}, Landroid/database/Cursor;->close()V
14974 + .catchall {:try_start_4f .. :try_end_89} :catchall_d3
14975 + .catch Ljava/lang/Exception; {:try_start_4f .. :try_end_89} :catch_b0
14979 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14981 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14983 + move-result-object v0
14985 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
14987 + .catchall {:try_start_89 .. :try_end_92} :catchall_41
14990 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14992 + move-object v0, v12
14998 + const-string v0, "PrivacyPersistenceAdapter"
15000 + new-instance v2, Ljava/lang/StringBuilder;
15002 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
15004 + const-string v3, "PrivacyPersistenceAdapter:getValue: Could not get value for name: "
15006 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15008 + move-result-object v2
15010 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15012 + move-result-object v2
15014 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
15016 + move-result-object v2
15018 + invoke-static {v0, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
15020 + .catchall {:try_start_97 .. :try_end_af} :catchall_d3
15021 + .catch Ljava/lang/Exception; {:try_start_97 .. :try_end_af} :catch_b0
15026 + move-exception v11
15029 + const-string v0, "PrivacyPersistenceAdapter"
15031 + new-instance v2, Ljava/lang/StringBuilder;
15033 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
15035 + const-string v3, "PrivacyPersistenceAdapter:getValue: Exception occurred while getting value for name: "
15037 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15039 + move-result-object v2
15041 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15043 + move-result-object v2
15045 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
15047 + move-result-object v2
15049 + invoke-static {v0, v2, v11}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
15051 + .catchall {:try_start_b1 .. :try_end_c9} :catchall_d3
15054 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15056 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15058 + move-result-object v0
15060 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
15065 + move-exception v0
15067 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15069 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15071 + move-result-object v2
15073 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
15077 + .catchall {:try_start_c9 .. :try_end_de} :catchall_41
15080 +.method public purgeSettings()Z
15083 + const/16 v23, 0x1
15085 + new-instance v13, Ljava/util/HashSet;
15087 + invoke-direct {v13}, Ljava/util/HashSet;-><init>()V
15089 + move-object/from16 v0, p0
15091 + iget-object v2, v0, Landroid/privacy/PrivacyPersistenceAdapter;->mContext:Landroid/content/Context;
15093 + invoke-virtual {v2}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
15095 + move-result-object v20
15099 + move-object/from16 v0, v20
15101 + invoke-virtual {v0, v2}, Landroid/content/pm/PackageManager;->getInstalledApplications(I)Ljava/util/List;
15103 + move-result-object v18
15105 + invoke-interface/range {v18 .. v18}, Ljava/util/List;->iterator()Ljava/util/Iterator;
15107 + move-result-object v17
15110 + invoke-interface/range {v17 .. v17}, Ljava/util/Iterator;->hasNext()Z
15114 + if-eqz v2, :cond_2c
15116 + invoke-interface/range {v17 .. v17}, Ljava/util/Iterator;->next()Ljava/lang/Object;
15118 + move-result-object v12
15120 + check-cast v12, Landroid/content/pm/ApplicationInfo;
15122 + iget-object v2, v12, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
15124 + invoke-interface {v13, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
15132 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15136 + .catchall {:try_start_2d .. :try_end_30} :catchall_11b
15137 + .catch Ljava/lang/Exception; {:try_start_2d .. :try_end_30} :catch_56
15140 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15142 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15144 + invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
15148 + add-int/lit8 v2, v2, 0x1
15150 + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
15152 + move-result-object v2
15154 + sput-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15158 + .catchall {:try_start_30 .. :try_end_41} :catchall_53
15161 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
15163 + move-result-object v3
15165 + if-nez v3, :cond_68
15167 + const-string v2, "PrivacyPersistenceAdapter"
15169 + const-string v4, "PrivacyPersistenceAdapter:purgeSettings: db could not be obtained"
15171 + invoke-static {v2, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
15173 + .catchall {:try_start_41 .. :try_end_4e} :catchall_11b
15174 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_4e} :catch_56
15178 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15184 + move-exception v2
15189 + .catchall {:try_start_54 .. :try_end_55} :catchall_53
15194 + .catchall {:try_start_55 .. :try_end_56} :catchall_11b
15195 + .catch Ljava/lang/Exception; {:try_start_55 .. :try_end_56} :catch_56
15198 + move-exception v16
15201 + const-string v2, "PrivacyPersistenceAdapter"
15203 + const-string v4, "PrivacyPersistenceAdapter:purgeSettings - purging DB failed"
15205 + move-object/from16 v0, v16
15207 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
15209 + .catchall {:try_start_57 .. :try_end_60} :catchall_11b
15211 + const/16 v23, 0x0
15213 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15216 + move/from16 v2, v23
15222 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15224 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15226 + move-result-object v2
15228 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->lock()V
15230 + .catchall {:try_start_68 .. :try_end_71} :catchall_11b
15231 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_71} :catch_56
15236 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
15238 + .catchall {:try_start_72 .. :try_end_75} :catchall_110
15241 + const-string/jumbo v4, "settings"
15245 + new-array v5, v2, [Ljava/lang/String;
15249 + const-string/jumbo v6, "packageName"
15251 + aput-object v6, v5, v2
15265 + move-object/from16 v2, p0
15267 + invoke-direct/range {v2 .. v11}, Landroid/privacy/PrivacyPersistenceAdapter;->query(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
15269 + move-result-object v15
15271 + if-eqz v15, :cond_bd
15273 + invoke-interface {v15}, Landroid/database/Cursor;->getCount()I
15277 + if-lez v2, :cond_bd
15279 + invoke-interface {v15}, Landroid/database/Cursor;->moveToFirst()Z
15283 + if-eqz v2, :cond_bd
15288 + invoke-interface {v15, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
15290 + move-result-object v22
15292 + move-object/from16 v0, v22
15294 + invoke-interface {v13, v0}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
15298 + if-nez v2, :cond_b7
15300 + const-string/jumbo v2, "settings"
15302 + const-string/jumbo v4, "packageName = ?"
15306 + new-array v5, v5, [Ljava/lang/String;
15310 + aput-object v22, v5, v6
15312 + invoke-virtual {v3, v2, v4, v5}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
15315 + invoke-interface {v15}, Landroid/database/Cursor;->moveToNext()Z
15319 + if-nez v2, :cond_9b
15322 + new-instance v24, Ljava/io/File;
15324 + const-string v2, "/data/system/privacy"
15326 + move-object/from16 v0, v24
15328 + invoke-direct {v0, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
15330 + invoke-virtual/range {v24 .. v24}, Ljava/io/File;->listFiles()[Ljava/io/File;
15332 + move-result-object v14
15334 + array-length v0, v14
15336 + move/from16 v19, v0
15338 + const/16 v17, 0x0
15341 + move/from16 v0, v17
15343 + move/from16 v1, v19
15345 + if-ge v0, v1, :cond_ed
15347 + aget-object v21, v14, v17
15349 + invoke-virtual/range {v21 .. v21}, Ljava/io/File;->getName()Ljava/lang/String;
15351 + move-result-object v22
15353 + move-object/from16 v0, v22
15355 + invoke-interface {v13, v0}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
15359 + if-nez v2, :cond_ea
15361 + move-object/from16 v0, p0
15363 + move-object/from16 v1, v21
15365 + invoke-direct {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
15368 + add-int/lit8 v17, v17, 0x1
15373 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
15375 + .catchall {:try_start_75 .. :try_end_f0} :catchall_106
15377 + if-eqz v15, :cond_f5
15380 + invoke-interface {v15}, Landroid/database/Cursor;->close()V
15383 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
15385 + .catchall {:try_start_f2 .. :try_end_f8} :catchall_110
15388 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15390 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15392 + move-result-object v2
15394 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
15396 + .catchall {:try_start_f8 .. :try_end_101} :catchall_11b
15397 + .catch Ljava/lang/Exception; {:try_start_f8 .. :try_end_101} :catch_56
15399 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15404 + move-exception v2
15406 + if-eqz v15, :cond_10c
15409 + invoke-interface {v15}, Landroid/database/Cursor;->close()V
15412 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
15416 + .catchall {:try_start_109 .. :try_end_110} :catchall_110
15419 + move-exception v2
15422 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15424 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15426 + move-result-object v4
15428 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
15432 + .catchall {:try_start_111 .. :try_end_11b} :catchall_11b
15433 + .catch Ljava/lang/Exception; {:try_start_111 .. :try_end_11b} :catch_56
15436 + move-exception v2
15438 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15443 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
15446 + const/16 v19, 0x0
15448 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
15450 + move-result-object v18
15452 + if-eqz v18, :cond_e
15454 + invoke-virtual/range {v18 .. v18}, Ljava/lang/String;->isEmpty()Z
15458 + if-eqz v4, :cond_18
15461 + const-string v4, "PrivacyPersistenceAdapter"
15463 + const-string/jumbo v5, "saveSettings - either package name is missing"
15465 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
15473 + new-instance v22, Landroid/content/ContentValues;
15475 + invoke-direct/range {v22 .. v22}, Landroid/content/ContentValues;-><init>()V
15477 + const-string/jumbo v4, "packageName"
15479 + move-object/from16 v0, v22
15481 + move-object/from16 v1, v18
15483 + invoke-virtual {v0, v4, v1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15485 + const-string/jumbo v4, "uid"
15489 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
15491 + move-result-object v5
15493 + move-object/from16 v0, v22
15495 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
15497 + const-string v4, "deviceIdSetting"
15499 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
15503 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15505 + move-result-object v5
15507 + move-object/from16 v0, v22
15509 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15511 + const-string v4, "deviceId"
15513 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
15515 + move-result-object v5
15517 + move-object/from16 v0, v22
15519 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15521 + const-string v4, "line1NumberSetting"
15523 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
15527 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15529 + move-result-object v5
15531 + move-object/from16 v0, v22
15533 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15535 + const-string v4, "line1Number"
15537 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
15539 + move-result-object v5
15541 + move-object/from16 v0, v22
15543 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15545 + const-string v4, "locationGpsSetting"
15547 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
15551 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15553 + move-result-object v5
15555 + move-object/from16 v0, v22
15557 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15559 + const-string v4, "locationGpsLat"
15561 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
15563 + move-result-object v5
15565 + move-object/from16 v0, v22
15567 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15569 + const-string v4, "locationGpsLon"
15571 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
15573 + move-result-object v5
15575 + move-object/from16 v0, v22
15577 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15579 + const-string v4, "locationNetworkSetting"
15581 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
15585 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15587 + move-result-object v5
15589 + move-object/from16 v0, v22
15591 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15593 + const-string v4, "locationNetworkLat"
15595 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
15597 + move-result-object v5
15599 + move-object/from16 v0, v22
15601 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15603 + const-string v4, "locationNetworkLon"
15605 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
15607 + move-result-object v5
15609 + move-object/from16 v0, v22
15611 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15613 + const-string/jumbo v4, "networkInfoSetting"
15615 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
15619 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15621 + move-result-object v5
15623 + move-object/from16 v0, v22
15625 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15627 + const-string/jumbo v4, "simInfoSetting"
15629 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
15633 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15635 + move-result-object v5
15637 + move-object/from16 v0, v22
15639 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15641 + const-string/jumbo v4, "simSerialNumberSetting"
15643 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
15647 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15649 + move-result-object v5
15651 + move-object/from16 v0, v22
15653 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15655 + const-string/jumbo v4, "simSerialNumber"
15657 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimSerialNumber()Ljava/lang/String;
15659 + move-result-object v5
15661 + move-object/from16 v0, v22
15663 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15665 + const-string/jumbo v4, "subscriberIdSetting"
15667 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
15671 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15673 + move-result-object v5
15675 + move-object/from16 v0, v22
15677 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15679 + const-string/jumbo v4, "subscriberId"
15681 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
15683 + move-result-object v5
15685 + move-object/from16 v0, v22
15687 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15689 + const-string v4, "accountsSetting"
15691 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
15695 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15697 + move-result-object v5
15699 + move-object/from16 v0, v22
15701 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15703 + const-string v4, "accountsAuthTokensSetting"
15705 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
15709 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15711 + move-result-object v5
15713 + move-object/from16 v0, v22
15715 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15717 + const-string/jumbo v4, "outgoingCallsSetting"
15719 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getOutgoingCallsSetting()B
15723 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15725 + move-result-object v5
15727 + move-object/from16 v0, v22
15729 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15731 + const-string v4, "incomingCallsSetting"
15733 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
15737 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15739 + move-result-object v5
15741 + move-object/from16 v0, v22
15743 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15745 + const-string v4, "contactsSetting"
15747 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
15751 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15753 + move-result-object v5
15755 + move-object/from16 v0, v22
15757 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15759 + const-string v4, "calendarSetting"
15761 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCalendarSetting()B
15765 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15767 + move-result-object v5
15769 + move-object/from16 v0, v22
15771 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15773 + const-string/jumbo v4, "mmsSetting"
15775 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
15779 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15781 + move-result-object v5
15783 + move-object/from16 v0, v22
15785 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15787 + const-string/jumbo v4, "smsSetting"
15789 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
15793 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15795 + move-result-object v5
15797 + move-object/from16 v0, v22
15799 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15801 + const-string v4, "callLogSetting"
15803 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCallLogSetting()B
15807 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15809 + move-result-object v5
15811 + move-object/from16 v0, v22
15813 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15815 + const-string v4, "bookmarksSetting"
15817 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getBookmarksSetting()B
15821 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15823 + move-result-object v5
15825 + move-object/from16 v0, v22
15827 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15829 + const-string/jumbo v4, "systemLogsSetting"
15831 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
15835 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15837 + move-result-object v5
15839 + move-object/from16 v0, v22
15841 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15843 + const-string/jumbo v4, "notificationSetting"
15845 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getNotificationSetting()B
15849 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15851 + move-result-object v5
15853 + move-object/from16 v0, v22
15855 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15857 + const-string v4, "intentBootCompletedSetting"
15859 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIntentBootCompletedSetting()B
15863 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15865 + move-result-object v5
15867 + move-object/from16 v0, v22
15869 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15871 + const-string v4, "cameraSetting"
15873 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
15877 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15879 + move-result-object v5
15881 + move-object/from16 v0, v22
15883 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15885 + const-string/jumbo v4, "recordAudioSetting"
15887 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
15891 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15893 + move-result-object v5
15895 + move-object/from16 v0, v22
15897 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15899 + const-string/jumbo v4, "smsSendSetting"
15901 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSmsSendSetting()B
15905 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15907 + move-result-object v5
15909 + move-object/from16 v0, v22
15911 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15913 + const-string/jumbo v4, "phoneCallSetting"
15915 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
15919 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15921 + move-result-object v5
15923 + move-object/from16 v0, v22
15925 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15927 + const-string v4, "ipTableProtectSetting"
15929 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
15933 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15935 + move-result-object v5
15937 + move-object/from16 v0, v22
15939 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15941 + const-string v4, "iccAccessSetting"
15943 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIccAccessSetting()B
15947 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15949 + move-result-object v5
15951 + move-object/from16 v0, v22
15953 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15955 + const-string v4, "addOnManagementSetting"
15957 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAddOnManagementSetting()B
15961 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15963 + move-result-object v5
15965 + move-object/from16 v0, v22
15967 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15969 + const-string v4, "androidIdSetting"
15971 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
15975 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15977 + move-result-object v5
15979 + move-object/from16 v0, v22
15981 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15983 + const-string v4, "androidId"
15985 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAndroidID()Ljava/lang/String;
15987 + move-result-object v5
15989 + move-object/from16 v0, v22
15991 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15993 + const-string/jumbo v4, "wifiInfoSetting"
15995 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
15999 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16001 + move-result-object v5
16003 + move-object/from16 v0, v22
16005 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16007 + const-string/jumbo v4, "switchConnectivitySetting"
16009 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSwitchConnectivitySetting()B
16013 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16015 + move-result-object v5
16017 + move-object/from16 v0, v22
16019 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16021 + const-string/jumbo v4, "sendMmsSetting"
16023 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSendMmsSetting()B
16027 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16029 + move-result-object v5
16031 + move-object/from16 v0, v22
16033 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16035 + const-string v4, "forceOnlineState"
16037 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
16041 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16043 + move-result-object v5
16045 + move-object/from16 v0, v22
16047 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16049 + const-string/jumbo v4, "switchWifiStateSetting"
16051 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSwitchWifiStateSetting()B
16055 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16057 + move-result-object v5
16059 + move-object/from16 v0, v22
16061 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16068 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16072 + .catchall {:try_start_2a9 .. :try_end_2ac} :catchall_33c
16073 + .catch Ljava/lang/Exception; {:try_start_2a9 .. :try_end_2ac} :catch_311
16076 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16078 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16080 + invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
16084 + add-int/lit8 v4, v4, 0x1
16086 + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16088 + move-result-object v4
16090 + sput-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16094 + .catchall {:try_start_2ac .. :try_end_2bd} :catchall_339
16097 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
16099 + move-result-object v3
16101 + if-eqz v3, :cond_4f9
16103 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
16107 + if-eqz v4, :cond_4f9
16109 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16111 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16113 + move-result-object v4
16115 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->lock()V
16117 + .catchall {:try_start_2bd .. :try_end_2d2} :catchall_33c
16118 + .catch Ljava/lang/Exception; {:try_start_2bd .. :try_end_2d2} :catch_311
16121 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
16123 + .catchall {:try_start_2d2 .. :try_end_2d5} :catchall_306
16126 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->get_id()Ljava/lang/Integer;
16128 + move-result-object v16
16130 + if-eqz v16, :cond_38d
16132 + const-string/jumbo v4, "settings"
16134 + const-string v5, "_id=?"
16138 + new-array v6, v6, [Ljava/lang/String;
16142 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16144 + move-result-object v8
16146 + aput-object v8, v6, v7
16148 + move-object/from16 v0, v22
16150 + invoke-virtual {v3, v4, v0, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->update(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
16156 + if-ge v4, v5, :cond_341
16158 + new-instance v4, Ljava/lang/Exception;
16160 + const-string/jumbo v5, "saveSettings - failed to update database entry"
16162 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16166 + .catchall {:try_start_2d5 .. :try_end_2fc} :catchall_2fc
16169 + move-exception v4
16172 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
16174 + if-eqz v13, :cond_305
16176 + invoke-interface {v13}, Landroid/database/Cursor;->close()V
16181 + .catchall {:try_start_2fd .. :try_end_306} :catchall_306
16184 + move-exception v4
16187 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16189 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16191 + move-result-object v5
16193 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->unlock()V
16197 + .catchall {:try_start_307 .. :try_end_311} :catchall_33c
16198 + .catch Ljava/lang/Exception; {:try_start_307 .. :try_end_311} :catch_311
16201 + move-exception v14
16204 + const-string v4, "PrivacyPersistenceAdapter"
16206 + new-instance v5, Ljava/lang/StringBuilder;
16208 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16210 + const-string v6, "PrivacyPersistenceAdapter:saveSettings: saving for "
16212 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16214 + move-result-object v5
16216 + move-object/from16 v0, v18
16218 + invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16220 + move-result-object v5
16222 + const-string v6, " failed"
16224 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16226 + move-result-object v5
16228 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16230 + move-result-object v5
16232 + invoke-static {v4, v5, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
16234 + .catchall {:try_start_312 .. :try_end_332} :catchall_33c
16236 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16239 + move/from16 v4, v19
16244 + move-exception v4
16249 + .catchall {:try_start_33a .. :try_end_33b} :catchall_339
16254 + .catchall {:try_start_33b .. :try_end_33c} :catchall_33c
16255 + .catch Ljava/lang/Exception; {:try_start_33b .. :try_end_33c} :catch_311
16258 + move-exception v4
16260 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16266 + const-string v4, "allowed_contacts"
16268 + const-string/jumbo v5, "settings_id=?"
16272 + new-array v6, v6, [Ljava/lang/String;
16276 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16278 + move-result-object v8
16280 + aput-object v8, v6, v7
16282 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16284 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16286 + move-result-object v11
16288 + if-eqz v11, :cond_4af
16290 + new-instance v12, Landroid/content/ContentValues;
16292 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16297 + array-length v4, v11
16299 + if-ge v15, v4, :cond_4af
16301 + const-string/jumbo v4, "settings_id"
16303 + move-object/from16 v0, v16
16305 + invoke-virtual {v12, v4, v0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16307 + const-string v4, "contact_id"
16309 + aget v5, v11, v15
16311 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16313 + move-result-object v5
16315 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16317 + const-string v4, "allowed_contacts"
16321 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16323 + move-result-wide v4
16325 + const-wide/16 v6, -0x1
16327 + cmp-long v4, v4, v6
16329 + if-nez v4, :cond_38a
16331 + new-instance v4, Ljava/lang/Exception;
16333 + const-string v5, "PrivacyPersistenceAdapter:saveSettings: failed to update database entry (contacts)"
16335 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16340 + add-int/lit8 v15, v15, 0x1
16345 + const-string/jumbo v4, "settings"
16349 + new-array v5, v5, [Ljava/lang/String;
16353 + const-string v7, "_id"
16355 + aput-object v7, v5, v6
16357 + const-string/jumbo v6, "packageName=?"
16361 + new-array v7, v7, [Ljava/lang/String;
16365 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
16367 + move-result-object v9
16369 + aput-object v9, v7, v8
16377 + invoke-virtual/range {v3 .. v10}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
16379 + move-result-object v13
16381 + if-eqz v13, :cond_4a7
16383 + invoke-interface {v13}, Landroid/database/Cursor;->getCount()I
16389 + if-ne v4, v5, :cond_433
16391 + const-string/jumbo v4, "settings"
16393 + const-string/jumbo v5, "packageName=?"
16397 + new-array v6, v6, [Ljava/lang/String;
16401 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
16403 + move-result-object v8
16405 + aput-object v8, v6, v7
16407 + move-object/from16 v0, v22
16409 + invoke-virtual {v3, v4, v0, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->update(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
16415 + if-ge v4, v5, :cond_3d7
16417 + new-instance v4, Ljava/lang/Exception;
16419 + const-string/jumbo v5, "saveSettings - failed to update database entry"
16421 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16426 + invoke-interface {v13}, Landroid/database/Cursor;->moveToFirst()Z
16430 + if-eqz v4, :cond_4af
16434 + invoke-interface {v13, v4}, Landroid/database/Cursor;->getInt(I)I
16438 + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16440 + move-result-object v17
16442 + const-string v4, "allowed_contacts"
16444 + const-string/jumbo v5, "settings_id=?"
16448 + new-array v6, v6, [Ljava/lang/String;
16452 + invoke-virtual/range {v17 .. v17}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16454 + move-result-object v8
16456 + aput-object v8, v6, v7
16458 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16460 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16462 + move-result-object v11
16464 + if-eqz v11, :cond_4af
16466 + new-instance v12, Landroid/content/ContentValues;
16468 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16473 + array-length v4, v11
16475 + if-ge v15, v4, :cond_4af
16477 + const-string/jumbo v4, "settings_id"
16479 + move-object/from16 v0, v17
16481 + invoke-virtual {v12, v4, v0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16483 + const-string v4, "contact_id"
16485 + aget v5, v11, v15
16487 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16489 + move-result-object v5
16491 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16493 + const-string v4, "allowed_contacts"
16497 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16499 + move-result-wide v4
16501 + const-wide/16 v6, -0x1
16503 + cmp-long v4, v4, v6
16505 + if-nez v4, :cond_430
16507 + new-instance v4, Ljava/lang/Exception;
16509 + const-string/jumbo v5, "saveSettings - failed to update database entry (contacts)"
16511 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16516 + add-int/lit8 v15, v15, 0x1
16521 + invoke-interface {v13}, Landroid/database/Cursor;->getCount()I
16525 + if-nez v4, :cond_49f
16527 + const-string/jumbo v4, "settings"
16531 + move-object/from16 v0, v22
16533 + invoke-virtual {v3, v4, v5, v0}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16535 + move-result-wide v20
16537 + const-wide/16 v4, -0x1
16539 + cmp-long v4, v20, v4
16541 + if-nez v4, :cond_451
16543 + new-instance v4, Ljava/lang/Exception;
16545 + const-string v5, "PrivacyPersistenceAdapter:saveSettings - failed to insert new record into DB"
16547 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16552 + const-string v4, "allowed_contacts"
16554 + const-string/jumbo v5, "settings_id=?"
16558 + new-array v6, v6, [Ljava/lang/String;
16562 + invoke-static/range {v20 .. v21}, Ljava/lang/Long;->toString(J)Ljava/lang/String;
16564 + move-result-object v8
16566 + aput-object v8, v6, v7
16568 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16570 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16572 + move-result-object v11
16574 + if-eqz v11, :cond_4af
16576 + new-instance v12, Landroid/content/ContentValues;
16578 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16583 + array-length v4, v11
16585 + if-ge v15, v4, :cond_4af
16587 + const-string/jumbo v4, "settings_id"
16589 + invoke-static/range {v20 .. v21}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
16591 + move-result-object v5
16593 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
16595 + const-string v4, "contact_id"
16597 + aget v5, v11, v15
16599 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16601 + move-result-object v5
16603 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16605 + const-string v4, "allowed_contacts"
16609 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16611 + move-result-wide v4
16613 + const-wide/16 v6, -0x1
16615 + cmp-long v4, v4, v6
16617 + if-nez v4, :cond_49c
16619 + new-instance v4, Ljava/lang/Exception;
16621 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to update database entry (contacts)"
16623 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16628 + add-int/lit8 v15, v15, 0x1
16633 + new-instance v4, Ljava/lang/Exception;
16635 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:duplicate entries in the privacy.db"
16637 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16642 + new-instance v4, Ljava/lang/Exception;
16644 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:cursor is null, database access failed"
16646 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16651 + const-string/jumbo v4, "systemLogsSetting"
16653 + move-object/from16 v0, p0
16655 + move-object/from16 v1, v18
16657 + move-object/from16 v2, p1
16659 + invoke-direct {v0, v4, v1, v2}, Landroid/privacy/PrivacyPersistenceAdapter;->writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
16663 + if-nez v4, :cond_4c6
16665 + new-instance v4, Ljava/lang/Exception;
16667 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to write systemLogsSettings file"
16669 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16674 + const-string v4, "ipTableProtectSetting"
16676 + move-object/from16 v0, p0
16678 + move-object/from16 v1, v18
16680 + move-object/from16 v2, p1
16682 + invoke-direct {v0, v4, v1, v2}, Landroid/privacy/PrivacyPersistenceAdapter;->writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
16686 + if-nez v4, :cond_4dc
16688 + new-instance v4, Ljava/lang/Exception;
16690 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to write ipTableProtectSetting file"
16692 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16697 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
16699 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
16701 + move-object/from16 v0, v18
16703 + invoke-virtual {v4, v0}, Landroid/util/LruCache;->remove(Ljava/lang/Object;)Ljava/lang/Object;
16705 + .catchall {:try_start_341 .. :try_end_4e6} :catchall_2fc
16708 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
16710 + if-eqz v13, :cond_4ee
16712 + invoke-interface {v13}, Landroid/database/Cursor;->close()V
16714 + .catchall {:try_start_4e6 .. :try_end_4ee} :catchall_306
16718 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16720 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16722 + move-result-object v4
16724 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
16726 + .catchall {:try_start_4ee .. :try_end_4f7} :catchall_33c
16727 + .catch Ljava/lang/Exception; {:try_start_4ee .. :try_end_4f7} :catch_311
16729 + const/16 v19, 0x1
16732 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16734 + goto/16 :goto_335
16737 +.method public setValue(Ljava/lang/String;Ljava/lang/String;)Z
16742 + const-string v4, "PrivacyPersistenceAdapter"
16744 + new-instance v5, Ljava/lang/StringBuilder;
16746 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16748 + const-string/jumbo v6, "setValue - name "
16750 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16752 + move-result-object v5
16754 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16756 + move-result-object v5
16758 + const-string v6, " value "
16760 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16762 + move-result-object v5
16764 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16766 + move-result-object v5
16768 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16770 + move-result-object v5
16772 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
16774 + new-instance v2, Landroid/content/ContentValues;
16776 + invoke-direct {v2}, Landroid/content/ContentValues;-><init>()V
16778 + const-string/jumbo v4, "name"
16780 + invoke-virtual {v2, v4, p1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16782 + const-string/jumbo v4, "value"
16784 + invoke-virtual {v2, v4, p2}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16789 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16793 + .catchall {:try_start_36 .. :try_end_39} :catchall_75
16796 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16798 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16800 + invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
16804 + add-int/lit8 v5, v5, 0x1
16806 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16808 + move-result-object v5
16810 + sput-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16814 + .catchall {:try_start_39 .. :try_end_4a} :catchall_72
16817 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
16819 + move-result-object v0
16821 + if-eqz v0, :cond_56
16823 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
16827 + if-nez v4, :cond_7a
16830 + const-string v4, "PrivacyPersistenceAdapter"
16832 + new-instance v5, Ljava/lang/StringBuilder;
16834 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16836 + const-string v6, "PrivacyPersistenceAdapter:setValue: Database not obtained while setting value for name: "
16838 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16840 + move-result-object v5
16842 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16844 + move-result-object v5
16846 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16848 + move-result-object v5
16850 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
16852 + .catchall {:try_start_4a .. :try_end_6e} :catchall_75
16854 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16860 + move-exception v3
16865 + .catchall {:try_start_73 .. :try_end_74} :catchall_72
16870 + .catchall {:try_start_74 .. :try_end_75} :catchall_75
16873 + move-exception v3
16875 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16881 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16883 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16885 + move-result-object v4
16887 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->lock()V
16889 + .catchall {:try_start_7a .. :try_end_83} :catchall_75
16892 + const-string/jumbo v4, "map"
16896 + invoke-virtual {v0, v4, v5, v2}, Landroid/database/sqlite/SQLiteDatabase;->replace(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16898 + .catchall {:try_start_83 .. :try_end_8a} :catchall_a2
16900 + move-result-wide v4
16902 + const-wide/16 v6, -0x1
16904 + cmp-long v4, v4, v6
16906 + if-eqz v4, :cond_a0
16912 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16914 + invoke-interface {v3}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16916 + move-result-object v3
16918 + invoke-interface {v3}, Ljava/util/concurrent/locks/Lock;->unlock()V
16920 + .catchall {:try_start_92 .. :try_end_9b} :catchall_75
16922 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16934 + move-exception v3
16937 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16939 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16941 + move-result-object v4
16943 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
16947 + .catchall {:try_start_a3 .. :try_end_ad} :catchall_75
16949 diff -Npru stock-framework/smali/android/privacy/PrivacySettings$1.smali pdroid-framework/smali/android/privacy/PrivacySettings$1.smali
16950 --- stock-framework/smali/android/privacy/PrivacySettings$1.smali 1969-12-31 16:00:00.000000000 -0800
16951 +++ pdroid-framework/smali/android/privacy/PrivacySettings$1.smali 2013-08-10 20:37:42.495213442 -0700
16953 +.class final Landroid/privacy/PrivacySettings$1;
16954 +.super Ljava/lang/Object;
16955 +.source "PrivacySettings.java"
16958 +.implements Landroid/os/Parcelable$Creator;
16962 +.annotation system Ldalvik/annotation/EnclosingClass;
16963 + value = Landroid/privacy/PrivacySettings;
16966 +.annotation system Ldalvik/annotation/InnerClass;
16967 + accessFlags = 0x8
16971 +.annotation system Ldalvik/annotation/Signature;
16973 + "Ljava/lang/Object;",
16974 + "Landroid/os/Parcelable$Creator",
16976 + "Landroid/privacy/PrivacySettings;",
16983 +.method constructor <init>()V
16986 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
16993 +.method public createFromParcel(Landroid/os/Parcel;)Landroid/privacy/PrivacySettings;
16996 + new-instance v0, Landroid/privacy/PrivacySettings;
16998 + invoke-direct {v0, p1}, Landroid/privacy/PrivacySettings;-><init>(Landroid/os/Parcel;)V
17003 +.method public bridge synthetic createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
17006 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettings$1;->createFromParcel(Landroid/os/Parcel;)Landroid/privacy/PrivacySettings;
17008 + move-result-object v0
17013 +.method public newArray(I)[Landroid/privacy/PrivacySettings;
17016 + new-array v0, p1, [Landroid/privacy/PrivacySettings;
17021 +.method public bridge synthetic newArray(I)[Ljava/lang/Object;
17024 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettings$1;->newArray(I)[Landroid/privacy/PrivacySettings;
17026 + move-result-object v0
17030 diff -Npru stock-framework/smali/android/privacy/PrivacySettingsManagerService.smali pdroid-framework/smali/android/privacy/PrivacySettingsManagerService.smali
17031 --- stock-framework/smali/android/privacy/PrivacySettingsManagerService.smali 1969-12-31 16:00:00.000000000 -0800
17032 +++ pdroid-framework/smali/android/privacy/PrivacySettingsManagerService.smali 2013-08-10 20:37:42.499213442 -0700
17034 +.class public final Landroid/privacy/PrivacySettingsManagerService;
17035 +.super Landroid/privacy/IPrivacySettingsManager$Stub;
17036 +.source "PrivacySettingsManagerService.java"
17040 +.field static final API_VERSION:D = 1.51
17042 +.field static final MOD_DETAILS:Ljava/lang/String; = "OpenPDroid 1.0 by FFU5y, Mateor, wbedard; forked from PDroid 2.0\nPDroid 2.0 by CollegeDev; forked from PDroid\nPDroid by Syvat\'s\nAdditional contributions by Pastime1971"
17044 +.field static final MOD_VERSION:D = 1.0
17046 +.field private static final READ_PRIVACY_SETTINGS:Ljava/lang/String; = "android.privacy.READ_PRIVACY_SETTINGS"
17048 +.field private static final TAG:Ljava/lang/String; = "PrivacySettingsManagerService"
17050 +.field private static final WRITE_PRIVACY_SETTINGS:Ljava/lang/String; = "android.privacy.WRITE_PRIVACY_SETTINGS"
17052 +.field public static obs:Landroid/privacy/PrivacyFileObserver;
17054 +.field private static sendNotifications:Z
17058 +.field private bootCompleted:Z
17060 +.field private context:Landroid/content/Context;
17062 +.field private enabled:Z
17064 +.field private notificationsEnabled:Z
17066 +.field private persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17070 +.method static constructor <clinit>()V
17075 + sput-boolean v0, Landroid/privacy/PrivacySettingsManagerService;->sendNotifications:Z
17080 +.method public constructor <init>(Landroid/content/Context;)V
17083 + invoke-direct {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;-><init>()V
17085 + const-string v0, "PrivacySettingsManagerService"
17087 + new-instance v1, Ljava/lang/StringBuilder;
17089 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
17091 + const-string v2, "PrivacySettingsManagerService - initializing for package: "
17093 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17095 + move-result-object v1
17097 + invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17099 + move-result-object v2
17101 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17103 + move-result-object v1
17105 + const-string v2, " UID: "
17107 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17109 + move-result-object v1
17111 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17115 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
17117 + move-result-object v1
17119 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17121 + move-result-object v1
17123 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
17125 + iput-object p1, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17127 + new-instance v0, Landroid/privacy/PrivacyPersistenceAdapter;
17129 + invoke-direct {v0, p1}, Landroid/privacy/PrivacyPersistenceAdapter;-><init>(Landroid/content/Context;)V
17131 + iput-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17133 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
17135 + const-string v1, "/data/system/privacy"
17137 + invoke-direct {v0, v1, p0}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
17139 + sput-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17141 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17143 + const-string v1, "enabled"
17145 + invoke-virtual {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
17147 + move-result-object v0
17149 + const-string v1, "1"
17151 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17155 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17157 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17159 + const-string/jumbo v1, "notifications_enabled"
17161 + invoke-virtual {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
17163 + move-result-object v0
17165 + const-string v1, "1"
17167 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17171 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17175 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17180 +.method private checkCallerCanReadOrThrow()V
17183 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17187 + const/16 v1, 0x3e8
17189 + if-ne v0, v1, :cond_9
17195 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17197 + const-string v1, "android.privacy.READ_PRIVACY_SETTINGS"
17199 + const-string v2, "Requires READ_PRIVACY_SETTINGS"
17201 + invoke-virtual {v0, v1, v2}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
17206 +.method private checkCallerCanReadSettings()Z
17210 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanReadOrThrow()V
17212 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_3} :catch_5
17220 + move-exception v0
17227 +.method private checkCallerCanWriteOrThrow()V
17229 + .annotation system Ldalvik/annotation/Throws;
17231 + Landroid/os/RemoteException;
17235 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17237 + const-string v1, "android.privacy.WRITE_PRIVACY_SETTINGS"
17239 + const-string v2, "Requires WRITE_PRIVACY_SETTINGS"
17241 + invoke-virtual {v0, v1, v2}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
17246 +.method private checkCallerCanWriteSettings()Z
17248 + .annotation system Ldalvik/annotation/Throws;
17250 + Landroid/os/RemoteException;
17255 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17257 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_3} :catch_5
17265 + move-exception v0
17274 +.method public addObserver(Ljava/lang/String;)V
17276 + .annotation system Ldalvik/annotation/Throws;
17278 + Landroid/os/RemoteException;
17282 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17284 + sget-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17286 + invoke-virtual {v0, p1}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17291 +.method public deleteSettings(Ljava/lang/String;)Z
17293 + .annotation system Ldalvik/annotation/Throws;
17295 + Landroid/os/RemoteException;
17301 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17305 + const/16 v3, 0x3e8
17307 + if-eq v2, v3, :cond_c
17309 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17312 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17314 + invoke-virtual {v2, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteSettings(Ljava/lang/String;)Z
17318 + new-instance v2, Ljava/lang/StringBuilder;
17320 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17322 + const-string v3, "/data/system/privacy/"
17324 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17326 + move-result-object v2
17328 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17330 + move-result-object v2
17332 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17334 + move-result-object v0
17336 + new-instance v2, Ljava/io/File;
17338 + invoke-direct {v2, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
17340 + invoke-virtual {v2}, Ljava/io/File;->exists()Z
17344 + if-eqz v2, :cond_38
17346 + if-ne v1, v4, :cond_38
17348 + sget-object v2, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17350 + invoke-virtual {v2, v0}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17357 + if-ne v1, v4, :cond_37
17359 + sget-object v2, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17361 + iget-object v2, v2, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
17363 + invoke-virtual {v2, v0}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
17368 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17371 + iget-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17373 + if-nez v0, :cond_2e
17375 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17377 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17379 + move-result-object v0
17381 + const-string v1, "com.privacy.pdroid"
17383 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17387 + if-nez v0, :cond_2e
17389 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17391 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17393 + move-result-object v0
17395 + const-string v1, "com.privacy.pdroid.Addon"
17397 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17401 + if-nez v0, :cond_2e
17403 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17405 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17407 + move-result-object v0
17409 + const-string v1, "com.android.privacy.pdroid.extension"
17411 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17415 + if-eqz v0, :cond_35
17418 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17420 + invoke-virtual {v0, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17422 + move-result-object v0
17433 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17436 + iget-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17438 + if-eqz v1, :cond_38
17440 + iget-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17442 + if-eqz v1, :cond_38
17444 + sget-boolean v1, Landroid/privacy/PrivacySettingsManagerService;->sendNotifications:Z
17446 + if-eqz v1, :cond_38
17448 + new-instance v0, Landroid/content/Intent;
17450 + invoke-direct {v0}, Landroid/content/Intent;-><init>()V
17452 + const-string v1, "com.privacy.pdroid.PRIVACY_NOTIFICATION"
17454 + invoke-virtual {v0, v1}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
17456 + const-string/jumbo v1, "packageName"
17458 + invoke-virtual {v0, v1, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17460 + const-string/jumbo v1, "uid"
17464 + invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
17466 + const-string v1, "accessMode"
17468 + invoke-virtual {v0, v1, p2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;B)Landroid/content/Intent;
17470 + const-string v1, "dataType"
17472 + invoke-virtual {v0, v1, p3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17474 + const-string/jumbo v1, "output"
17476 + invoke-virtual {v0, v1, p4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17478 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17480 + invoke-virtual {v1, v0}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
17486 +.method public purgeSettings()Z
17489 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17491 + invoke-virtual {v0}, Landroid/privacy/PrivacyPersistenceAdapter;->purgeSettings()Z
17498 +.method public registerObservers()V
17500 + .annotation system Ldalvik/annotation/Throws;
17502 + Landroid/os/RemoteException;
17506 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17508 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
17510 + const-string v1, "/data/system/privacy"
17512 + invoke-direct {v0, v1, p0}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
17514 + sput-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17519 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
17521 + .annotation system Ldalvik/annotation/Throws;
17523 + Landroid/os/RemoteException;
17527 + const-string v1, "PrivacySettingsManagerService"
17529 + new-instance v2, Ljava/lang/StringBuilder;
17531 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17533 + const-string/jumbo v3, "saveSettings - checking if caller (UID: "
17535 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17537 + move-result-object v2
17539 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17543 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
17545 + move-result-object v2
17547 + const-string v3, ") has sufficient permissions"
17549 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17551 + move-result-object v2
17553 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17555 + move-result-object v2
17557 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
17559 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17563 + const/16 v2, 0x3e8
17565 + if-eq v1, v2, :cond_2e
17567 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17570 + const-string v1, "PrivacySettingsManagerService"
17572 + new-instance v2, Ljava/lang/StringBuilder;
17574 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17576 + const-string/jumbo v3, "saveSettings - "
17578 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17580 + move-result-object v2
17582 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
17584 + move-result-object v2
17586 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17588 + move-result-object v2
17590 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
17592 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17594 + invoke-virtual {v1, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->saveSettings(Landroid/privacy/PrivacySettings;)Z
17600 + if-ne v0, v1, :cond_59
17602 + sget-object v1, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17604 + invoke-virtual {p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
17606 + move-result-object v2
17608 + invoke-virtual {v1, v2}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17614 +.method public setBootCompleted()V
17619 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17624 +.method public setEnabled(Z)Z
17626 + .annotation system Ldalvik/annotation/Throws;
17628 + Landroid/os/RemoteException;
17634 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17636 + if-eqz p1, :cond_15
17638 + const-string v0, "1"
17641 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17643 + const-string v3, "enabled"
17645 + invoke-virtual {v2, v3, v0}, Landroid/privacy/PrivacyPersistenceAdapter;->setValue(Ljava/lang/String;Ljava/lang/String;)Z
17649 + if-eqz v2, :cond_18
17651 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17657 + const-string v0, "0"
17667 +.method public setNotificationsEnabled(Z)Z
17669 + .annotation system Ldalvik/annotation/Throws;
17671 + Landroid/os/RemoteException;
17677 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17679 + if-eqz p1, :cond_18
17681 + const-string v0, "1"
17684 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17686 + const-string/jumbo v3, "notifications_enabled"
17688 + invoke-virtual {v2, v3, v0}, Landroid/privacy/PrivacyPersistenceAdapter;->setValue(Ljava/lang/String;Ljava/lang/String;)Z
17692 + if-eqz v2, :cond_1b
17694 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17696 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17702 + const-string v0, "0"
17711 diff -Npru stock-framework/smali/android/privacy/PrivacySettingsManager.smali pdroid-framework/smali/android/privacy/PrivacySettingsManager.smali
17712 --- stock-framework/smali/android/privacy/PrivacySettingsManager.smali 1969-12-31 16:00:00.000000000 -0800
17713 +++ pdroid-framework/smali/android/privacy/PrivacySettingsManager.smali 2013-08-10 20:37:42.499213442 -0700
17715 +.class public final Landroid/privacy/PrivacySettingsManager;
17716 +.super Ljava/lang/Object;
17717 +.source "PrivacySettingsManager.java"
17721 +.field public static final ACTION_PRIVACY_NOTIFICATION:Ljava/lang/String; = "com.privacy.pdroid.PRIVACY_NOTIFICATION"
17723 +.field public static final ACTION_PRIVACY_NOTIFICATION_ADDON:Ljava/lang/String; = "com.privacy.pdroid.PRIVACY_NOTIFICATION_ADDON"
17725 +.field private static final TAG:Ljava/lang/String; = "PrivacySettingsManager"
17729 +.field private service:Landroid/privacy/IPrivacySettingsManager;
17733 +.method public constructor <init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
17736 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
17738 + iput-object p2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17745 +.method public addObserver(Ljava/lang/String;)V
17749 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17751 + if-eqz v1, :cond_a
17753 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17755 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->addObserver(Ljava/lang/String;)V
17761 + const-string v1, "PrivacySettingsManager"
17763 + const-string v2, "PrivacySettingsManager:addObserver: PrivacySettingsManagerService is null"
17765 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17767 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
17772 + move-exception v0
17774 + const-string v1, "PrivacySettingsManager"
17776 + const-string v2, "RemoteException in addObserver: "
17778 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17783 +.method public deleteSettings(Ljava/lang/String;)Z
17789 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17791 + if-eqz v2, :cond_c
17793 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17795 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->deleteSettings(Ljava/lang/String;)Z
17803 + const-string v2, "PrivacySettingsManager"
17805 + const-string v3, "PrivacySettingsManager:deleteSettings: PrivacySettingsManagerService is null"
17807 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17809 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_13} :catch_14
17814 + move-exception v0
17816 + const-string v2, "PrivacySettingsManager"
17818 + const-string v3, "RemoteException in deleteSettings: "
17820 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17825 +.method public deleteSettings(Ljava/lang/String;I)Z
17827 + .annotation runtime Ljava/lang/Deprecated;
17830 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettingsManager;->deleteSettings(Ljava/lang/String;)Z
17837 +.method public getApiVersion()D
17840 + const-wide v0, 0x3ff828f5c28f5c29L
17845 +.method public getModDetails()Ljava/lang/String;
17848 + const-string v0, "OpenPDroid 1.0 by FFU5y, Mateor, wbedard; forked from PDroid 2.0\nPDroid 2.0 by CollegeDev; forked from PDroid\nPDroid by Syvat\'s\nAdditional contributions by Pastime1971"
17853 +.method public getModVersion()D
17856 + const-wide/high16 v0, 0x3ff0
17861 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17867 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17869 + if-eqz v2, :cond_c
17871 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17873 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17875 + move-result-object v1
17881 + const-string v2, "PrivacySettingsManager"
17883 + const-string v3, "getSettings - PrivacySettingsManagerService is null"
17885 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17887 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_13} :catch_14
17892 + move-exception v0
17894 + invoke-virtual {v0}, Landroid/os/RemoteException;->printStackTrace()V
17899 +.method public getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
17901 + .annotation runtime Ljava/lang/Deprecated;
17904 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17906 + move-result-object v0
17911 +.method public getVersion()D
17913 + .annotation runtime Ljava/lang/Deprecated;
17916 + const-wide v0, 0x3ff828f5c28f5c29L
17921 +.method public isServiceAvailable()Z
17924 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17926 + if-eqz v0, :cond_6
17939 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17943 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17945 + if-eqz v1, :cond_a
17947 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17949 + invoke-interface {v1, p1, p2, p3, p4}, Landroid/privacy/IPrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17955 + const-string v1, "PrivacySettingsManager"
17957 + const-string v2, "PrivacySettingsManager:notification: PrivacySettingsManagerService is null"
17959 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17961 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
17966 + move-exception v0
17968 + const-string v1, "PrivacySettingsManager"
17970 + const-string v2, "RemoteException in notification: "
17972 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17977 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
17979 + .annotation runtime Ljava/lang/Deprecated;
17982 + invoke-virtual {p0, p1, p2, p3, p4}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17987 +.method public notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
17989 + .annotation runtime Ljava/lang/Deprecated;
17992 + invoke-virtual {p0, p1, p3, p4, p5}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17997 +.method public purgeSettings()Z
18001 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18003 + if-eqz v1, :cond_b
18005 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18007 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->purgeSettings()Z
18015 + const-string v1, "PrivacySettingsManager"
18017 + const-string v2, "PrivacySettingsManager:purgeSettings: PrivacySettingsManagerService is null"
18019 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18021 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_14
18029 + move-exception v0
18031 + const-string v1, "PrivacySettingsManager"
18033 + const-string v2, "RemoteException in purgeSettings: "
18035 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18040 +.method public registerObservers()V
18044 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18046 + if-eqz v1, :cond_a
18048 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18050 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->registerObservers()V
18056 + const-string v1, "PrivacySettingsManager"
18058 + const-string v2, "PrivacySettingsManager:registerObservers: PrivacySettingsManagerService is null"
18060 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18062 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
18067 + move-exception v0
18069 + const-string v1, "PrivacySettingsManager"
18071 + const-string v2, "RemoteException in registerObservers: "
18073 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18078 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
18084 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18086 + if-eqz v2, :cond_c
18088 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18090 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->saveSettings(Landroid/privacy/PrivacySettings;)Z
18098 + const-string v2, "PrivacySettingsManager"
18100 + const-string/jumbo v3, "saveSettings - PrivacySettingsManagerService is null"
18102 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18104 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_14} :catch_15
18109 + move-exception v0
18111 + const-string v2, "PrivacySettingsManager"
18113 + const-string v3, "RemoteException in saveSettings: "
18115 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18120 +.method public setBootCompleted()V
18124 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18126 + if-eqz v1, :cond_a
18128 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18130 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->setBootCompleted()V
18136 + const-string v1, "PrivacySettingsManager"
18138 + const-string v2, "PrivacySettingsManager:setBootCompleted: PrivacySettingsManagerService is null"
18140 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18142 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
18147 + move-exception v0
18149 + const-string v1, "PrivacySettingsManager"
18151 + const-string v2, "RemoteException in setBootCompleted: "
18153 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18158 +.method public setEnabled(Z)Z
18162 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18164 + if-eqz v1, :cond_b
18166 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18168 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->setEnabled(Z)Z
18176 + const-string v1, "PrivacySettingsManager"
18178 + const-string v2, "PrivacySettingsManager:setEnabled: PrivacySettingsManagerService is null"
18180 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18182 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_14
18190 + move-exception v0
18192 + const-string v1, "PrivacySettingsManager"
18194 + const-string v2, "RemoteException in setEnabled: "
18196 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18201 +.method public setNotificationsEnabled(Z)Z
18205 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18207 + if-eqz v1, :cond_b
18209 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18211 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->setNotificationsEnabled(Z)Z
18219 + const-string v1, "PrivacySettingsManager"
18221 + const-string v2, "PrivacySettingsManager:setNotificationsEnabled: PrivacySettingsManagerService is null"
18223 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18225 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_14
18233 + move-exception v0
18235 + const-string v1, "PrivacySettingsManager"
18237 + const-string v2, "RemoteException in setNotificationsEnabled: "
18239 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18243 diff -Npru stock-framework/smali/android/privacy/PrivacySettings.smali pdroid-framework/smali/android/privacy/PrivacySettings.smali
18244 --- stock-framework/smali/android/privacy/PrivacySettings.smali 1969-12-31 16:00:00.000000000 -0800
18245 +++ pdroid-framework/smali/android/privacy/PrivacySettings.smali 2013-08-10 20:37:42.499213442 -0700
18247 +.class public final Landroid/privacy/PrivacySettings;
18248 +.super Landroid/privacy/PrivacySettingsStub;
18249 +.source "PrivacySettings.java"
18252 +.implements Landroid/os/Parcelable;
18256 +.field public static final CREATOR:Landroid/os/Parcelable$Creator; = null
18257 + .annotation system Ldalvik/annotation/Signature;
18259 + "Landroid/os/Parcelable$Creator",
18261 + "Landroid/privacy/PrivacySettings;",
18267 +.field public static final CUSTOM:B = 0x2t
18269 +.field public static final DATA_ACCOUNTS_LIST:Ljava/lang/String; = "accountsList"
18271 +.field public static final DATA_ANDROID_ID:Ljava/lang/String; = "android_id"
18273 +.field public static final DATA_AUTH_TOKENS:Ljava/lang/String; = "authTokens"
18275 +.field public static final DATA_BOOKMARKS:Ljava/lang/String; = "bookmarks"
18277 +.field public static final DATA_CALENDAR:Ljava/lang/String; = "calendar"
18279 +.field public static final DATA_CALL_LOG:Ljava/lang/String; = "callLog"
18281 +.field public static final DATA_CAMERA:Ljava/lang/String; = "camera"
18283 +.field public static final DATA_CONTACTS:Ljava/lang/String; = "contacts"
18285 +.field public static final DATA_DEVICE_ID:Ljava/lang/String; = "deviceID"
18287 +.field public static final DATA_ICC_ACCESS:Ljava/lang/String; = "iccAccess"
18289 +.field public static final DATA_INCOMING_CALL:Ljava/lang/String; = "incomingCall"
18291 +.field public static final DATA_INTENT_BOOT_COMPLETED:Ljava/lang/String; = "intentBootCompleted"
18293 +.field public static final DATA_IP_TABLES:Ljava/lang/String; = "iptables"
18295 +.field public static final DATA_LINE_1_NUMBER:Ljava/lang/String; = "line1Number"
18297 +.field public static final DATA_LOCATION_GPS:Ljava/lang/String; = "locationGPS"
18299 +.field public static final DATA_LOCATION_NETWORK:Ljava/lang/String; = "locationNetwork"
18301 +.field public static final DATA_MMS:Ljava/lang/String; = "mms"
18303 +.field public static final DATA_MMS_SMS:Ljava/lang/String; = "mmsSms"
18305 +.field public static final DATA_NETWORK_INFO_CURRENT:Ljava/lang/String; = "networkInfoCurrent"
18307 +.field public static final DATA_NETWORK_INFO_SIM:Ljava/lang/String; = "networkInfoSIM"
18309 +.field public static final DATA_OUTGOING_CALL:Ljava/lang/String; = "outgoingCall"
18311 +.field public static final DATA_PHONE_CALL:Ljava/lang/String; = "phoneCall"
18313 +.field public static final DATA_RECORD_AUDIO:Ljava/lang/String; = "recordAudio"
18315 +.field public static final DATA_SEND_MMS:Ljava/lang/String; = "sendMms"
18317 +.field public static final DATA_SIM_SERIAL:Ljava/lang/String; = "simSerial"
18319 +.field public static final DATA_SMS:Ljava/lang/String; = "sms"
18321 +.field public static final DATA_SMS_SEND:Ljava/lang/String; = "SmsSend"
18323 +.field public static final DATA_SUBSCRIBER_ID:Ljava/lang/String; = "subscriberID"
18325 +.field public static final DATA_SWITCH_CONNECTIVITY:Ljava/lang/String; = "switchconnectivity"
18327 +.field public static final DATA_SWITCH_WIFI_STATE:Ljava/lang/String; = "switchWifiState"
18329 +.field public static final DATA_SYSTEM_LOGS:Ljava/lang/String; = "systemLogs"
18331 +.field public static final DATA_WIFI_INFO:Ljava/lang/String; = "wifiInfo"
18333 +.field public static final EMPTY:B = 0x1t
18335 +.field public static final ID_PATTERN:[Ljava/lang/String; = null
18337 +.field public static final RANDOM:B = 0x3t
18339 +.field public static final REAL:B = 0x0t
18341 +.field public static final SETTING_NOTIFY_OFF:B = 0x0t
18343 +.field public static final SETTING_NOTIFY_ON:B = 0x1t
18347 +.field private final _id:Ljava/lang/Integer;
18349 +.field private accountsAuthTokensSetting:B
18351 +.field private accountsSetting:B
18353 +.field private addOnManagementSetting:B
18355 +.field private allowedContacts:[I
18357 +.field private androidID:Ljava/lang/String;
18359 +.field private androidIdSetting:B
18361 +.field private bookmarksSetting:B
18363 +.field private calendarSetting:B
18365 +.field private callLogSetting:B
18367 +.field private cameraSetting:B
18369 +.field private contactsSetting:B
18371 +.field private deviceId:Ljava/lang/String;
18373 +.field private deviceIdSetting:B
18375 +.field private forceOnlineState:B
18377 +.field private iccAccessSetting:B
18379 +.field private incomingCallsSetting:B
18381 +.field private intentBootCompletedSetting:B
18383 +.field private ipTableProtectSetting:B
18385 +.field private line1Number:Ljava/lang/String;
18387 +.field private line1NumberSetting:B
18389 +.field private locationGpsLat:Ljava/lang/String;
18391 +.field private locationGpsLon:Ljava/lang/String;
18393 +.field private locationGpsSetting:B
18395 +.field private locationNetworkLat:Ljava/lang/String;
18397 +.field private locationNetworkLon:Ljava/lang/String;
18399 +.field private locationNetworkSetting:B
18401 +.field private mmsSetting:B
18403 +.field private networkInfoSetting:B
18405 +.field private notificationSetting:B
18407 +.field private outgoingCallsSetting:B
18409 +.field private packageName:Ljava/lang/String;
18411 +.field private phoneCallSetting:B
18413 +.field private recordAudioSetting:B
18415 +.field private sendMmsSetting:B
18417 +.field private simInfoSetting:B
18419 +.field private simSerialNumber:Ljava/lang/String;
18421 +.field private simSerialNumberSetting:B
18423 +.field private smsSendSetting:B
18425 +.field private smsSetting:B
18427 +.field private subscriberId:Ljava/lang/String;
18429 +.field private subscriberIdSetting:B
18431 +.field private switchConnectivitySetting:B
18433 +.field private switchWifiStateSetting:B
18435 +.field private systemLogsSetting:B
18437 +.field private uid:I
18439 +.field private wifiInfoSetting:B
18443 +.method static constructor <clinit>()V
18446 + const/16 v0, 0x10
18448 + new-array v0, v0, [Ljava/lang/String;
18452 + const-string v2, "0"
18454 + aput-object v2, v0, v1
18458 + const-string v2, "1"
18460 + aput-object v2, v0, v1
18464 + const-string v2, "2"
18466 + aput-object v2, v0, v1
18470 + const-string v2, "3"
18472 + aput-object v2, v0, v1
18476 + const-string v2, "4"
18478 + aput-object v2, v0, v1
18482 + const-string v2, "5"
18484 + aput-object v2, v0, v1
18488 + const-string v2, "6"
18490 + aput-object v2, v0, v1
18494 + const-string v2, "7"
18496 + aput-object v2, v0, v1
18500 + const-string v2, "8"
18502 + aput-object v2, v0, v1
18506 + const-string v2, "9"
18508 + aput-object v2, v0, v1
18512 + const-string v2, "a"
18514 + aput-object v2, v0, v1
18518 + const-string v2, "b"
18520 + aput-object v2, v0, v1
18524 + const-string v2, "c"
18526 + aput-object v2, v0, v1
18530 + const-string v2, "d"
18532 + aput-object v2, v0, v1
18536 + const-string v2, "e"
18538 + aput-object v2, v0, v1
18542 + const-string v2, "f"
18544 + aput-object v2, v0, v1
18546 + sput-object v0, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
18548 + new-instance v0, Landroid/privacy/PrivacySettings$1;
18550 + invoke-direct {v0}, Landroid/privacy/PrivacySettings$1;-><init>()V
18552 + sput-object v0, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
18557 +.method public constructor <init>(Landroid/os/Parcel;)V
18560 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsStub;-><init>()V
18562 + invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
18568 + if-ne v0, v1, :cond_122
18573 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
18575 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18577 + move-result-object v1
18579 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
18581 + invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
18585 + iput v1, p0, Landroid/privacy/PrivacySettings;->uid:I
18587 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18591 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
18593 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18595 + move-result-object v1
18597 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
18599 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18603 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
18605 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18607 + move-result-object v1
18609 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
18611 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18615 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
18617 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18619 + move-result-object v1
18621 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
18623 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18625 + move-result-object v1
18627 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
18629 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18633 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
18635 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18637 + move-result-object v1
18639 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
18641 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18643 + move-result-object v1
18645 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
18647 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18651 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
18653 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18657 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
18659 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18663 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
18665 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18667 + move-result-object v1
18669 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
18671 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18675 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
18677 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18679 + move-result-object v1
18681 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
18683 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18687 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
18689 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18693 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
18695 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18699 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
18701 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18705 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
18707 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18711 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
18713 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18717 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
18719 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18723 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
18725 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18729 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
18731 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18735 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
18737 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18741 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
18743 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18747 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
18749 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18753 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
18755 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18759 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
18761 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18765 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
18767 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18771 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
18773 + invoke-virtual {p1}, Landroid/os/Parcel;->createIntArray()[I
18775 + move-result-object v1
18777 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
18779 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18783 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
18785 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18789 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
18791 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18795 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
18797 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18801 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
18803 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18807 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
18809 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18813 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
18815 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18817 + move-result-object v1
18819 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
18821 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18825 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
18827 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18831 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
18833 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18837 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
18839 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18843 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
18845 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18849 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
18854 + invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
18856 + move-result-object v1
18861 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;I)V
18870 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsStub;-><init>()V
18872 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
18874 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
18876 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
18878 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
18880 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
18882 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
18884 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
18886 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
18888 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
18890 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
18892 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
18894 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
18896 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
18898 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
18900 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
18902 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
18904 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
18906 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
18908 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
18910 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
18912 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
18914 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
18916 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
18918 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
18920 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
18922 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
18924 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
18926 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
18928 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
18930 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
18932 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
18934 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
18936 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
18938 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
18940 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
18942 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
18944 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
18946 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
18948 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
18950 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
18952 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
18954 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
18956 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
18958 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
18960 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
18962 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
18964 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
18969 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;IBLjava/lang/String;BLjava/lang/String;BLjava/lang/String;Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;BBBLjava/lang/String;BLjava/lang/String;BBBBBBBBBBBBBBBB[IBBBBBBLjava/lang/String;BBBBB)V
18972 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsStub;-><init>()V
18974 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
18976 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
18978 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
18980 + iput-byte p4, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
18982 + iput-object p5, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
18984 + iput-byte p6, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
18986 + iput-object p7, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
18988 + iput-byte p8, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
18990 + iput-object p9, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
18992 + iput-object p10, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
18994 + iput-byte p11, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
18996 + iput-object p12, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
18998 + iput-object p13, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19000 + iput-byte p14, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19002 + move/from16 v0, p15
19004 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19006 + move/from16 v0, p16
19008 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19010 + move-object/from16 v0, p17
19012 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19014 + move/from16 v0, p18
19016 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19018 + move-object/from16 v0, p19
19020 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19022 + move/from16 v0, p20
19024 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19026 + move/from16 v0, p21
19028 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19030 + move/from16 v0, p22
19032 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19034 + move/from16 v0, p23
19036 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19038 + move/from16 v0, p24
19040 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19042 + move/from16 v0, p25
19044 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19046 + move/from16 v0, p26
19048 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19050 + move/from16 v0, p27
19052 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19054 + move/from16 v0, p28
19056 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19058 + move/from16 v0, p29
19060 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19062 + move/from16 v0, p30
19064 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19066 + move/from16 v0, p34
19068 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19070 + move/from16 v0, p35
19072 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19074 + move/from16 v0, p32
19076 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19078 + move/from16 v0, p33
19080 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19082 + move-object/from16 v0, p36
19084 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19086 + move/from16 v0, p37
19088 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19090 + move/from16 v0, p38
19092 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19094 + move/from16 v0, p39
19096 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19098 + move/from16 v0, p40
19100 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19102 + move/from16 v0, p41
19104 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19106 + move/from16 v0, p42
19108 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19110 + move-object/from16 v0, p43
19112 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19114 + move/from16 v0, p44
19116 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19118 + move/from16 v0, p45
19120 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19122 + move/from16 v0, p46
19124 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19126 + move/from16 v0, p47
19128 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19130 + move/from16 v0, p48
19132 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19137 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;IZ)V
19148 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsStub;-><init>()V
19150 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
19152 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
19154 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
19156 + if-eqz p4, :cond_68
19158 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19160 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19162 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19164 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19166 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19168 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19170 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19172 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19174 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19176 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19178 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19180 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19182 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19184 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19186 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19188 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19190 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19192 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19194 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19196 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19198 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19200 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19202 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19204 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19206 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19208 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19210 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19212 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19214 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19216 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19218 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19220 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19222 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19224 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19226 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19228 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19230 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19232 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19234 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19236 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19238 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19240 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19242 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19244 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19250 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19252 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19254 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19256 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19258 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19260 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19262 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19264 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19266 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19268 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19270 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19272 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19274 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19276 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19278 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19280 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19282 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19284 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19286 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19288 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19290 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19292 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19294 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19296 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19298 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19300 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19302 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19304 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19306 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19308 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19310 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19312 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19314 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19316 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19318 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19320 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19322 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19324 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19326 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19328 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19330 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19332 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19334 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19336 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19341 +.method private getRandomLat()Ljava/lang/String;
19344 + const-wide v7, 0x4056800000000000L
19346 + invoke-static {}, Ljava/lang/Math;->random()D
19348 + move-result-wide v3
19350 + const-wide v5, 0x4066800000000000L
19352 + mul-double v0, v3, v5
19354 + cmpl-double v3, v0, v7
19356 + if-lez v3, :cond_35
19358 + new-instance v2, Ljava/math/BigDecimal;
19360 + sub-double v3, v0, v7
19362 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19365 + new-instance v3, Ljava/lang/StringBuilder;
19367 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19373 + invoke-virtual {v2, v4, v5}, Ljava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
19375 + move-result-object v4
19377 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
19379 + move-result-object v3
19381 + const-string v4, ""
19383 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19385 + move-result-object v3
19387 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19389 + move-result-object v3
19394 + new-instance v2, Ljava/math/BigDecimal;
19396 + neg-double v3, v0
19398 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19403 +.method private getRandomLon()Ljava/lang/String;
19406 + const-wide v7, 0x4066800000000000L
19408 + invoke-static {}, Ljava/lang/Math;->random()D
19410 + move-result-wide v3
19412 + const-wide v5, 0x4076800000000000L
19414 + mul-double v0, v3, v5
19416 + cmpl-double v3, v0, v7
19418 + if-lez v3, :cond_35
19420 + new-instance v2, Ljava/math/BigDecimal;
19422 + sub-double v3, v0, v7
19424 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19427 + new-instance v3, Ljava/lang/StringBuilder;
19429 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19435 + invoke-virtual {v2, v4, v5}, Ljava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
19437 + move-result-object v4
19439 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
19441 + move-result-object v3
19443 + const-string v4, ""
19445 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19447 + move-result-object v3
19449 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19451 + move-result-object v3
19456 + new-instance v2, Ljava/math/BigDecimal;
19458 + neg-double v3, v0
19460 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19467 +.method public describeContents()I
19475 +.method public getAccountsAuthTokensSetting()B
19478 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19483 +.method public getAccountsSetting()B
19486 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19491 +.method public getAddOnManagementSetting()B
19494 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19499 +.method public getAllowedContacts()[I
19502 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19507 +.method public getAndroidID()Ljava/lang/String;
19510 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19514 + if-ne v3, v4, :cond_9
19516 + const-string/jumbo v3, "q4a5w896ay21dr46"
19522 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19526 + if-ne v3, v4, :cond_36
19528 + new-instance v2, Ljava/util/Random;
19530 + invoke-direct {v2}, Ljava/util/Random;-><init>()V
19532 + new-instance v1, Ljava/lang/StringBuilder;
19534 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
19539 + sget-object v3, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19541 + array-length v3, v3
19543 + if-ge v0, v3, :cond_31
19545 + sget-object v3, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19547 + sget-object v4, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19549 + array-length v4, v4
19551 + add-int/lit8 v4, v4, -0x1
19553 + invoke-virtual {v2, v4}, Ljava/util/Random;->nextInt(I)I
19557 + aget-object v3, v3, v4
19559 + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19561 + add-int/lit8 v0, v0, 0x1
19566 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19568 + move-result-object v3
19573 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19578 +.method public getAndroidIdSetting()B
19581 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19586 +.method public getBookmarksSetting()B
19589 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19594 +.method public getCalendarSetting()B
19597 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19602 +.method public getCallLogSetting()B
19605 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19610 +.method public getCameraSetting()B
19613 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19618 +.method public getContactsSetting()B
19621 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19626 +.method public getDeviceId()Ljava/lang/String;
19633 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19637 + if-ne v3, v4, :cond_b
19639 + const-string v3, ""
19645 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19649 + if-ne v3, v4, :cond_62
19651 + new-instance v1, Ljava/util/Random;
19653 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
19655 + new-instance v3, Ljava/lang/StringBuilder;
19657 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19659 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
19661 + move-result-wide v4
19663 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
19665 + move-result-wide v4
19667 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
19669 + move-result-object v3
19671 + const-string v4, ""
19673 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19675 + move-result-object v3
19677 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19679 + move-result-object v2
19681 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19685 + if-le v3, v6, :cond_3b
19687 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19689 + move-result-object v3
19694 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19699 + const/16 v3, 0x10
19701 + if-gt v0, v3, :cond_5d
19703 + new-instance v3, Ljava/lang/StringBuilder;
19705 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19707 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19709 + move-result-object v3
19713 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
19717 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
19719 + move-result-object v3
19721 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19723 + move-result-object v2
19725 + add-int/lit8 v0, v0, 0x1
19730 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19732 + move-result-object v3
19737 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19742 +.method public getDeviceIdSetting()B
19745 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19750 +.method public getForceOnlineState()B
19753 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19758 +.method public getIccAccessSetting()B
19761 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19766 +.method public getIncomingCallsSetting()B
19769 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19774 +.method public getIntentBootCompletedSetting()B
19777 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19782 +.method public getIpTableProtectSetting()B
19785 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19790 +.method public getLine1Number()Ljava/lang/String;
19797 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19801 + if-ne v3, v4, :cond_b
19803 + const-string v3, ""
19809 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19813 + if-ne v3, v4, :cond_68
19815 + new-instance v1, Ljava/util/Random;
19817 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
19819 + new-instance v3, Ljava/lang/StringBuilder;
19821 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19823 + const-string v4, "+"
19825 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19827 + move-result-object v3
19829 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
19831 + move-result-wide v4
19833 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
19835 + move-result-wide v4
19837 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
19839 + move-result-object v3
19841 + const-string v4, ""
19843 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19845 + move-result-object v3
19847 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19849 + move-result-object v2
19851 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19855 + if-le v3, v6, :cond_41
19857 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19859 + move-result-object v3
19864 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19871 + if-gt v0, v3, :cond_63
19873 + new-instance v3, Ljava/lang/StringBuilder;
19875 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19877 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19879 + move-result-object v3
19883 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
19887 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
19889 + move-result-object v3
19891 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19893 + move-result-object v2
19895 + add-int/lit8 v0, v0, 0x1
19900 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19902 + move-result-object v3
19907 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19912 +.method public getLine1NumberSetting()B
19915 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19920 +.method public getLocationGpsLat()Ljava/lang/String;
19923 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19927 + if-ne v0, v1, :cond_8
19929 + const-string v0, ""
19935 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19939 + if-ne v0, v1, :cond_12
19941 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLat()Ljava/lang/String;
19943 + move-result-object v0
19948 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19953 +.method public getLocationGpsLon()Ljava/lang/String;
19956 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19960 + if-ne v0, v1, :cond_8
19962 + const-string v0, ""
19968 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19972 + if-ne v0, v1, :cond_12
19974 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLon()Ljava/lang/String;
19976 + move-result-object v0
19981 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19986 +.method public getLocationGpsSetting()B
19989 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19994 +.method public getLocationNetworkLat()Ljava/lang/String;
19997 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20001 + if-ne v0, v1, :cond_8
20003 + const-string v0, ""
20009 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20013 + if-ne v0, v1, :cond_12
20015 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLat()Ljava/lang/String;
20017 + move-result-object v0
20022 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20027 +.method public getLocationNetworkLon()Ljava/lang/String;
20030 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20034 + if-ne v0, v1, :cond_8
20036 + const-string v0, ""
20042 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20046 + if-ne v0, v1, :cond_12
20048 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLon()Ljava/lang/String;
20050 + move-result-object v0
20055 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20060 +.method public getLocationNetworkSetting()B
20063 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20068 +.method public getMmsSetting()B
20071 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
20076 +.method public getNetworkInfoSetting()B
20079 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
20084 +.method public getNotificationSetting()B
20087 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
20092 +.method public getOutgoingCallsSetting()B
20095 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
20100 +.method public getPackageName()Ljava/lang/String;
20103 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
20108 +.method public getPhoneCallSetting()B
20111 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
20116 +.method public getRecordAudioSetting()B
20119 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
20124 +.method public getSendMmsSetting()B
20127 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
20132 +.method public getSimInfoSetting()B
20135 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
20140 +.method public getSimSerialNumber()Ljava/lang/String;
20143 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20147 + if-ne v1, v2, :cond_8
20149 + const-string v1, ""
20155 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20159 + if-ne v1, v2, :cond_2e
20161 + new-instance v0, Ljava/util/Random;
20163 + invoke-direct {v0}, Ljava/util/Random;-><init>()V
20165 + new-instance v1, Ljava/lang/StringBuilder;
20167 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
20169 + invoke-virtual {v0}, Ljava/util/Random;->nextLong()J
20171 + move-result-wide v2
20173 + invoke-static {v2, v3}, Ljava/lang/Math;->abs(J)J
20175 + move-result-wide v2
20177 + invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20179 + move-result-object v1
20181 + const-string v2, ""
20183 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20185 + move-result-object v1
20187 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20189 + move-result-object v1
20194 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
20199 +.method public getSimSerialNumberSetting()B
20202 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20207 +.method public getSmsSendSetting()B
20210 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
20215 +.method public getSmsSetting()B
20218 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
20223 +.method public getSubscriberId()Ljava/lang/String;
20230 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20234 + if-ne v3, v4, :cond_b
20236 + const-string v3, ""
20242 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20246 + if-ne v3, v4, :cond_62
20248 + new-instance v1, Ljava/util/Random;
20250 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
20252 + new-instance v3, Ljava/lang/StringBuilder;
20254 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20256 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
20258 + move-result-wide v4
20260 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
20262 + move-result-wide v4
20264 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20266 + move-result-object v3
20268 + const-string v4, ""
20270 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20272 + move-result-object v3
20274 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20276 + move-result-object v2
20278 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20282 + if-le v3, v6, :cond_3b
20284 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20286 + move-result-object v3
20291 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20296 + const/16 v3, 0x10
20298 + if-gt v0, v3, :cond_5d
20300 + new-instance v3, Ljava/lang/StringBuilder;
20302 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20304 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20306 + move-result-object v3
20310 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
20314 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20316 + move-result-object v3
20318 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20320 + move-result-object v2
20322 + add-int/lit8 v0, v0, 0x1
20327 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20329 + move-result-object v3
20334 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
20339 +.method public getSubscriberIdSetting()B
20342 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20347 +.method public getSwitchConnectivitySetting()B
20350 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
20355 +.method public getSwitchWifiStateSetting()B
20358 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
20363 +.method public getSystemLogsSetting()B
20366 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
20371 +.method public getUid()I
20374 + iget v0, p0, Landroid/privacy/PrivacySettings;->uid:I
20379 +.method public getWifiInfoSetting()B
20382 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
20387 +.method public get_id()Ljava/lang/Integer;
20390 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
20395 +.method public setAccountsAuthTokensSetting(B)V
20398 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
20403 +.method public setAccountsSetting(B)V
20406 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
20411 +.method public setAddOnManagementSetting(B)V
20414 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
20419 +.method public setAllowedContacts([I)V
20422 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
20427 +.method public setAndroidID(Ljava/lang/String;)V
20430 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
20435 +.method public setAndroidIdSetting(B)V
20438 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
20443 +.method public setBookmarksSetting(B)V
20446 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
20451 +.method public setCalendarSetting(B)V
20454 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
20459 +.method public setCallLogSetting(B)V
20462 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
20467 +.method public setCameraSetting(B)V
20470 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
20475 +.method public setContactsSetting(B)V
20478 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
20483 +.method public setDeviceId(Ljava/lang/String;)V
20486 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
20491 +.method public setDeviceIdSetting(B)V
20494 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
20499 +.method public setForceOnlineState(B)V
20502 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
20507 +.method public setIccAccessSetting(B)V
20510 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
20515 +.method public setIncomingCallsSetting(B)V
20518 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
20523 +.method public setIntentBootCompletedSetting(B)V
20526 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
20531 +.method public setIpTableProtectSetting(B)V
20534 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
20539 +.method public setLine1Number(Ljava/lang/String;)V
20542 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
20547 +.method public setLine1NumberSetting(B)V
20550 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
20555 +.method public setLocationGpsLat(Ljava/lang/String;)V
20558 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
20563 +.method public setLocationGpsLon(Ljava/lang/String;)V
20566 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
20571 +.method public setLocationGpsSetting(B)V
20574 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20579 +.method public setLocationNetworkLat(Ljava/lang/String;)V
20582 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20587 +.method public setLocationNetworkLon(Ljava/lang/String;)V
20590 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20595 +.method public setLocationNetworkSetting(B)V
20598 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20603 +.method public setMmsSetting(B)V
20606 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
20611 +.method public setNetworkInfoSetting(B)V
20614 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
20619 +.method public setNotificationSetting(B)V
20622 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
20627 +.method public setOutgoingCallsSetting(B)V
20630 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
20635 +.method public setPackageName(Ljava/lang/String;)V
20638 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
20643 +.method public setPhoneCallSetting(B)V
20646 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
20651 +.method public setRecordAudioSetting(B)V
20654 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
20659 +.method public setSendMmsSetting(B)V
20662 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
20667 +.method public setSimInfoSetting(B)V
20670 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
20675 +.method public setSimSerialNumber(Ljava/lang/String;)V
20678 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
20683 +.method public setSimSerialNumberSetting(B)V
20686 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20691 +.method public setSmsSendSetting(B)V
20694 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
20699 +.method public setSmsSetting(B)V
20702 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
20707 +.method public setSubscriberId(Ljava/lang/String;)V
20710 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
20715 +.method public setSubscriberIdSetting(B)V
20718 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20723 +.method public setSwitchConnectivitySetting(B)V
20726 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
20731 +.method public setSwitchWifiStateSetting(B)V
20734 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
20739 +.method public setSystemLogsSetting(B)V
20742 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
20747 +.method public setUid(I)V
20750 + iput p1, p0, Landroid/privacy/PrivacySettings;->uid:I
20755 +.method public setWifiInfoSetting(B)V
20758 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
20763 +.method public toString()Ljava/lang/String;
20766 + new-instance v0, Ljava/lang/StringBuilder;
20768 + invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
20770 + const-string v1, "PrivacySettings [_id="
20772 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20774 + move-result-object v0
20776 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
20778 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
20780 + move-result-object v0
20782 + const-string v1, ", accountsAuthTokensSetting="
20784 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20786 + move-result-object v0
20788 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
20790 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20792 + move-result-object v0
20794 + const-string v1, ", accountsSetting="
20796 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20798 + move-result-object v0
20800 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
20802 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20804 + move-result-object v0
20806 + const-string v1, ", bookmarksSetting="
20808 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20810 + move-result-object v0
20812 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
20814 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20816 + move-result-object v0
20818 + const-string v1, ", calendarSetting="
20820 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20822 + move-result-object v0
20824 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
20826 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20828 + move-result-object v0
20830 + const-string v1, ", callLogSetting="
20832 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20834 + move-result-object v0
20836 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
20838 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20840 + move-result-object v0
20842 + const-string v1, ", contactsSetting="
20844 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20846 + move-result-object v0
20848 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
20850 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20852 + move-result-object v0
20854 + const-string v1, ", deviceId="
20856 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20858 + move-result-object v0
20860 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
20862 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20864 + move-result-object v0
20866 + const-string v1, ", deviceIdSetting="
20868 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20870 + move-result-object v0
20872 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
20874 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20876 + move-result-object v0
20878 + const-string v1, ", incomingCallsSetting="
20880 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20882 + move-result-object v0
20884 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
20886 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20888 + move-result-object v0
20890 + const-string v1, ", intentBootCompletedSetting="
20892 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20894 + move-result-object v0
20896 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
20898 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20900 + move-result-object v0
20902 + const-string v1, ", line1Number="
20904 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20906 + move-result-object v0
20908 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
20910 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20912 + move-result-object v0
20914 + const-string v1, ", line1NumberSetting="
20916 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20918 + move-result-object v0
20920 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
20922 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20924 + move-result-object v0
20926 + const-string v1, ", locationGpsLat="
20928 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20930 + move-result-object v0
20932 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
20934 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20936 + move-result-object v0
20938 + const-string v1, ", locationGpsLon="
20940 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20942 + move-result-object v0
20944 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
20946 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20948 + move-result-object v0
20950 + const-string v1, ", locationGpsSetting="
20952 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20954 + move-result-object v0
20956 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20958 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20960 + move-result-object v0
20962 + const-string v1, ", locationNetworkLat="
20964 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20966 + move-result-object v0
20968 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20970 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20972 + move-result-object v0
20974 + const-string v1, ", locationNetworkLon="
20976 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20978 + move-result-object v0
20980 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20982 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20984 + move-result-object v0
20986 + const-string v1, ", locationNetworkSetting="
20988 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20990 + move-result-object v0
20992 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20994 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20996 + move-result-object v0
20998 + const-string v1, ", mmsSetting="
21000 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21002 + move-result-object v0
21004 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
21006 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21008 + move-result-object v0
21010 + const-string v1, ", networkInfoSetting="
21012 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21014 + move-result-object v0
21016 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
21018 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21020 + move-result-object v0
21022 + const-string v1, ", notificationSetting="
21024 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21026 + move-result-object v0
21028 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
21030 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21032 + move-result-object v0
21034 + const-string v1, ", outgoingCallsSetting="
21036 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21038 + move-result-object v0
21040 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
21042 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21044 + move-result-object v0
21046 + const-string v1, ", packageName="
21048 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21050 + move-result-object v0
21052 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
21054 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21056 + move-result-object v0
21058 + const-string v1, ", simInfoSetting="
21060 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21062 + move-result-object v0
21064 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
21066 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21068 + move-result-object v0
21070 + const-string v1, ", simSerialNumber="
21072 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21074 + move-result-object v0
21076 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
21078 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21080 + move-result-object v0
21082 + const-string v1, ", simSerialNumberSetting="
21084 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21086 + move-result-object v0
21088 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
21090 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21092 + move-result-object v0
21094 + const-string v1, ", smsSetting="
21096 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21098 + move-result-object v0
21100 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
21102 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21104 + move-result-object v0
21106 + const-string v1, ", subscriberId="
21108 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21110 + move-result-object v0
21112 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
21114 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21116 + move-result-object v0
21118 + const-string v1, ", subscriberIdSetting="
21120 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21122 + move-result-object v0
21124 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
21126 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21128 + move-result-object v0
21130 + const-string v1, ", systemLogsSetting="
21132 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21134 + move-result-object v0
21136 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
21138 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21140 + move-result-object v0
21142 + const-string v1, ", uid="
21144 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21146 + move-result-object v0
21148 + iget v1, p0, Landroid/privacy/PrivacySettings;->uid:I
21150 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21152 + move-result-object v0
21154 + const-string v1, ", phoneCallSetting="
21156 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21158 + move-result-object v0
21160 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
21162 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21164 + move-result-object v0
21166 + const-string v1, ", smsSendSetting="
21168 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21170 + move-result-object v0
21172 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
21174 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21176 + move-result-object v0
21178 + const-string v1, ", recordAudioSetting="
21180 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21182 + move-result-object v0
21184 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
21186 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21188 + move-result-object v0
21190 + const-string v1, ", cameraSetting="
21192 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21194 + move-result-object v0
21196 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
21198 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21200 + move-result-object v0
21202 + const-string v1, ", ipTableProtectSetting="
21204 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21206 + move-result-object v0
21208 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
21210 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21212 + move-result-object v0
21214 + const-string v1, ", iccAccessSetting="
21216 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21218 + move-result-object v0
21220 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
21222 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21224 + move-result-object v0
21226 + const-string v1, ", addOnManagementSetting="
21228 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21230 + move-result-object v0
21232 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
21234 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21236 + move-result-object v0
21238 + const-string v1, ", android ID="
21240 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21242 + move-result-object v0
21244 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
21246 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21248 + move-result-object v0
21250 + const-string v1, ", androidIdSetting="
21252 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21254 + move-result-object v0
21256 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
21258 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21260 + move-result-object v0
21262 + const-string v1, ", wifiInfoSetting="
21264 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21266 + move-result-object v0
21268 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
21270 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21272 + move-result-object v0
21274 + const-string v1, ", switchConnectivitySetting="
21276 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21278 + move-result-object v0
21280 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
21282 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21284 + move-result-object v0
21286 + const-string v1, ", sendMmsSetting="
21288 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21290 + move-result-object v0
21292 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
21294 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21296 + move-result-object v0
21298 + const-string v1, ", forceOnlineState="
21300 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21302 + move-result-object v0
21304 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
21306 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21308 + move-result-object v0
21310 + const-string v1, ", switchWifiStateSetting="
21312 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21314 + move-result-object v0
21316 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
21318 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21320 + move-result-object v0
21322 + const-string v1, "]"
21324 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21326 + move-result-object v0
21328 + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
21330 + move-result-object v0
21335 +.method public writeToParcel(Landroid/os/Parcel;I)V
21338 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
21340 + if-nez v0, :cond_ef
21345 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeInt(I)V
21347 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
21349 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21351 + iget v0, p0, Landroid/privacy/PrivacySettings;->uid:I
21353 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeInt(I)V
21355 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
21357 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21359 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
21361 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21363 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
21365 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21367 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
21369 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21371 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
21373 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21375 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
21377 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21379 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
21381 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21383 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
21385 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21387 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
21389 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21391 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
21393 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21395 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
21397 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21399 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
21401 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21403 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
21405 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21407 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
21409 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21411 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
21413 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21415 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
21417 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21419 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
21421 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21423 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
21425 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21427 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
21429 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21431 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
21433 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21435 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
21437 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21439 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
21441 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21443 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
21445 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21447 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
21449 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21451 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
21453 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21455 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
21457 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21459 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
21461 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21463 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
21465 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21467 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
21469 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21471 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
21473 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21475 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
21477 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21479 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
21481 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeIntArray([I)V
21483 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
21485 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21487 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
21489 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21491 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
21493 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21495 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
21497 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21499 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
21501 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21503 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
21505 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21507 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
21509 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21511 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
21513 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21515 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
21517 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21519 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
21521 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21523 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
21525 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21527 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
21529 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21534 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
21536 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
21542 diff -Npru stock-framework/smali/android/privacy/PrivacySettingsStub.smali pdroid-framework/smali/android/privacy/PrivacySettingsStub.smali
21543 --- stock-framework/smali/android/privacy/PrivacySettingsStub.smali 1969-12-31 16:00:00.000000000 -0800
21544 +++ pdroid-framework/smali/android/privacy/PrivacySettingsStub.smali 2013-08-10 20:37:42.495213442 -0700
21546 +.class Landroid/privacy/PrivacySettingsStub;
21547 +.super Ljava/lang/Object;
21548 +.source "PrivacySettingsStub.java"
21552 +.field private static final isStub:Z = true
21556 +.method constructor <init>()V
21559 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
21573 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali
21574 --- stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali 1969-12-31 16:00:00.000000000 -0800
21575 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali 2013-08-10 20:37:42.499213442 -0700
21577 +.class Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
21578 +.super Ljava/lang/Object;
21579 +.source "PrivacyAccountManager.java"
21582 +.implements Landroid/accounts/AccountManagerFuture;
21586 +.annotation system Ldalvik/annotation/EnclosingClass;
21587 + value = Landroid/privacy/surrogate/PrivacyAccountManager;
21590 +.annotation system Ldalvik/annotation/InnerClass;
21591 + accessFlags = 0x2
21592 + name = "PrivacyAccountManagerFuture"
21595 +.annotation system Ldalvik/annotation/Signature;
21598 + "Ljava/lang/Object;",
21600 + "Ljava/lang/Object;",
21601 + "Landroid/accounts/AccountManagerFuture",
21608 +.field private result:Ljava/lang/Object;
21609 + .annotation system Ldalvik/annotation/Signature;
21616 +.field final synthetic this$0:Landroid/privacy/surrogate/PrivacyAccountManager;
21620 +.method public constructor <init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
21622 + .annotation system Ldalvik/annotation/Signature;
21628 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->this$0:Landroid/privacy/surrogate/PrivacyAccountManager;
21630 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
21632 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21639 +.method public cancel(Z)Z
21647 +.method public getResult()Ljava/lang/Object;
21649 + .annotation system Ldalvik/annotation/Signature;
21655 + .annotation system Ldalvik/annotation/Throws;
21657 + Landroid/accounts/OperationCanceledException;,
21658 + Ljava/io/IOException;,
21659 + Landroid/accounts/AuthenticatorException;
21663 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21668 +.method public getResult(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
21670 + .annotation system Ldalvik/annotation/Signature;
21673 + "Ljava/util/concurrent/TimeUnit;",
21678 + .annotation system Ldalvik/annotation/Throws;
21680 + Landroid/accounts/OperationCanceledException;,
21681 + Ljava/io/IOException;,
21682 + Landroid/accounts/AuthenticatorException;
21686 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21691 +.method public isCancelled()Z
21699 +.method public isDone()Z
21706 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali
21707 --- stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali 1969-12-31 16:00:00.000000000 -0800
21708 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali 2013-08-10 20:37:42.499213442 -0700
21710 +.class public final Landroid/privacy/surrogate/PrivacyAccountManager;
21711 +.super Landroid/accounts/AccountManager;
21712 +.source "PrivacyAccountManager.java"
21716 +.annotation system Ldalvik/annotation/MemberClasses;
21718 + Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
21724 +.field private static final TAG:Ljava/lang/String; = "PrivacyAccountManager"
21728 +.field private context:Landroid/content/Context;
21730 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
21734 +.method public constructor <init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
21737 + invoke-direct {p0, p1, p2}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
21739 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21741 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
21743 + const-string/jumbo v1, "privacy"
21745 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
21747 + move-result-object v1
21749 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
21751 + move-result-object v1
21753 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
21755 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21760 +.method public constructor <init>(Landroid/content/Context;Landroid/accounts/IAccountManager;Landroid/os/Handler;)V
21763 + invoke-direct {p0, p1, p2, p3}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;Landroid/os/Handler;)V
21765 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21767 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
21769 + const-string/jumbo v1, "privacy"
21771 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
21773 + move-result-object v1
21775 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
21777 + move-result-object v1
21779 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
21781 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21788 +.method public blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;
21790 + .annotation system Ldalvik/annotation/Throws;
21792 + Landroid/accounts/OperationCanceledException;,
21793 + Ljava/io/IOException;,
21794 + Landroid/accounts/AuthenticatorException;
21800 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21802 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21804 + move-result-object v1
21806 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21810 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21812 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21814 + move-result-object v6
21816 + if-eqz v6, :cond_23
21818 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
21822 + if-eqz v0, :cond_23
21826 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21830 + const-string v4, "authTokens"
21832 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21838 + invoke-super {p0, p1, p2, p3}, Landroid/accounts/AccountManager;->blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;
21840 + move-result-object v7
21842 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21846 + const-string v4, "authTokens"
21848 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21853 +.method public getAccounts()[Landroid/accounts/Account;
21860 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21862 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21864 + move-result-object v1
21866 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21870 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21872 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21874 + move-result-object v6
21876 + if-eqz v6, :cond_27
21878 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
21882 + if-eqz v0, :cond_27
21884 + const-string v8, "[empty accounts list]"
21886 + new-array v7, v3, [Landroid/accounts/Account;
21888 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21892 + const-string v4, "accountsList"
21894 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21900 + const-string v8, "[real value]"
21902 + invoke-super {p0}, Landroid/accounts/AccountManager;->getAccounts()[Landroid/accounts/Account;
21904 + move-result-object v7
21906 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21908 + const-string v4, "accountsList"
21910 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21915 +.method public getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
21922 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21924 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21926 + move-result-object v1
21928 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21932 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21934 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21936 + move-result-object v6
21938 + if-eqz v6, :cond_27
21940 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
21944 + if-eqz v0, :cond_27
21946 + const-string v8, "[empty accounts list]"
21948 + new-array v7, v3, [Landroid/accounts/Account;
21950 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21954 + const-string v4, "accountsList"
21956 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21962 + const-string v8, "[real value]"
21964 + invoke-super {p0, p1}, Landroid/accounts/AccountManager;->getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
21966 + move-result-object v7
21968 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21970 + const-string v4, "accountsList"
21972 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21977 +.method public getAccountsByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
21979 + .annotation system Ldalvik/annotation/Signature;
21982 + "Ljava/lang/String;",
21984 + "Ljava/lang/String;",
21985 + "Landroid/accounts/AccountManagerCallback",
21987 + "Landroid/accounts/Account;",
21989 + "Landroid/os/Handler;",
21991 + "Landroid/accounts/AccountManagerFuture",
21993 + "Landroid/accounts/Account;",
22002 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22004 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22006 + move-result-object v1
22008 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22012 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22014 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22016 + move-result-object v6
22018 + if-eqz v6, :cond_2c
22020 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
22024 + if-eqz v0, :cond_2c
22026 + const-string v8, "[false]"
22028 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22030 + new-array v0, v3, [Landroid/accounts/Account;
22032 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22034 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22038 + const-string v4, "accountsList"
22040 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22046 + const-string v8, "[real value]"
22048 + invoke-super {p0, p1, p2, p3, p4}, Landroid/accounts/AccountManager;->getAccountsByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22050 + move-result-object v7
22052 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22054 + const-string v4, "accountsList"
22056 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22061 +.method public getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22063 + .annotation system Ldalvik/annotation/Signature;
22066 + "Landroid/accounts/Account;",
22067 + "Ljava/lang/String;",
22068 + "Landroid/os/Bundle;",
22069 + "Landroid/app/Activity;",
22070 + "Landroid/accounts/AccountManagerCallback",
22072 + "Landroid/os/Bundle;",
22074 + "Landroid/os/Handler;",
22076 + "Landroid/accounts/AccountManagerFuture",
22078 + "Landroid/os/Bundle;",
22085 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22087 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22089 + move-result-object v1
22091 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22095 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22097 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22099 + move-result-object v6
22101 + if-eqz v6, :cond_2e
22103 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22107 + if-eqz v0, :cond_2e
22109 + const-string v8, "[empty]"
22111 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22113 + new-instance v0, Landroid/os/Bundle;
22115 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22117 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22119 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22123 + const-string v4, "authTokens"
22125 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22131 + const-string v8, "[real value]"
22133 + invoke-super/range {p0 .. p6}, Landroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22135 + move-result-object v7
22137 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22141 + const-string v4, "authTokens"
22143 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22148 +.method public getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22150 + .annotation system Ldalvik/annotation/Signature;
22153 + "Landroid/accounts/Account;",
22154 + "Ljava/lang/String;",
22156 + "Landroid/accounts/AccountManagerCallback",
22158 + "Landroid/os/Bundle;",
22160 + "Landroid/os/Handler;",
22162 + "Landroid/accounts/AccountManagerFuture",
22164 + "Landroid/os/Bundle;",
22171 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22173 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22175 + move-result-object v1
22177 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22181 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22183 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22185 + move-result-object v6
22187 + if-eqz v6, :cond_2e
22189 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22193 + if-eqz v0, :cond_2e
22195 + const-string v8, "[empty]"
22197 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22199 + new-instance v0, Landroid/os/Bundle;
22201 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22203 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22205 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22209 + const-string v4, "authTokens"
22211 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22217 + const-string v8, "[real value]"
22219 + invoke-super/range {p0 .. p5}, Landroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22221 + move-result-object v7
22223 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22227 + const-string v4, "authTokens"
22229 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22234 +.method public getAuthTokenByFeatures(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/app/Activity;Landroid/os/Bundle;Landroid/os/Bundle;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22236 + .annotation system Ldalvik/annotation/Signature;
22239 + "Ljava/lang/String;",
22240 + "Ljava/lang/String;",
22242 + "Ljava/lang/String;",
22243 + "Landroid/app/Activity;",
22244 + "Landroid/os/Bundle;",
22245 + "Landroid/os/Bundle;",
22246 + "Landroid/accounts/AccountManagerCallback",
22248 + "Landroid/os/Bundle;",
22250 + "Landroid/os/Handler;",
22252 + "Landroid/accounts/AccountManagerFuture",
22254 + "Landroid/os/Bundle;",
22259 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22261 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22263 + move-result-object v1
22265 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22269 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22271 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22273 + move-result-object v6
22275 + if-eqz v6, :cond_2e
22277 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22281 + if-eqz v0, :cond_2e
22283 + const-string v8, "[empty]"
22285 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22287 + new-instance v0, Landroid/os/Bundle;
22289 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22291 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22293 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22297 + const-string v4, "authTokens"
22301 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22307 + const-string v8, "[real value]"
22309 + invoke-super/range {p0 .. p8}, Landroid/accounts/AccountManager;->getAuthTokenByFeatures(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/app/Activity;Landroid/os/Bundle;Landroid/os/Bundle;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22311 + move-result-object v7
22313 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22317 + const-string v4, "authTokens"
22321 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22326 +.method public hasFeatures(Landroid/accounts/Account;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22328 + .annotation system Ldalvik/annotation/Signature;
22331 + "Landroid/accounts/Account;",
22333 + "Ljava/lang/String;",
22334 + "Landroid/accounts/AccountManagerCallback",
22336 + "Ljava/lang/Boolean;",
22338 + "Landroid/os/Handler;",
22340 + "Landroid/accounts/AccountManagerFuture",
22342 + "Ljava/lang/Boolean;",
22351 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22353 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22355 + move-result-object v1
22357 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22361 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22363 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22365 + move-result-object v6
22367 + if-eqz v6, :cond_2e
22369 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
22373 + if-eqz v0, :cond_2e
22375 + const-string v8, "[false]"
22377 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22379 + invoke-static {v3}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
22381 + move-result-object v0
22383 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22385 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22389 + const-string v4, "accountsList"
22391 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22397 + const-string v8, "[real value]"
22399 + invoke-super {p0, p1, p2, p3, p4}, Landroid/accounts/AccountManager;->hasFeatures(Landroid/accounts/Account;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22401 + move-result-object v7
22403 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22405 + const-string v4, "accountsList"
22407 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22411 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali
22412 --- stock-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali 1969-12-31 16:00:00.000000000 -0800
22413 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali 2013-08-10 20:37:42.503213441 -0700
22415 +.class public final Landroid/privacy/surrogate/PrivacyActivityManagerService;
22416 +.super Ljava/lang/Object;
22417 +.source "PrivacyActivityManagerService.java"
22421 +.field private static final DATA_SMS_RECEIVED_INTENT:Ljava/lang/String; = "android.intent.action.DATA_SMS_RECEIVED"
22423 +.field private static final SMS_RECEIVED_ACTION_INTENT:Ljava/lang/String; = "android.provider.Telephony.SMS_RECEIVED"
22425 +.field private static final TAG:Ljava/lang/String; = "PrivacyActivityManagerService"
22427 +.field private static final WAP_PUSH_RECEIVED_INTENT:Ljava/lang/String; = "android.provider.Telephony.WAP_PUSH_RECEIVED"
22429 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
22431 +.field private static tmpIn:Landroid/content/Intent;
22433 +.field private static tmpInHash:J
22435 +.field private static tmpInReceivers:I
22437 +.field private static tmpMms:Landroid/content/Intent;
22439 +.field private static tmpMmsHash:J
22441 +.field private static tmpMmsReceivers:I
22443 +.field private static tmpOut:Landroid/content/Intent;
22445 +.field private static tmpOutHash:J
22447 +.field private static tmpOutReceivers:I
22449 +.field private static tmpPackageAddedHash:J
22451 +.field private static tmpSms:Landroid/content/Intent;
22453 +.field private static tmpSmsHash:J
22455 +.field private static tmpSmsReceivers:I
22459 +.method static constructor <clinit>()V
22464 + const-wide/16 v0, 0x0
22466 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22468 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22470 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22472 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22474 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22476 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
22478 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
22480 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
22482 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
22487 +.method public constructor <init>()V
22490 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
22495 +.method public static enforcePrivacyPermission(Ljava/lang/String;ILandroid/content/Intent;Landroid/content/Context;I)V
22498 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22500 + if-nez v2, :cond_13
22502 + if-eqz p3, :cond_13
22504 + const-string/jumbo v2, "privacy"
22506 + move-object/from16 v0, p3
22508 + invoke-virtual {v0, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
22510 + move-result-object v2
22512 + check-cast v2, Landroid/privacy/PrivacySettingsManager;
22514 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22517 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22519 + if-nez v2, :cond_2c
22521 + if-nez p3, :cond_2c
22523 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
22527 + const-string/jumbo v4, "privacy"
22529 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
22531 + move-result-object v4
22533 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
22535 + move-result-object v4
22537 + invoke-direct {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
22539 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22542 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
22544 + move-result-object v16
22546 + const-string v2, "android.intent.action.NEW_OUTGOING_CALL"
22548 + move-object/from16 v0, v16
22550 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22554 + if-eqz v2, :cond_cc
22556 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22558 + move-object/from16 v0, p0
22560 + move/from16 v1, p1
22562 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22564 + move-result-object v8
22566 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22568 + move-object/from16 v0, p2
22570 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22572 + move-result-object v23
22574 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22576 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22578 + move-result-wide v4
22580 + cmp-long v2, v2, v4
22582 + if-eqz v2, :cond_66
22584 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22586 + move-result-object v2
22588 + check-cast v2, Landroid/content/Intent;
22590 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22592 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22594 + move-result-wide v2
22596 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22598 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22601 + if-eqz v8, :cond_93
22604 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getOutgoingCallsSetting()B
22608 + if-eqz v2, :cond_93
22610 + const-string v23, ""
22612 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22614 + move-object/from16 v0, p2
22616 + move-object/from16 v1, v23
22618 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22620 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22624 + const-string/jumbo v6, "outgoingCall"
22628 + move-object/from16 v3, p0
22630 + move/from16 v4, p1
22632 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22634 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_87} :catch_bd
22638 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22642 + if-le v2, v3, :cond_c8
22644 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22646 + add-int/lit8 v2, v2, -0x1
22648 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22656 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22658 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22660 + move-result-wide v4
22662 + cmp-long v2, v2, v4
22664 + if-nez v2, :cond_87
22666 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22668 + const-string v3, "android.intent.extra.PHONE_NUMBER"
22670 + invoke-virtual {v2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22672 + move-result-object v23
22674 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22676 + move-object/from16 v0, p2
22678 + move-object/from16 v1, v23
22680 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22682 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22686 + const-string/jumbo v6, "outgoingCall"
22690 + move-object/from16 v3, p0
22692 + move/from16 v4, p1
22694 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22696 + .catch Ljava/lang/Exception; {:try_start_93 .. :try_end_bc} :catch_bd
22701 + move-exception v20
22703 + const-string v2, "PrivacyActivityManagerService"
22705 + const-string v3, "failed to enforce intent broadcast permission"
22707 + move-object/from16 v0, v20
22709 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
22716 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22721 + const-string v2, "android.intent.action.PHONE_STATE"
22723 + move-object/from16 v0, v16
22725 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22729 + if-eqz v2, :cond_170
22731 + const-string v2, "incoming_number"
22733 + move-object/from16 v0, p2
22735 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22737 + move-result-object v23
22739 + if-eqz v23, :cond_92
22741 + invoke-virtual/range {v23 .. v23}, Ljava/lang/String;->isEmpty()Z
22745 + if-nez v2, :cond_92
22747 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22749 + move-object/from16 v0, p0
22751 + move/from16 v1, p1
22753 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22755 + move-result-object v8
22757 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22759 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22761 + move-result-wide v4
22763 + cmp-long v2, v2, v4
22765 + if-eqz v2, :cond_10a
22767 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22769 + move-result-object v2
22771 + check-cast v2, Landroid/content/Intent;
22773 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22775 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22777 + move-result-wide v2
22779 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22781 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22784 + if-eqz v8, :cond_137
22787 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
22791 + if-eqz v2, :cond_137
22793 + const-string v23, ""
22795 + const-string v2, "incoming_number"
22797 + move-object/from16 v0, p2
22799 + move-object/from16 v1, v23
22801 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22803 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22807 + const-string v6, "incomingCall"
22811 + move-object/from16 v3, p0
22813 + move/from16 v4, p1
22815 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22817 + .catch Ljava/lang/Exception; {:try_start_10c .. :try_end_12a} :catch_160
22821 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22825 + if-le v2, v3, :cond_16b
22827 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22829 + add-int/lit8 v2, v2, -0x1
22831 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22837 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22839 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22841 + move-result-wide v4
22843 + cmp-long v2, v2, v4
22845 + if-nez v2, :cond_12a
22847 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22849 + const-string v3, "incoming_number"
22851 + invoke-virtual {v2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22853 + move-result-object v23
22855 + const-string v2, "incoming_number"
22857 + move-object/from16 v0, p2
22859 + move-object/from16 v1, v23
22861 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22863 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22867 + const-string v6, "incomingCall"
22871 + move-object/from16 v3, p0
22873 + move/from16 v4, p1
22875 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22877 + .catch Ljava/lang/Exception; {:try_start_137 .. :try_end_15f} :catch_160
22882 + move-exception v20
22884 + const-string v2, "PrivacyActivityManagerService"
22886 + const-string v3, "failed to enforce intent broadcast permission"
22888 + move-object/from16 v0, v20
22890 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
22897 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22902 + const-string v2, "android.provider.Telephony.SMS_RECEIVED"
22904 + move-object/from16 v0, v16
22906 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22910 + if-eqz v2, :cond_253
22912 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22914 + move-object/from16 v0, p0
22916 + move/from16 v1, p1
22918 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22920 + move-result-object v8
22922 + const-string v23, "[real]"
22924 + const-string/jumbo v2, "pdus"
22926 + move-object/from16 v0, p2
22928 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
22930 + move-result-object v2
22932 + check-cast v2, [Ljava/lang/Object;
22934 + move-object/from16 v22, v2
22936 + check-cast v22, [Ljava/lang/Object;
22938 + if-eqz v22, :cond_1f8
22942 + aget-object v2, v22, v2
22944 + check-cast v2, [B
22946 + check-cast v2, [B
22948 + move-object/from16 v19, v2
22951 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22953 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22955 + move-result-wide v4
22957 + cmp-long v2, v2, v4
22959 + if-eqz v2, :cond_1ba
22961 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22963 + move-result-object v2
22965 + check-cast v2, Landroid/content/Intent;
22967 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
22969 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22971 + move-result-wide v2
22973 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22975 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
22978 + if-eqz v8, :cond_1fb
22981 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
22985 + if-eqz v2, :cond_1fb
22987 + const-string v23, "[empty]"
22991 + new-array v0, v2, [Ljava/lang/Object;
22993 + move-object/from16 v21, v0
22997 + const/16 v3, 0x10
22999 + new-array v3, v3, [B
23001 + fill-array-data v3, :array_3da
23003 + aput-object v3, v21, v2
23005 + const-string/jumbo v2, "pdus"
23007 + move-object/from16 v0, p2
23009 + move-object/from16 v1, v21
23011 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23013 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23017 + const-string/jumbo v6, "sms"
23021 + move-object/from16 v3, p0
23023 + move/from16 v4, p1
23025 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23027 + .catch Ljava/lang/Exception; {:try_start_1bc .. :try_end_1eb} :catch_240
23031 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23035 + if-le v2, v3, :cond_24e
23037 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23039 + add-int/lit8 v2, v2, -0x1
23041 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23046 + const/16 v19, 0x0
23052 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
23054 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23056 + move-result-wide v4
23058 + cmp-long v2, v2, v4
23060 + if-nez v2, :cond_1eb
23062 + const-string/jumbo v2, "pdus"
23064 + sget-object v3, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
23066 + const-string/jumbo v4, "pdus"
23068 + invoke-virtual {v3, v4}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23070 + move-result-object v3
23072 + move-object/from16 v0, p2
23074 + invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23076 + const-string/jumbo v2, "pdus"
23078 + move-object/from16 v0, p2
23080 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23082 + move-result-object v2
23084 + check-cast v2, [Ljava/lang/Object;
23086 + move-object v0, v2
23088 + check-cast v0, [Ljava/lang/Object;
23090 + move-object/from16 v22, v0
23092 + if-eqz v22, :cond_24b
23096 + aget-object v2, v22, v2
23098 + check-cast v2, [B
23100 + check-cast v2, [B
23102 + move-object/from16 v19, v2
23105 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23109 + const-string/jumbo v6, "sms"
23113 + move-object/from16 v3, p0
23115 + move/from16 v4, p1
23117 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23119 + .catch Ljava/lang/Exception; {:try_start_1fb .. :try_end_23f} :catch_240
23124 + move-exception v20
23126 + const-string v2, "PrivacyActivityManagerService"
23128 + const-string v3, "failed to enforce intent broadcast permission"
23130 + move-object/from16 v0, v20
23132 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23137 + const/16 v19, 0x0
23144 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
23149 + const-string v2, "android.provider.Telephony.WAP_PUSH_RECEIVED"
23151 + move-object/from16 v0, v16
23153 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23157 + if-nez v2, :cond_267
23159 + const-string v2, "android.intent.action.DATA_SMS_RECEIVED"
23161 + move-object/from16 v0, v16
23163 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23167 + if-eqz v2, :cond_340
23170 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23172 + move-object/from16 v0, p0
23174 + move/from16 v1, p1
23176 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23178 + move-result-object v8
23180 + const-string v23, "[real]"
23182 + const-string/jumbo v2, "pdus"
23184 + move-object/from16 v0, p2
23186 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23188 + move-result-object v2
23190 + check-cast v2, [Ljava/lang/Object;
23192 + move-object/from16 v22, v2
23194 + check-cast v22, [Ljava/lang/Object;
23196 + if-eqz v22, :cond_2e5
23200 + aget-object v2, v22, v2
23202 + check-cast v2, [B
23204 + check-cast v2, [B
23206 + move-object/from16 v19, v2
23209 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23211 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23213 + move-result-wide v4
23215 + cmp-long v2, v2, v4
23217 + if-eqz v2, :cond_2a7
23219 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
23221 + move-result-object v2
23223 + check-cast v2, Landroid/content/Intent;
23225 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23227 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23229 + move-result-wide v2
23231 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23233 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23236 + if-eqz v8, :cond_2e8
23239 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
23243 + if-eqz v2, :cond_2e8
23245 + const-string v23, "[empty]"
23249 + new-array v0, v2, [Ljava/lang/Object;
23251 + move-object/from16 v21, v0
23255 + const/16 v3, 0x10
23257 + new-array v3, v3, [B
23259 + fill-array-data v3, :array_3e6
23261 + aput-object v3, v21, v2
23263 + const-string/jumbo v2, "pdus"
23265 + move-object/from16 v0, p2
23267 + move-object/from16 v1, v21
23269 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23271 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23275 + const-string/jumbo v6, "mms"
23279 + move-object/from16 v3, p0
23281 + move/from16 v4, p1
23283 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23285 + .catch Ljava/lang/Exception; {:try_start_2a9 .. :try_end_2d8} :catch_32d
23289 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23293 + if-le v2, v3, :cond_33b
23295 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23297 + add-int/lit8 v2, v2, -0x1
23299 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23304 + const/16 v19, 0x0
23310 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23312 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23314 + move-result-wide v4
23316 + cmp-long v2, v2, v4
23318 + if-nez v2, :cond_2d8
23320 + const-string/jumbo v2, "pdus"
23322 + sget-object v3, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23324 + const-string/jumbo v4, "pdus"
23326 + invoke-virtual {v3, v4}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23328 + move-result-object v3
23330 + move-object/from16 v0, p2
23332 + invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23334 + const-string/jumbo v2, "pdus"
23336 + move-object/from16 v0, p2
23338 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23340 + move-result-object v2
23342 + check-cast v2, [Ljava/lang/Object;
23344 + move-object v0, v2
23346 + check-cast v0, [Ljava/lang/Object;
23348 + move-object/from16 v22, v0
23350 + if-eqz v22, :cond_338
23354 + aget-object v2, v22, v2
23356 + check-cast v2, [B
23358 + check-cast v2, [B
23360 + move-object/from16 v19, v2
23363 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23367 + const-string/jumbo v6, "mms"
23371 + move-object/from16 v3, p0
23373 + move/from16 v4, p1
23375 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23377 + .catch Ljava/lang/Exception; {:try_start_2e8 .. :try_end_32c} :catch_32d
23382 + move-exception v20
23384 + const-string v2, "PrivacyActivityManagerService"
23386 + const-string v3, "failed to enforce intent broadcast permission"
23388 + move-object/from16 v0, v20
23390 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23395 + const/16 v19, 0x0
23402 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23407 + const-string v2, "android.intent.action.BOOT_COMPLETED"
23409 + move-object/from16 v0, v16
23411 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23415 + if-eqz v2, :cond_38d
23417 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23419 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->setBootCompleted()V
23421 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23423 + move-object/from16 v0, p0
23425 + invoke-virtual {v2, v0}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
23427 + move-result-object v8
23429 + if-eqz v8, :cond_376
23431 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIntentBootCompletedSetting()B
23435 + if-eqz v2, :cond_376
23437 + const-string v2, "catchBootComplete"
23439 + move-object/from16 v0, p2
23441 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
23443 + sget-object v9, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23447 + const-string v13, "intentBootCompleted"
23453 + move-object/from16 v10, p0
23455 + move/from16 v11, p1
23457 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23462 + const-string v2, "android.intent.action.BOOT_COMPLETED"
23464 + move-object/from16 v0, p2
23466 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
23468 + sget-object v9, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23472 + const-string v13, "intentBootCompleted"
23478 + move-object/from16 v10, p0
23480 + move/from16 v11, p1
23482 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23487 + const-string v2, "android.intent.action.PACKAGE_ADDED"
23489 + move-object/from16 v0, v16
23491 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23495 + if-eqz v2, :cond_92
23497 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
23499 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23501 + move-result-wide v4
23503 + cmp-long v2, v2, v4
23505 + if-eqz v2, :cond_92
23507 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23509 + move-result-wide v2
23511 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
23513 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getData()Landroid/net/Uri;
23515 + move-result-object v2
23517 + invoke-virtual {v2}, Landroid/net/Uri;->getSchemeSpecificPart()Ljava/lang/String;
23519 + move-result-object v17
23521 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle;
23523 + move-result-object v2
23525 + const-string v3, "android.intent.extra.UID"
23527 + invoke-virtual {v2, v3}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I
23531 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23533 + move-object/from16 v0, v17
23535 + move/from16 v1, v18
23537 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23539 + move-result-object v8
23541 + if-eqz v8, :cond_92
23543 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getUid()I
23547 + move/from16 v0, v18
23549 + if-eq v2, v0, :cond_92
23551 + move/from16 v0, v18
23553 + invoke-virtual {v8, v0}, Landroid/privacy/PrivacySettings;->setUid(I)V
23555 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23557 + invoke-virtual {v2, v8}, Landroid/privacy/PrivacySettingsManager;->saveSettings(Landroid/privacy/PrivacySettings;)Z
23604 +.method private static hashCode(Landroid/content/Intent;)J
23607 + const-wide/16 v3, 0x0
23609 + const-string/jumbo v2, "privacy_hash"
23611 + invoke-virtual {p0, v2, v3, v4}, Landroid/content/Intent;->getLongExtra(Ljava/lang/String;J)J
23613 + move-result-wide v0
23615 + cmp-long v2, v0, v3
23617 + if-nez v2, :cond_1e
23619 + invoke-virtual {p0}, Landroid/content/Intent;->filterHashCode()I
23623 + int-to-long v2, v2
23625 + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
23627 + move-result-wide v4
23629 + add-long v0, v2, v4
23631 + const-string/jumbo v2, "privacy_hash"
23633 + invoke-virtual {p0, v2, v0, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent;
23638 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali
23639 --- stock-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali 1969-12-31 16:00:00.000000000 -0800
23640 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali 2013-08-10 20:37:42.503213441 -0700
23642 +.class public Landroid/privacy/surrogate/PrivacyConnectivityManager;
23643 +.super Landroid/net/ConnectivityManager;
23644 +.source "PrivacyConnectivityManager.java"
23648 +.field private static final P_TAG:Ljava/lang/String; = "PrivacyConnectivityManager"
23652 +.field private context:Landroid/content/Context;
23654 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
23658 +.method public constructor <init>(Landroid/net/IConnectivityManager;Landroid/content/Context;)V
23661 + invoke-direct {p0, p1}, Landroid/net/ConnectivityManager;-><init>(Landroid/net/IConnectivityManager;)V
23663 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23665 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
23667 + const-string/jumbo v1, "privacy"
23669 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
23671 + move-result-object v1
23673 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
23675 + move-result-object v1
23677 + invoke-direct {v0, p2, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
23679 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23681 + const-string v0, "PrivacyConnectivityManager"
23683 + new-instance v1, Ljava/lang/StringBuilder;
23685 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
23687 + const-string/jumbo v2, "now in constructor for package: "
23689 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
23691 + move-result-object v1
23693 + invoke-virtual {p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23695 + move-result-object v2
23697 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
23699 + move-result-object v1
23701 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
23703 + move-result-object v1
23705 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
23712 +.method public getActiveLinkProperties()Landroid/net/LinkProperties;
23719 + new-instance v7, Landroid/net/LinkProperties;
23721 + invoke-direct {v7}, Landroid/net/LinkProperties;-><init>()V
23723 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23725 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23727 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23729 + move-result-object v1
23731 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23735 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23737 + move-result-object v8
23739 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23741 + if-eqz v0, :cond_34
23743 + if-eqz v8, :cond_34
23745 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23749 + if-eqz v0, :cond_34
23751 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23753 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23755 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23757 + move-result-object v1
23761 + const-string/jumbo v4, "networkInfoCurrent"
23763 + move-object v6, v5
23765 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23771 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23773 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23775 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23777 + move-result-object v1
23781 + const-string/jumbo v4, "networkInfoCurrent"
23783 + move-object v6, v5
23785 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23787 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getActiveLinkProperties()Landroid/net/LinkProperties;
23789 + move-result-object v7
23794 +.method public getActiveNetworkInfo()Landroid/net/NetworkInfo;
23805 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23807 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23809 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23811 + move-result-object v1
23813 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23817 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23819 + move-result-object v8
23821 + new-instance v7, Landroid/net/NetworkInfo;
23823 + const-string v0, "MOBILE"
23825 + const-string v1, "UNKNOWN"
23827 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
23829 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23831 + if-eqz v0, :cond_31
23833 + if-eqz v8, :cond_31
23835 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
23839 + if-nez v0, :cond_31
23841 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
23843 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
23845 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
23848 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23850 + if-eqz v0, :cond_4d
23852 + if-eqz v8, :cond_4d
23854 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23858 + if-eqz v0, :cond_4d
23860 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23862 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23864 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23866 + move-result-object v1
23868 + const-string/jumbo v4, "networkInfoCurrent"
23870 + move-object v6, v5
23872 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23878 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23880 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23882 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23884 + move-result-object v1
23886 + const-string/jumbo v4, "networkInfoCurrent"
23890 + move-object v6, v5
23892 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23894 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
23896 + move-result-object v7
23901 +.method public getActiveNetworkInfoForUid(I)Landroid/net/NetworkInfo;
23912 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23914 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23916 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23918 + move-result-object v1
23920 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23924 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23926 + move-result-object v8
23928 + new-instance v7, Landroid/net/NetworkInfo;
23930 + const-string v0, "MOBILE"
23932 + const-string v1, "UNKNOWN"
23934 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
23936 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23938 + if-eqz v0, :cond_31
23940 + if-eqz v8, :cond_31
23942 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
23946 + if-nez v0, :cond_31
23948 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
23950 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
23952 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
23955 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23957 + if-eqz v0, :cond_4d
23959 + if-eqz v8, :cond_4d
23961 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23965 + if-eqz v0, :cond_4d
23967 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23969 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23971 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23973 + move-result-object v1
23975 + const-string/jumbo v4, "networkInfoCurrent"
23977 + move-object v6, v5
23979 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23985 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23987 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23989 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23991 + move-result-object v1
23993 + const-string/jumbo v4, "networkInfoCurrent"
23997 + move-object v6, v5
23999 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24001 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getActiveNetworkInfoForUid(I)Landroid/net/NetworkInfo;
24003 + move-result-object v7
24008 +.method public getAllNetworkInfo()[Landroid/net/NetworkInfo;
24019 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24021 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24023 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24025 + move-result-object v1
24027 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24031 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24033 + move-result-object v8
24035 + new-array v7, v3, [Landroid/net/NetworkInfo;
24037 + new-instance v0, Landroid/net/NetworkInfo;
24039 + const-string v1, "MOBILE"
24041 + const-string v4, "CONNECTED"
24043 + invoke-direct {v0, v6, v6, v1, v4}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24045 + aput-object v0, v7, v6
24047 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24049 + if-eqz v0, :cond_39
24051 + if-eqz v8, :cond_39
24053 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24057 + if-nez v0, :cond_39
24059 + aget-object v0, v7, v6
24061 + invoke-virtual {v0, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24063 + aget-object v0, v7, v6
24065 + sget-object v1, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24067 + invoke-virtual {v0, v1}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24070 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24072 + if-eqz v0, :cond_55
24074 + if-eqz v8, :cond_55
24076 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24080 + if-eqz v0, :cond_55
24082 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24084 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24086 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24088 + move-result-object v1
24090 + const-string/jumbo v4, "networkInfoCurrent"
24092 + move-object v6, v5
24094 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24100 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24102 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24104 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24106 + move-result-object v1
24108 + const-string/jumbo v4, "networkInfoCurrent"
24112 + move-object v6, v5
24114 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24116 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getAllNetworkInfo()[Landroid/net/NetworkInfo;
24118 + move-result-object v7
24123 +.method public getLinkProperties(I)Landroid/net/LinkProperties;
24130 + new-instance v7, Landroid/net/LinkProperties;
24132 + invoke-direct {v7}, Landroid/net/LinkProperties;-><init>()V
24134 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24136 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24138 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24140 + move-result-object v1
24142 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24146 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24148 + move-result-object v8
24150 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24152 + if-eqz v0, :cond_34
24154 + if-eqz v8, :cond_34
24156 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24160 + if-eqz v0, :cond_34
24162 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24164 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24166 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24168 + move-result-object v1
24172 + const-string/jumbo v4, "networkInfoCurrent"
24174 + move-object v6, v5
24176 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24182 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24184 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24186 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24188 + move-result-object v1
24192 + const-string/jumbo v4, "networkInfoCurrent"
24194 + move-object v6, v5
24196 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24198 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getLinkProperties(I)Landroid/net/LinkProperties;
24200 + move-result-object v7
24205 +.method public getMobileDataEnabled()Z
24214 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24216 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24218 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24220 + move-result-object v1
24222 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24226 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24228 + move-result-object v7
24230 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24232 + if-eqz v0, :cond_2f
24234 + if-eqz v7, :cond_2f
24236 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24240 + if-nez v0, :cond_2f
24242 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24244 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24246 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24248 + move-result-object v1
24250 + const-string/jumbo v4, "networkInfoCurrent"
24252 + move-object v6, v5
24254 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24260 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24262 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24264 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24266 + move-result-object v1
24270 + const-string/jumbo v4, "networkInfoCurrent"
24272 + move-object v6, v5
24274 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24276 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getMobileDataEnabled()Z
24283 +.method public getNetworkInfo(I)Landroid/net/NetworkInfo;
24294 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24296 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24298 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24300 + move-result-object v1
24302 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24306 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24308 + move-result-object v8
24310 + new-instance v7, Landroid/net/NetworkInfo;
24312 + const-string v0, "MOBILE"
24314 + const-string v1, "CONNECTED"
24316 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24318 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24320 + if-eqz v0, :cond_31
24322 + if-eqz v8, :cond_31
24324 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24328 + if-nez v0, :cond_31
24330 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24332 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24334 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24337 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24339 + if-eqz v0, :cond_4d
24341 + if-eqz v8, :cond_4d
24343 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24347 + if-eqz v0, :cond_4d
24349 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24351 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24353 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24355 + move-result-object v1
24357 + const-string/jumbo v4, "networkInfoCurrent"
24359 + move-object v6, v5
24361 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24367 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24369 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24371 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24373 + move-result-object v1
24375 + const-string/jumbo v4, "networkInfoCurrent"
24379 + move-object v6, v5
24381 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24383 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
24385 + move-result-object v7
24390 +.method public requestRouteToHost(II)Z
24401 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24403 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24405 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24407 + move-result-object v1
24409 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24413 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24415 + move-result-object v7
24417 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24419 + if-eqz v0, :cond_30
24421 + if-eqz v7, :cond_30
24423 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24427 + if-nez v0, :cond_30
24429 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24431 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24433 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24435 + move-result-object v1
24437 + const-string/jumbo v4, "networkInfoCurrent"
24439 + move-object v6, v5
24441 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24447 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24449 + if-eqz v0, :cond_4d
24451 + if-eqz v7, :cond_4d
24453 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24457 + if-eqz v0, :cond_4d
24459 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24461 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24463 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24465 + move-result-object v1
24467 + const-string/jumbo v4, "networkInfoCurrent"
24469 + move-object v6, v5
24471 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24478 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24480 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24482 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24484 + move-result-object v1
24486 + const-string/jumbo v4, "networkInfoCurrent"
24490 + move-object v6, v5
24492 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24494 + invoke-super {p0, p1, p2}, Landroid/net/ConnectivityManager;->requestRouteToHost(II)Z
24501 +.method public requestRouteToHostAddress(ILjava/net/InetAddress;)Z
24512 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24514 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24516 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24518 + move-result-object v1
24520 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24524 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24526 + move-result-object v7
24528 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24530 + if-eqz v0, :cond_30
24532 + if-eqz v7, :cond_30
24534 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24538 + if-nez v0, :cond_30
24540 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24542 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24544 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24546 + move-result-object v1
24548 + const-string/jumbo v4, "networkInfoCurrent"
24550 + move-object v6, v5
24552 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24558 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24560 + if-eqz v0, :cond_4d
24562 + if-eqz v7, :cond_4d
24564 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24568 + if-eqz v0, :cond_4d
24570 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24572 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24574 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24576 + move-result-object v1
24578 + const-string/jumbo v4, "networkInfoCurrent"
24580 + move-object v6, v5
24582 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24589 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24591 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24593 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24595 + move-result-object v1
24597 + const-string/jumbo v4, "networkInfoCurrent"
24601 + move-object v6, v5
24603 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24605 + invoke-super {p0, p1, p2}, Landroid/net/ConnectivityManager;->requestRouteToHostAddress(ILjava/net/InetAddress;)Z
24612 +.method public setMobileDataEnabled(Z)V
24619 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24621 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24623 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24625 + move-result-object v1
24627 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24631 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24633 + move-result-object v7
24635 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24637 + if-eqz v0, :cond_2f
24639 + if-eqz v7, :cond_2f
24641 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSwitchConnectivitySetting()B
24645 + if-eqz v0, :cond_2f
24647 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24649 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24651 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24653 + move-result-object v1
24657 + const-string/jumbo v4, "switchconnectivity"
24659 + move-object v6, v5
24661 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24667 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24669 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24671 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24673 + move-result-object v1
24677 + const-string/jumbo v4, "switchconnectivity"
24679 + move-object v6, v5
24681 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24683 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->setMobileDataEnabled(Z)V
24687 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali
24688 --- stock-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali 1969-12-31 16:00:00.000000000 -0800
24689 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali 2013-08-10 20:37:42.503213441 -0700
24691 +.class public final Landroid/privacy/surrogate/PrivacyContentResolver;
24692 +.super Ljava/lang/Object;
24693 +.source "PrivacyContentResolver.java"
24697 +.field private static final MMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "mms"
24699 +.field private static final MMS_SMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "mms-sms"
24701 +.field private static final SMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "sms"
24703 +.field private static final TAG:Ljava/lang/String; = "PrivacyContentResolver"
24705 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
24709 +.method public constructor <init>()V
24712 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
24717 +.method private static arrayToString([Ljava/lang/String;)Ljava/lang/String;
24720 + new-instance v4, Ljava/lang/StringBuffer;
24722 + invoke-direct {v4}, Ljava/lang/StringBuffer;-><init>()V
24724 + if-eqz p0, :cond_2d
24726 + move-object v0, p0
24728 + array-length v3, v0
24733 + if-ge v2, v3, :cond_30
24735 + aget-object v1, v0, v2
24737 + new-instance v5, Ljava/lang/StringBuilder;
24739 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
24741 + const-string v6, "["
24743 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24745 + move-result-object v5
24747 + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24749 + move-result-object v5
24751 + const-string v6, "]"
24753 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24755 + move-result-object v5
24757 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
24759 + move-result-object v5
24761 + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
24763 + add-int/lit8 v2, v2, 0x1
24768 + const-string v5, ""
24774 + invoke-virtual {v4}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
24776 + move-result-object v5
24781 +.method public static enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;)Landroid/database/Cursor;
24783 + .annotation system Ldalvik/annotation/Throws;
24785 + Landroid/os/RemoteException;
24789 + if-eqz p0, :cond_1db
24791 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24793 + if-nez v1, :cond_13
24795 + const-string/jumbo v1, "privacy"
24797 + move-object/from16 v0, p2
24799 + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
24801 + move-result-object v1
24803 + check-cast v1, Landroid/privacy/PrivacySettingsManager;
24805 + sput-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24808 + invoke-virtual/range {p2 .. p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24810 + move-result-object v2
24812 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24816 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24818 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24820 + move-result-object v7
24822 + invoke-virtual/range {p0 .. p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
24824 + move-result-object v9
24826 + const-string v15, "[real]"
24828 + move-object/from16 v13, p3
24830 + if-eqz v9, :cond_54
24832 + const-string v1, "contacts"
24834 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24838 + if-nez v1, :cond_3b
24840 + const-string v1, "com.android.contacts"
24842 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24846 + if-eqz v1, :cond_ab
24849 + if-eqz v7, :cond_54
24851 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
24857 + if-ne v1, v4, :cond_55
24859 + const-string v15, "[empty]"
24861 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
24863 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
24865 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24869 + const-string v5, "contacts"
24873 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24877 + return-object v13
24880 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
24886 + if-ne v1, v4, :cond_a1
24888 + invoke-virtual/range {p0 .. p0}, Landroid/net/Uri;->toString()Ljava/lang/String;
24890 + move-result-object v1
24892 + sget-object v4, Landroid/provider/ContactsContract$Contacts;->CONTENT_URI:Landroid/net/Uri;
24894 + invoke-virtual {v4}, Landroid/net/Uri;->toString()Ljava/lang/String;
24896 + move-result-object v4
24898 + invoke-virtual {v1, v4}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
24902 + if-eqz v1, :cond_a1
24906 + if-eqz p1, :cond_82
24908 + move-object/from16 v8, p1
24910 + array-length v12, v8
24915 + if-ge v10, v12, :cond_82
24917 + aget-object v16, v8, v10
24919 + const-string v1, "_id"
24921 + move-object/from16 v0, v16
24923 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24927 + if-eqz v1, :cond_93
24932 + if-nez v11, :cond_96
24934 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
24936 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
24939 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24943 + const-string v5, "contacts"
24947 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24952 + add-int/lit8 v10, v10, 0x1
24957 + new-instance v14, Landroid/privacy/surrogate/PrivacyCursor;
24959 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
24961 + move-result-object v1
24963 + invoke-direct {v14, v13, v1}, Landroid/privacy/surrogate/PrivacyCursor;-><init>(Landroid/database/Cursor;[I)V
24965 + move-object v13, v14
24970 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24974 + const-string v5, "contacts"
24978 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24983 + const-string v1, "com.android.calendar"
24985 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24989 + if-eqz v1, :cond_d8
24991 + if-eqz v7, :cond_cd
24993 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getCalendarSetting()B
24999 + if-ne v1, v4, :cond_cd
25001 + const-string v15, "[empty]"
25003 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25005 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25007 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25011 + const-string v5, "calendar"
25015 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25020 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25024 + const-string v5, "calendar"
25028 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25033 + const-string/jumbo v1, "mms"
25035 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25039 + if-eqz v1, :cond_109
25041 + if-eqz v7, :cond_fd
25043 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
25049 + if-ne v1, v4, :cond_fd
25051 + const-string v15, "[empty]"
25053 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25055 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25057 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25061 + const-string/jumbo v5, "mms"
25065 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25070 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25074 + const-string/jumbo v5, "mms"
25078 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25083 + const-string/jumbo v1, "sms"
25085 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25089 + if-eqz v1, :cond_13a
25091 + if-eqz v7, :cond_12e
25093 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
25099 + if-ne v1, v4, :cond_12e
25101 + const-string v15, "[empty]"
25103 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25105 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25107 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25111 + const-string/jumbo v5, "sms"
25115 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25120 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25124 + const-string/jumbo v5, "sms"
25128 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25133 + const-string/jumbo v1, "mms-sms"
25135 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25139 + if-nez v1, :cond_14c
25141 + const-string/jumbo v1, "mms-sms-v2"
25143 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25147 + if-eqz v1, :cond_17b
25150 + if-eqz v7, :cond_16f
25152 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
25158 + if-eq v1, v4, :cond_15c
25160 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
25166 + if-ne v1, v4, :cond_16f
25169 + const-string v15, "[empty]"
25171 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25173 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25175 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25179 + const-string/jumbo v5, "mmsSms"
25183 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25188 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25192 + const-string/jumbo v5, "mmsSms"
25196 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25201 + const-string v1, "call_log"
25203 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25207 + if-eqz v1, :cond_1a9
25209 + if-eqz v7, :cond_19e
25211 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getCallLogSetting()B
25217 + if-ne v1, v4, :cond_19e
25219 + const-string v15, "[empty]"
25221 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25223 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25225 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25229 + const-string v5, "callLog"
25233 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25238 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25242 + const-string v5, "callLog"
25246 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25251 + sget-object v1, Landroid/provider/Browser;->BOOKMARKS_URI:Landroid/net/Uri;
25253 + invoke-virtual {v1}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
25255 + move-result-object v1
25257 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25261 + if-eqz v1, :cond_54
25263 + if-eqz v7, :cond_1d0
25265 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getBookmarksSetting()B
25271 + if-ne v1, v4, :cond_1d0
25273 + const-string v15, "[empty]"
25275 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25277 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25279 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25283 + const-string v5, "bookmarks"
25287 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25292 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25296 + const-string v5, "bookmarks"
25300 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25305 + move-object/from16 v13, p3
25310 +.method public static enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;Z)Landroid/database/Cursor;
25312 + .annotation system Ldalvik/annotation/Throws;
25314 + Landroid/os/RemoteException;
25318 + if-eqz p0, :cond_dd
25320 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25322 + if-nez v1, :cond_13
25324 + const-string/jumbo v1, "privacy"
25326 + move-object/from16 v0, p2
25328 + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
25330 + move-result-object v1
25332 + check-cast v1, Landroid/privacy/PrivacySettingsManager;
25334 + sput-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25337 + invoke-virtual/range {p2 .. p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25339 + move-result-object v2
25341 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
25345 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25347 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
25349 + move-result-object v7
25351 + invoke-virtual {p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
25353 + move-result-object v9
25355 + const-string v14, "[real]"
25357 + move-object/from16 v13, p3
25359 + if-eqz v9, :cond_6d
25361 + const-string v1, "com.google.android.gsf.gservices"
25363 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25367 + if-eqz v1, :cond_6d
25369 + if-eqz v7, :cond_cb
25371 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
25375 + if-eqz v1, :cond_cb
25377 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getPosition()I
25381 + const/4 v11, -0x1
25387 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getCount()I
25391 + if-ge v12, v1, :cond_5d
25393 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->moveToNext()Z
25397 + move-object/from16 v0, p3
25399 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
25401 + move-result-object v1
25403 + const-string v4, "android_id"
25405 + invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25409 + if-eqz v1, :cond_6e
25411 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getPosition()I
25413 + .catchall {:try_start_41 .. :try_end_5c} :catchall_8b
25414 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_5c} :catch_71
25419 + move-object/from16 v0, p3
25421 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25425 + if-ne v11, v1, :cond_9e
25427 + const-string v1, "PrivacyContentResolver"
25429 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25431 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25435 + return-object v13
25438 + add-int/lit8 v12, v12, 0x1
25443 + move-exception v10
25446 + const-string v1, "PrivacyContentResolver"
25448 + const-string/jumbo v4, "something went wrong while getting blocked permission for android id"
25450 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
25452 + .catchall {:try_start_72 .. :try_end_7a} :catchall_8b
25454 + move-object/from16 v0, p3
25456 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25460 + if-ne v11, v1, :cond_9e
25462 + const-string v1, "PrivacyContentResolver"
25464 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25466 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25471 + move-exception v1
25473 + move-object/from16 v0, p3
25475 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25479 + if-ne v11, v4, :cond_9d
25481 + const-string v1, "PrivacyContentResolver"
25483 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25485 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25493 + const-string v1, "PrivacyContentResolver"
25495 + new-instance v4, Ljava/lang/StringBuilder;
25497 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
25499 + const-string/jumbo v5, "now blocking google access to android id and give fake cursor. forbidden_position: "
25501 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25503 + move-result-object v4
25505 + invoke-virtual {v4, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
25507 + move-result-object v4
25509 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25511 + move-result-object v4
25513 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25515 + const-string v14, "[fake]"
25517 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25519 + move-object/from16 v0, p3
25521 + invoke-direct {v13, v0, v11}, Landroid/privacy/surrogate/PrivacyCursor;-><init>(Landroid/database/Cursor;I)V
25523 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25527 + const-string/jumbo v5, "networkInfoSIM"
25531 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25536 + const-string v1, "PrivacyContentResolver"
25538 + const-string v4, "google is allowed to get real cursor"
25540 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25542 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25546 + const-string/jumbo v5, "networkInfoSIM"
25550 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25555 + move-object/from16 v13, p3
25559 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyCursor.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyCursor.smali
25560 --- stock-framework/smali/android/privacy/surrogate/PrivacyCursor.smali 1969-12-31 16:00:00.000000000 -0800
25561 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyCursor.smali 2013-08-10 20:37:42.503213441 -0700
25563 +.class public Landroid/privacy/surrogate/PrivacyCursor;
25564 +.super Ljava/lang/Object;
25565 +.source "PrivacyCursor.java"
25568 +.implements Landroid/database/Cursor;
25572 +.field private static final TAG:Ljava/lang/String; = "PrivacyCursor"
25574 +.field private static final mask:[Ljava/lang/String;
25578 +.field private allowedIdMapping:[I
25580 +.field private allowedIds:[I
25582 +.field private blockedColumnAndroidID:I
25584 +.field private googleCursor:Z
25586 +.field private realCursor:Landroid/database/Cursor;
25590 +.method static constructor <clinit>()V
25593 + const/16 v0, 0x10
25595 + new-array v0, v0, [Ljava/lang/String;
25599 + const-string v2, "0"
25601 + aput-object v2, v0, v1
25605 + const-string v2, "1"
25607 + aput-object v2, v0, v1
25611 + const-string v2, "2"
25613 + aput-object v2, v0, v1
25617 + const-string v2, "3"
25619 + aput-object v2, v0, v1
25623 + const-string v2, "4"
25625 + aput-object v2, v0, v1
25629 + const-string v2, "5"
25631 + aput-object v2, v0, v1
25635 + const-string v2, "6"
25637 + aput-object v2, v0, v1
25641 + const-string v2, "7"
25643 + aput-object v2, v0, v1
25647 + const-string v2, "8"
25649 + aput-object v2, v0, v1
25653 + const-string v2, "9"
25655 + aput-object v2, v0, v1
25659 + const-string v2, "a"
25661 + aput-object v2, v0, v1
25665 + const-string v2, "b"
25667 + aput-object v2, v0, v1
25671 + const-string v2, "c"
25673 + aput-object v2, v0, v1
25677 + const-string v2, "d"
25679 + aput-object v2, v0, v1
25683 + const-string v2, "e"
25685 + aput-object v2, v0, v1
25689 + const-string v2, "f"
25691 + aput-object v2, v0, v1
25693 + sput-object v0, Landroid/privacy/surrogate/PrivacyCursor;->mask:[Ljava/lang/String;
25698 +.method public constructor <init>()V
25701 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25706 +.method public constructor <init>(Landroid/database/Cursor;I)V
25709 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25711 + const/16 v0, -0xb
25713 + if-ne p2, v0, :cond_28
25717 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25720 + iput p2, p0, Landroid/privacy/surrogate/PrivacyCursor;->blockedColumnAndroidID:I
25724 + iput-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
25726 + const-string v0, "PrivacyCursor"
25728 + new-instance v1, Ljava/lang/StringBuilder;
25730 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
25732 + const-string v2, "constructor is ready for google cursor! forbidden_position: "
25734 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25736 + move-result-object v1
25738 + invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
25740 + move-result-object v1
25742 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25744 + move-result-object v1
25746 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25751 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25756 +.method public constructor <init>(Landroid/database/Cursor;[I)V
25759 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25761 + if-eqz p2, :cond_8
25763 + array-length v2, p2
25765 + if-nez v2, :cond_9
25771 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25773 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIds:[I
25775 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25777 + if-eqz v2, :cond_3f
25779 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25781 + invoke-interface {v2}, Landroid/database/Cursor;->getPosition()I
25785 + array-length v2, p2
25787 + new-array v2, v2, [I
25789 + iput-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25795 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25797 + invoke-interface {v2}, Landroid/database/Cursor;->moveToNext()Z
25801 + if-eqz v2, :cond_3a
25803 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25805 + invoke-direct {p0, v2}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
25809 + if-eqz v2, :cond_1d
25811 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25813 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25815 + invoke-interface {v3}, Landroid/database/Cursor;->getPosition()I
25821 + add-int/lit8 v1, v1, 0x1
25826 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25828 + invoke-interface {v2, v0}, Landroid/database/Cursor;->moveToPosition(I)Z
25834 +.method private getContactId(Landroid/database/Cursor;)I
25837 + const-string v2, "_id"
25839 + invoke-interface {p1, v2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
25847 + if-eq v0, v2, :cond_e
25849 + invoke-interface {p1, v0}, Landroid/database/Cursor;->getInt(I)I
25857 +.method private getFakeID()Ljava/lang/String;
25861 + new-instance v3, Ljava/util/Random;
25863 + invoke-direct {v3}, Ljava/util/Random;-><init>()V
25865 + const-string v2, ""
25870 + const/16 v4, 0x10
25872 + if-ge v1, v4, :cond_34
25874 + new-instance v4, Ljava/lang/StringBuilder;
25876 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
25878 + invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25880 + move-result-object v4
25882 + sget-object v5, Landroid/privacy/surrogate/PrivacyCursor;->mask:[Ljava/lang/String;
25886 + invoke-virtual {v3, v6}, Ljava/util/Random;->nextInt(I)I
25890 + aget-object v5, v5, v6
25892 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25894 + move-result-object v4
25896 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25898 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_26} :catch_2a
25900 + move-result-object v2
25902 + add-int/lit8 v1, v1, 0x1
25907 + move-exception v0
25909 + const-string v4, "PrivacyCursor"
25911 + const-string/jumbo v5, "something went wrong with creating fake ID"
25913 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
25921 +.method private getMappedPos(I)I
25927 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25929 + array-length v1, v1
25931 + if-ge v0, v1, :cond_10
25933 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25937 + if-ne v1, p1, :cond_d
25943 + add-int/lit8 v0, v0, 0x1
25953 +.method private isAllowed(I)Z
25958 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIds:[I
25960 + array-length v3, v0
25965 + if-ge v2, v3, :cond_c
25969 + if-ne p1, v1, :cond_d
25977 + add-int/lit8 v2, v2, 0x1
25982 +.method private isAllowed(Landroid/database/Cursor;)Z
25985 + invoke-direct {p0, p1}, Landroid/privacy/surrogate/PrivacyCursor;->getContactId(Landroid/database/Cursor;)I
25989 + invoke-direct {p0, v0}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(I)Z
25998 +.method public close()V
26001 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26003 + if-eqz v0, :cond_9
26005 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26007 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
26013 +.method public copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
26016 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26018 + if-eqz v0, :cond_9
26020 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26022 + invoke-interface {v0, p1, p2}, Landroid/database/Cursor;->copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
26028 +.method public deactivate()V
26031 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26033 + if-eqz v0, :cond_9
26035 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26037 + invoke-interface {v0}, Landroid/database/Cursor;->deactivate()V
26043 +.method public getBlob(I)[B
26046 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26048 + if-eqz v0, :cond_b
26050 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26052 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getBlob(I)[B
26054 + move-result-object v0
26062 + new-array v0, v0, [B
26067 +.method public getColumnCount()I
26070 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26072 + if-eqz v0, :cond_b
26074 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26076 + invoke-interface {v0}, Landroid/database/Cursor;->getColumnCount()I
26089 +.method public getColumnIndex(Ljava/lang/String;)I
26092 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26094 + if-eqz v0, :cond_b
26096 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26098 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
26111 +.method public getColumnIndexOrThrow(Ljava/lang/String;)I
26113 + .annotation system Ldalvik/annotation/Throws;
26115 + Ljava/lang/IllegalArgumentException;
26119 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26121 + if-eqz v0, :cond_b
26123 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26125 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
26138 +.method public getColumnName(I)Ljava/lang/String;
26141 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26143 + if-eqz v0, :cond_b
26145 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26147 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnName(I)Ljava/lang/String;
26149 + move-result-object v0
26155 + const-string v0, ""
26160 +.method public getColumnNames()[Ljava/lang/String;
26163 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26165 + if-eqz v0, :cond_b
26167 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26169 + invoke-interface {v0}, Landroid/database/Cursor;->getColumnNames()[Ljava/lang/String;
26171 + move-result-object v0
26179 + new-array v0, v0, [Ljava/lang/String;
26183 + const-string v2, ""
26185 + aput-object v2, v0, v1
26190 +.method public getCount()I
26193 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26195 + if-eqz v0, :cond_2b
26197 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26199 + if-eqz v0, :cond_2b
26201 + iget-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26203 + if-nez v0, :cond_2b
26205 + const-string v0, "PrivacyCursor"
26207 + new-instance v1, Ljava/lang/StringBuilder;
26209 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
26211 + const-string v2, "getCount: "
26213 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26215 + move-result-object v1
26217 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26219 + array-length v2, v2
26221 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26223 + move-result-object v1
26225 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26227 + move-result-object v1
26229 + invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26231 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26233 + array-length v0, v0
26239 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26241 + if-eqz v0, :cond_36
26243 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26245 + invoke-interface {v0}, Landroid/database/Cursor;->getCount()I
26257 +.method public getDouble(I)D
26260 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26262 + if-eqz v0, :cond_b
26264 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26266 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getDouble(I)D
26268 + move-result-wide v0
26274 + const-wide/16 v0, 0x0
26279 +.method public getExtras()Landroid/os/Bundle;
26282 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26284 + if-eqz v0, :cond_b
26286 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26288 + invoke-interface {v0}, Landroid/database/Cursor;->getExtras()Landroid/os/Bundle;
26290 + move-result-object v0
26296 + new-instance v0, Landroid/os/Bundle;
26298 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
26303 +.method public getFloat(I)F
26306 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26308 + if-eqz v0, :cond_b
26310 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26312 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getFloat(I)F
26325 +.method public getInt(I)I
26328 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26330 + if-eqz v1, :cond_b
26332 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26334 + invoke-interface {v1, p1}, Landroid/database/Cursor;->getInt(I)I
26347 +.method public getLong(I)J
26350 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26352 + if-eqz v0, :cond_b
26354 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26356 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getLong(I)J
26358 + move-result-wide v0
26364 + const-wide/16 v0, 0x0
26369 +.method public getPosition()I
26372 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26374 + if-eqz v1, :cond_3f
26376 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26378 + if-eqz v1, :cond_3f
26380 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26382 + if-nez v1, :cond_3f
26384 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26386 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26390 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->getMappedPos(I)I
26394 + const-string v1, "PrivacyCursor"
26396 + new-instance v2, Ljava/lang/StringBuilder;
26398 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
26400 + const-string v3, "getPosition - mapped position: "
26402 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26404 + move-result-object v2
26406 + invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26408 + move-result-object v2
26410 + const-string v3, " real position: "
26412 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26414 + move-result-object v2
26416 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26418 + invoke-interface {v3}, Landroid/database/Cursor;->getPosition()I
26422 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26424 + move-result-object v2
26426 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26428 + move-result-object v2
26430 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26436 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26438 + if-eqz v1, :cond_4a
26440 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26442 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26454 +.method public getShort(I)S
26457 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26459 + if-eqz v0, :cond_b
26461 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26463 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getShort(I)S
26476 +.method public getString(I)Ljava/lang/String;
26479 + iget-boolean v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26481 + if-eqz v4, :cond_63
26485 + if-ne p1, v4, :cond_63
26487 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26489 + invoke-interface {v4}, Landroid/database/Cursor;->getPosition()I
26493 + iget v5, p0, Landroid/privacy/surrogate/PrivacyCursor;->blockedColumnAndroidID:I
26495 + if-ne v4, v5, :cond_63
26497 + const-string v4, "PrivacyCursor"
26499 + const-string v5, "google tries to get android_id with getString()"
26501 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26503 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyCursor;->getFakeID()Ljava/lang/String;
26505 + move-result-object v2
26507 + if-eqz v2, :cond_58
26510 + new-instance v3, Ljava/math/BigInteger;
26512 + const/16 v4, 0x10
26514 + invoke-direct {v3, v2, v4}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;I)V
26516 + invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
26518 + move-result-object v1
26520 + const-string v4, "PrivacyCursor"
26522 + new-instance v5, Ljava/lang/StringBuilder;
26524 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
26526 + const-string/jumbo v6, "returned : "
26528 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26530 + move-result-object v5
26532 + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26534 + move-result-object v5
26536 + const-string v6, "(String) as fake android id"
26538 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26540 + move-result-object v5
26542 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26544 + move-result-object v5
26546 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26548 + .catch Ljava/lang/Exception; {:try_start_1e .. :try_end_48} :catch_49
26554 + move-exception v0
26556 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
26558 + const-string v4, "PrivacyCursor"
26560 + const-string/jumbo v5, "returned \"\" as android_id"
26562 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26564 + const-string v1, ""
26569 + const-string v4, "PrivacyCursor"
26571 + const-string/jumbo v5, "returned \"\" as android_id"
26573 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26575 + const-string v1, ""
26580 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26582 + if-eqz v4, :cond_6e
26584 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26586 + invoke-interface {v4, p1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
26588 + move-result-object v1
26593 + const-string v1, ""
26598 +.method public getType(I)I
26601 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26603 + if-eqz v0, :cond_b
26605 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26607 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getType(I)I
26615 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26622 +.method public getWantsAllOnMoveCalls()Z
26625 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26627 + if-eqz v0, :cond_b
26629 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26631 + invoke-interface {v0}, Landroid/database/Cursor;->getWantsAllOnMoveCalls()Z
26644 +.method public isAfterLast()Z
26647 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26649 + if-eqz v0, :cond_b
26651 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26653 + invoke-interface {v0}, Landroid/database/Cursor;->isAfterLast()Z
26666 +.method public isBeforeFirst()Z
26669 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26671 + if-eqz v0, :cond_b
26673 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26675 + invoke-interface {v0}, Landroid/database/Cursor;->isBeforeFirst()Z
26688 +.method public isClosed()Z
26691 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26693 + if-eqz v0, :cond_b
26695 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26697 + invoke-interface {v0}, Landroid/database/Cursor;->isClosed()Z
26710 +.method public isFirst()Z
26715 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26717 + if-eqz v1, :cond_1b
26719 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26721 + if-eqz v1, :cond_1b
26723 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26725 + if-nez v1, :cond_1b
26727 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26729 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26733 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26737 + if-ne v1, v2, :cond_1a
26746 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26748 + if-eqz v1, :cond_1a
26750 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26752 + invoke-interface {v0}, Landroid/database/Cursor;->isFirst()Z
26759 +.method public isLast()Z
26762 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26764 + if-eqz v0, :cond_1f
26766 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26768 + if-eqz v0, :cond_1f
26770 + iget-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26772 + if-nez v0, :cond_1f
26774 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26776 + invoke-interface {v0}, Landroid/database/Cursor;->getPosition()I
26780 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26782 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26784 + array-length v2, v2
26786 + add-int/lit8 v2, v2, -0x1
26790 + if-ne v0, v1, :cond_2a
26798 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26800 + if-eqz v0, :cond_2a
26802 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26804 + invoke-interface {v0}, Landroid/database/Cursor;->isLast()Z
26816 +.method public isNull(I)Z
26819 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26821 + if-eqz v0, :cond_b
26823 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26825 + invoke-interface {v0, p1}, Landroid/database/Cursor;->isNull(I)Z
26838 +.method public move(I)Z
26843 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26845 + if-eqz v3, :cond_3e
26847 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26849 + if-eqz v3, :cond_3e
26851 + iget-boolean v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26853 + if-nez v3, :cond_3e
26855 + const-string v3, "PrivacyCursor"
26857 + new-instance v4, Ljava/lang/StringBuilder;
26859 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
26861 + const-string/jumbo v5, "move - offset: "
26863 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26865 + move-result-object v4
26867 + invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26869 + move-result-object v4
26871 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26873 + move-result-object v4
26875 + invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26878 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26880 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26882 + invoke-interface {v4}, Landroid/database/Cursor;->getPosition()I
26886 + invoke-direct {p0, v4}, Landroid/privacy/surrogate/PrivacyCursor;->getMappedPos(I)I
26890 + add-int/2addr v4, p1
26894 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26896 + invoke-interface {v3, v1}, Landroid/database/Cursor;->moveToPosition(I)Z
26898 + .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_26 .. :try_end_3a} :catch_3c
26907 + move-exception v0
26912 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26914 + if-eqz v3, :cond_3b
26916 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26918 + invoke-interface {v3, p1}, Landroid/database/Cursor;->move(I)Z
26923 +.method public moveToFirst()Z
26928 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26930 + if-eqz v1, :cond_18
26932 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26934 + if-eqz v1, :cond_18
26936 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26938 + if-nez v1, :cond_18
26940 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26942 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26946 + invoke-interface {v1, v2}, Landroid/database/Cursor;->moveToPosition(I)Z
26955 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26957 + if-eqz v1, :cond_17
26959 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26961 + invoke-interface {v1}, Landroid/database/Cursor;->moveToFirst()Z
26968 +.method public moveToLast()Z
26971 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26973 + if-eqz v1, :cond_1c
26975 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26977 + if-eqz v1, :cond_1c
26979 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26981 + if-nez v1, :cond_1c
26983 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26985 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26987 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26989 + array-length v3, v3
26991 + add-int/lit8 v3, v3, -0x1
26995 + invoke-interface {v1, v2}, Landroid/database/Cursor;->moveToPosition(I)Z
27003 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27005 + if-eqz v1, :cond_27
27007 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27009 + invoke-interface {v1}, Landroid/database/Cursor;->moveToLast()Z
27021 +.method public moveToNext()Z
27026 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27028 + if-eqz v1, :cond_29
27030 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27032 + if-eqz v1, :cond_29
27034 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27036 + if-nez v1, :cond_29
27038 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27040 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27044 + if-nez v1, :cond_16
27056 + if-ne v0, v1, :cond_15
27058 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27060 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
27064 + if-nez v1, :cond_15
27066 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27068 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27075 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27077 + if-eqz v1, :cond_15
27079 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27081 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27088 +.method public moveToPosition(I)Z
27093 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27095 + if-eqz v2, :cond_1a
27097 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27099 + if-eqz v2, :cond_1a
27101 + iget-boolean v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27103 + if-nez v2, :cond_1a
27106 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27108 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27112 + invoke-interface {v2, v3}, Landroid/database/Cursor;->moveToPosition(I)Z
27114 + .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_d .. :try_end_16} :catch_18
27123 + move-exception v0
27128 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27130 + if-eqz v2, :cond_17
27132 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27134 + invoke-interface {v2, p1}, Landroid/database/Cursor;->moveToPosition(I)Z
27141 +.method public moveToPrevious()Z
27146 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27148 + if-eqz v1, :cond_29
27150 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27152 + if-eqz v1, :cond_29
27154 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27156 + if-nez v1, :cond_29
27158 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27160 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27164 + if-nez v1, :cond_16
27176 + if-ne v0, v1, :cond_15
27178 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27180 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
27184 + if-nez v1, :cond_15
27186 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27188 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27195 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27197 + if-eqz v1, :cond_15
27199 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27201 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27208 +.method public registerContentObserver(Landroid/database/ContentObserver;)V
27211 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27213 + if-eqz v0, :cond_9
27215 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27217 + invoke-interface {v0, p1}, Landroid/database/Cursor;->registerContentObserver(Landroid/database/ContentObserver;)V
27223 +.method public registerDataSetObserver(Landroid/database/DataSetObserver;)V
27226 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27228 + if-eqz v0, :cond_9
27230 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27232 + invoke-interface {v0, p1}, Landroid/database/Cursor;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
27238 +.method public requery()Z
27241 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27243 + if-eqz v0, :cond_b
27245 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27247 + invoke-interface {v0}, Landroid/database/Cursor;->requery()Z
27260 +.method public respond(Landroid/os/Bundle;)Landroid/os/Bundle;
27263 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27265 + if-eqz v0, :cond_b
27267 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27269 + invoke-interface {v0, p1}, Landroid/database/Cursor;->respond(Landroid/os/Bundle;)Landroid/os/Bundle;
27271 + move-result-object v0
27277 + new-instance v0, Landroid/os/Bundle;
27279 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
27284 +.method public setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
27287 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27289 + if-eqz v0, :cond_9
27291 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27293 + invoke-interface {v0, p1, p2}, Landroid/database/Cursor;->setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
27299 +.method public unregisterContentObserver(Landroid/database/ContentObserver;)V
27302 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27304 + if-eqz v0, :cond_9
27306 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27308 + invoke-interface {v0, p1}, Landroid/database/Cursor;->unregisterContentObserver(Landroid/database/ContentObserver;)V
27314 +.method public unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
27317 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27319 + if-eqz v0, :cond_9
27321 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27323 + invoke-interface {v0, p1}, Landroid/database/Cursor;->unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
27328 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali
27329 --- stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali 1969-12-31 16:00:00.000000000 -0800
27330 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali 2013-08-10 20:37:42.503213441 -0700
27332 +.class Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27333 +.super Ljava/lang/Thread;
27334 +.source "PrivacyLocationManager.java"
27338 +.annotation system Ldalvik/annotation/EnclosingClass;
27339 + value = Landroid/privacy/surrogate/PrivacyLocationManager;
27342 +.annotation system Ldalvik/annotation/InnerClass;
27343 + accessFlags = 0x2
27344 + name = "PrivacyLocationUpdater"
27349 +.field private intent:Landroid/app/PendingIntent;
27351 +.field private latitude:D
27353 +.field private listener:Landroid/location/LocationListener;
27355 +.field private longitude:D
27357 +.field private provider:Ljava/lang/String;
27359 +.field final synthetic this$0:Landroid/privacy/surrogate/PrivacyLocationManager;
27363 +.method public constructor <init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
27366 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->this$0:Landroid/privacy/surrogate/PrivacyLocationManager;
27368 + invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
27370 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27372 + iput-object p3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27374 + iput-object p4, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27376 + iput-wide p5, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->latitude:D
27378 + iput-wide p7, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->longitude:D
27385 +.method public run()V
27388 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27390 + if-eqz v3, :cond_43
27392 + new-instance v2, Landroid/location/Location;
27394 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27396 + invoke-direct {v2, v3}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
27398 + iget-wide v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->latitude:D
27400 + invoke-virtual {v2, v3, v4}, Landroid/location/Location;->setLatitude(D)V
27402 + iget-wide v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->longitude:D
27404 + invoke-virtual {v2, v3, v4}, Landroid/location/Location;->setLongitude(D)V
27411 + if-ge v1, v3, :cond_43
27413 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27415 + if-eqz v3, :cond_34
27417 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27419 + invoke-interface {v3, v2}, Landroid/location/LocationListener;->onLocationChanged(Landroid/location/Location;)V
27424 + invoke-static {}, Ljava/lang/Math;->random()D
27426 + move-result-wide v3
27428 + const-wide v5, 0x408f400000000000L
27430 + mul-double/2addr v3, v5
27432 + double-to-int v3, v3
27434 + int-to-long v3, v3
27436 + invoke-static {v3, v4}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->sleep(J)V
27438 + .catch Ljava/lang/InterruptedException; {:try_start_22 .. :try_end_31} :catch_3e
27441 + add-int/lit8 v1, v1, 0x1
27446 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27448 + if-eqz v3, :cond_22
27450 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27452 + invoke-virtual {v3}, Landroid/app/PendingIntent;->cancel()V
27457 + move-exception v0
27459 + invoke-virtual {v0}, Ljava/lang/InterruptedException;->printStackTrace()V
27466 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali
27467 --- stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali 1969-12-31 16:00:00.000000000 -0800
27468 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali 2013-08-10 20:37:42.507213441 -0700
27470 +.class public final Landroid/privacy/surrogate/PrivacyLocationManager;
27471 +.super Landroid/location/LocationManager;
27472 +.source "PrivacyLocationManager.java"
27476 +.annotation system Ldalvik/annotation/MemberClasses;
27478 + Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27484 +.field private static final CUSTOM_LOCATION_UPDATE_COUNT:I = 0x5
27486 +.field private static final TAG:Ljava/lang/String; = "PrivacyLocationManager"
27490 +.field private context:Landroid/content/Context;
27492 +.field private lock:Ljava/lang/Object;
27494 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
27498 +.method public constructor <init>(Landroid/location/ILocationManager;Landroid/content/Context;)V
27501 + invoke-direct {p0, p2, p1}, Landroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
27503 + new-instance v0, Ljava/lang/Object;
27505 + invoke-direct {v0}, Ljava/lang/Object;-><init>()V
27507 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->lock:Ljava/lang/Object;
27509 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
27511 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
27513 + const-string/jumbo v1, "privacy"
27515 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
27517 + move-result-object v1
27519 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
27521 + move-result-object v1
27523 + invoke-direct {v0, p2, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
27525 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27530 +.method private requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27535 + if-nez p1, :cond_5
27543 + invoke-virtual {p1}, Landroid/location/Criteria;->getAccuracy()I
27549 + if-eq v0, v1, :cond_24
27551 + invoke-virtual {p1}, Landroid/location/Criteria;->getBearingAccuracy()I
27555 + if-eq v0, v2, :cond_24
27557 + invoke-virtual {p1}, Landroid/location/Criteria;->getHorizontalAccuracy()I
27561 + if-eq v0, v2, :cond_24
27563 + invoke-virtual {p1}, Landroid/location/Criteria;->getVerticalAccuracy()I
27567 + if-eq v0, v2, :cond_24
27569 + invoke-virtual {p1}, Landroid/location/Criteria;->getSpeedAccuracy()I
27573 + if-ne v0, v2, :cond_2b
27576 + const-string v0, "gps"
27578 + invoke-direct {p0, v0, p2, p3}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27585 + const-string/jumbo v0, "network"
27587 + invoke-direct {p0, v0, p2, p3}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27594 +.method private requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27597 + move-object/from16 v0, p0
27599 + iget-object v0, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->lock:Ljava/lang/Object;
27601 + move-object/from16 v19, v0
27603 + monitor-enter v19
27606 + move-object/from16 v0, p0
27608 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
27610 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
27612 + move-result-object v2
27614 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
27618 + move-object/from16 v0, p0
27620 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27622 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
27624 + move-result-object v7
27626 + const/16 v18, 0x0
27628 + if-eqz v7, :cond_239
27630 + const-string v1, "gps"
27632 + move-object/from16 v0, p1
27634 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
27638 + if-eqz v1, :cond_111
27640 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
27644 + packed-switch v1, :pswitch_data_25e
27653 + move-object/from16 v0, p0
27655 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27659 + const-string v5, "locationGPS"
27663 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27668 + move-exception v1
27672 + .catchall {:try_start_7 .. :try_end_40} :catchall_3e
27677 + if-eqz p3, :cond_46
27680 + invoke-virtual/range {p3 .. p3}, Landroid/app/PendingIntent;->cancel()V
27683 + const/16 v18, 0x1
27685 + move-object/from16 v0, p0
27687 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27691 + const-string v5, "locationGPS"
27695 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27697 + .catchall {:try_start_43 .. :try_end_53} :catchall_3e
27703 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27705 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27707 + move-result-object v1
27709 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27711 + move-result-wide v13
27713 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27715 + move-result-object v1
27717 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27719 + move-result-wide v15
27721 + move-object/from16 v9, p0
27723 + move-object/from16 v10, p1
27725 + move-object/from16 v11, p2
27727 + move-object/from16 v12, p3
27729 + invoke-direct/range {v8 .. v16}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;-><init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
27731 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27733 + .catchall {:try_start_54 .. :try_end_74} :catchall_3e
27734 + .catch Ljava/lang/NumberFormatException; {:try_start_54 .. :try_end_74} :catch_a6
27736 + const/16 v18, 0x1
27740 + move-object/from16 v0, p0
27742 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27746 + const-string v5, "locationGPS"
27748 + new-instance v6, Ljava/lang/StringBuilder;
27750 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
27752 + const-string v8, "Lat: "
27754 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27756 + move-result-object v6
27758 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27760 + move-result-object v8
27762 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27764 + move-result-object v6
27766 + const-string v8, " Lon: "
27768 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27770 + move-result-object v6
27772 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27774 + move-result-object v8
27776 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27778 + move-result-object v6
27780 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
27782 + move-result-object v6
27784 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27789 + move-exception v17
27791 + const-string v1, "PrivacyLocationManager"
27793 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
27795 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
27797 + .catchall {:try_start_76 .. :try_end_af} :catchall_3e
27799 + const/16 v18, 0x1
27805 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27807 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27809 + move-result-object v1
27811 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27813 + move-result-wide v13
27815 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27817 + move-result-object v1
27819 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27821 + move-result-wide v15
27823 + move-object/from16 v9, p0
27825 + move-object/from16 v10, p1
27827 + move-object/from16 v11, p2
27829 + move-object/from16 v12, p3
27831 + invoke-direct/range {v8 .. v16}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;-><init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
27833 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27835 + .catchall {:try_start_b2 .. :try_end_d2} :catchall_3e
27836 + .catch Ljava/lang/NumberFormatException; {:try_start_b2 .. :try_end_d2} :catch_105
27838 + const/16 v18, 0x1
27842 + move-object/from16 v0, p0
27844 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27848 + const-string v5, "locationGPS"
27850 + new-instance v6, Ljava/lang/StringBuilder;
27852 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
27854 + const-string v8, "Lat: "
27856 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27858 + move-result-object v6
27860 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27862 + move-result-object v8
27864 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27866 + move-result-object v6
27868 + const-string v8, " Lon: "
27870 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27872 + move-result-object v6
27874 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27876 + move-result-object v8
27878 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27880 + move-result-object v6
27882 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
27884 + move-result-object v6
27886 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27891 + move-exception v17
27893 + const-string v1, "PrivacyLocationManager"
27895 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
27897 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
27899 + const/16 v18, 0x1
27904 + const-string/jumbo v1, "network"
27906 + move-object/from16 v0, p1
27908 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
27912 + if-eqz v1, :cond_204
27914 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
27918 + packed-switch v1, :pswitch_data_26a
27923 + move-object/from16 v0, p0
27925 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27929 + const-string v5, "locationNetwork"
27933 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27938 + if-eqz p3, :cond_137
27940 + invoke-virtual/range {p3 .. p3}, Landroid/app/PendingIntent;->cancel()V
27943 + const/16 v18, 0x1
27945 + move-object/from16 v0, p0
27947 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27951 + const-string v5, "locationNetwork"
27955 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27957 + .catchall {:try_start_d4 .. :try_end_144} :catchall_3e
27963 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27965 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
27967 + move-result-object v1
27969 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27971 + move-result-wide v13
27973 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
27975 + move-result-object v1
27977 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27979 + move-result-wide v15
27981 + move-object/from16 v9, p0
27983 + move-object/from16 v10, p1
27985 + move-object/from16 v11, p2
27987 + move-object/from16 v12, p3
27989 + invoke-direct/range {v8 .. v16}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;-><init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
27991 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27993 + .catchall {:try_start_146 .. :try_end_166} :catchall_3e
27994 + .catch Ljava/lang/NumberFormatException; {:try_start_146 .. :try_end_166} :catch_199
27996 + const/16 v18, 0x1
28000 + move-object/from16 v0, p0
28002 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28006 + const-string v5, "locationNetwork"
28008 + new-instance v6, Ljava/lang/StringBuilder;
28010 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
28012 + const-string v8, "Lat: "
28014 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28016 + move-result-object v6
28018 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28020 + move-result-object v8
28022 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28024 + move-result-object v6
28026 + const-string v8, " Lon: "
28028 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28030 + move-result-object v6
28032 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28034 + move-result-object v8
28036 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28038 + move-result-object v6
28040 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28042 + move-result-object v6
28044 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28049 + move-exception v17
28051 + const-string v1, "PrivacyLocationManager"
28053 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28055 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28057 + .catchall {:try_start_168 .. :try_end_1a2} :catchall_3e
28059 + const/16 v18, 0x1
28065 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
28067 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28069 + move-result-object v1
28071 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28073 + move-result-wide v13
28075 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28077 + move-result-object v1
28079 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28081 + move-result-wide v15
28083 + move-object/from16 v9, p0
28085 + move-object/from16 v10, p1
28087 + move-object/from16 v11, p2
28089 + move-object/from16 v12, p3
28091 + invoke-direct/range {v8 .. v16}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;-><init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
28093 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
28095 + .catchall {:try_start_1a5 .. :try_end_1c5} :catchall_3e
28096 + .catch Ljava/lang/NumberFormatException; {:try_start_1a5 .. :try_end_1c5} :catch_1f8
28098 + const/16 v18, 0x1
28102 + move-object/from16 v0, p0
28104 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28108 + const-string v5, "locationNetwork"
28110 + new-instance v6, Ljava/lang/StringBuilder;
28112 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
28114 + const-string v8, "Lat: "
28116 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28118 + move-result-object v6
28120 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28122 + move-result-object v8
28124 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28126 + move-result-object v6
28128 + const-string v8, " Lon: "
28130 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28132 + move-result-object v6
28134 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28136 + move-result-object v8
28138 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28140 + move-result-object v6
28142 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28144 + move-result-object v6
28146 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28151 + move-exception v17
28153 + const-string v1, "PrivacyLocationManager"
28155 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28157 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28159 + const/16 v18, 0x1
28164 + const-string/jumbo v1, "passive"
28166 + move-object/from16 v0, p1
28168 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28172 + if-eqz v1, :cond_30
28174 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28178 + if-nez v1, :cond_22a
28180 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28184 + if-nez v1, :cond_22a
28186 + const/16 v18, 0x0
28188 + move-object/from16 v0, p0
28190 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28194 + const-string v5, "locationGPS"
28198 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28203 + const/16 v18, 0x1
28205 + move-object/from16 v0, p0
28207 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28211 + const-string v5, "locationGPS"
28215 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28220 + const-string/jumbo v1, "network"
28222 + move-object/from16 v0, p1
28224 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28228 + if-eqz v1, :cond_251
28230 + move-object/from16 v0, p0
28232 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28236 + const-string v5, "locationNetwork"
28240 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28245 + move-object/from16 v0, p0
28247 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28251 + const-string v5, "locationGPS"
28255 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28257 + .catchall {:try_start_1c7 .. :try_end_25c} :catchall_3e
28261 + :pswitch_data_25e
28262 + .packed-switch 0x0
28267 + .end packed-switch
28269 + :pswitch_data_26a
28270 + .packed-switch 0x0
28275 + .end packed-switch
28280 +.method public addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z
28287 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28289 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
28291 + move-result-object v1
28293 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
28297 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28299 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
28301 + move-result-object v6
28303 + if-eqz v6, :cond_24
28305 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28309 + if-eqz v0, :cond_24
28311 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28315 + const-string v4, "locationGPS"
28317 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28325 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28327 + const-string v4, "locationGPS"
28331 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28333 + invoke-super {p0, p1}, Landroid/location/LocationManager;->addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z
28340 +.method public getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28353 + if-nez p1, :cond_c
28355 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28357 + move-result-object v7
28364 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28366 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
28368 + move-result-object v1
28370 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
28374 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28376 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
28378 + move-result-object v6
28382 + if-eqz v6, :cond_22c
28384 + const-string v0, "gps"
28386 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28390 + if-eqz v0, :cond_ff
28392 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28396 + packed-switch v0, :pswitch_data_29a
28401 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28403 + move-result-object v7
28405 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28407 + const-string v4, "locationGPS"
28409 + if-eqz v7, :cond_5e
28411 + new-instance v5, Ljava/lang/StringBuilder;
28413 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28415 + const-string v8, "Lat: "
28417 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28419 + move-result-object v5
28421 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28423 + move-result-wide v8
28425 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28427 + move-result-object v5
28429 + const-string v8, " Lon: "
28431 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28433 + move-result-object v5
28435 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28437 + move-result-wide v8
28439 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28441 + move-result-object v5
28443 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28445 + move-result-object v5
28448 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28453 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28455 + const-string v4, "locationGPS"
28459 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28464 + new-instance v7, Landroid/location/Location;
28466 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28468 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28470 + move-result-object v0
28472 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28474 + move-result-wide v3
28476 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28478 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28480 + move-result-object v0
28482 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28484 + move-result-wide v3
28486 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28488 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28490 + const-string v4, "locationGPS"
28492 + new-instance v3, Ljava/lang/StringBuilder;
28494 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28496 + const-string v5, "Lat: "
28498 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28500 + move-result-object v3
28502 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28504 + move-result-wide v8
28506 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28508 + move-result-object v3
28510 + const-string v5, " Lon: "
28512 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28514 + move-result-object v3
28516 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28518 + move-result-wide v8
28520 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28522 + move-result-object v3
28524 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28526 + move-result-object v5
28530 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28535 + new-instance v7, Landroid/location/Location;
28537 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28539 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28541 + move-result-object v0
28543 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28545 + move-result-wide v3
28547 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28549 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28551 + move-result-object v0
28553 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28555 + move-result-wide v3
28557 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28559 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28561 + const-string v4, "locationGPS"
28563 + new-instance v3, Ljava/lang/StringBuilder;
28565 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28567 + const-string v5, "Lat: "
28569 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28571 + move-result-object v3
28573 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28575 + move-result-wide v8
28577 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28579 + move-result-object v3
28581 + const-string v5, " Lon: "
28583 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28585 + move-result-object v3
28587 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28589 + move-result-wide v8
28591 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28593 + move-result-object v3
28595 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28597 + move-result-object v5
28601 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28606 + const-string/jumbo v0, "network"
28608 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28612 + if-eqz v0, :cond_1e3
28614 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28618 + packed-switch v0, :pswitch_data_2a6
28623 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28625 + move-result-object v7
28627 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28629 + const-string v4, "locationNetwork"
28631 + if-eqz v7, :cond_140
28633 + new-instance v5, Ljava/lang/StringBuilder;
28635 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28637 + const-string v8, "Lat: "
28639 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28641 + move-result-object v5
28643 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28645 + move-result-wide v8
28647 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28649 + move-result-object v5
28651 + const-string v8, " Lon: "
28653 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28655 + move-result-object v5
28657 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28659 + move-result-wide v8
28661 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28663 + move-result-object v5
28665 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28667 + move-result-object v5
28670 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28675 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28677 + const-string v4, "locationNetwork"
28681 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28686 + new-instance v7, Landroid/location/Location;
28688 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28690 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28692 + move-result-object v0
28694 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28696 + move-result-wide v3
28698 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28700 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28702 + move-result-object v0
28704 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28706 + move-result-wide v3
28708 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28710 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28712 + const-string v4, "locationNetwork"
28714 + new-instance v3, Ljava/lang/StringBuilder;
28716 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28718 + const-string v5, "Lat: "
28720 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28722 + move-result-object v3
28724 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28726 + move-result-wide v8
28728 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28730 + move-result-object v3
28732 + const-string v5, " Lon: "
28734 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28736 + move-result-object v3
28738 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28740 + move-result-wide v8
28742 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28744 + move-result-object v3
28746 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28748 + move-result-object v5
28752 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28757 + new-instance v7, Landroid/location/Location;
28759 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28761 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28763 + move-result-object v0
28765 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28767 + move-result-wide v3
28769 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28771 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28773 + move-result-object v0
28775 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28777 + move-result-wide v3
28779 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28781 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28783 + const-string v4, "locationNetwork"
28785 + new-instance v3, Ljava/lang/StringBuilder;
28787 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28789 + const-string v5, "Lat: "
28791 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28793 + move-result-object v3
28795 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28797 + move-result-wide v8
28799 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28801 + move-result-object v3
28803 + const-string v5, " Lon: "
28805 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28807 + move-result-object v3
28809 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28811 + move-result-wide v8
28813 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28815 + move-result-object v3
28817 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28819 + move-result-object v5
28823 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28828 + const-string/jumbo v0, "passive"
28830 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28834 + if-eqz v0, :cond_b
28836 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28840 + if-nez v0, :cond_b
28842 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28846 + if-nez v0, :cond_b
28848 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28850 + move-result-object v7
28852 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28854 + const-string v4, "locationGPS"
28856 + if-eqz v7, :cond_227
28858 + new-instance v5, Ljava/lang/StringBuilder;
28860 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28862 + const-string v8, "Lat: "
28864 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28866 + move-result-object v5
28868 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28870 + move-result-wide v8
28872 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28874 + move-result-object v5
28876 + const-string v8, " Lon: "
28878 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28880 + move-result-object v5
28882 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28884 + move-result-wide v8
28886 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28888 + move-result-object v5
28890 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28892 + move-result-object v5
28895 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28900 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28902 + move-result-object v7
28904 + const-string/jumbo v0, "network"
28906 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28910 + if-eqz v0, :cond_269
28912 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28914 + const-string v4, "locationNetwork"
28916 + if-eqz v7, :cond_264
28918 + new-instance v5, Ljava/lang/StringBuilder;
28920 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28922 + const-string v8, "Lat: "
28924 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28926 + move-result-object v5
28928 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28930 + move-result-wide v8
28932 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28934 + move-result-object v5
28936 + const-string v8, " Lon: "
28938 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28940 + move-result-object v5
28942 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28944 + move-result-wide v8
28946 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28948 + move-result-object v5
28950 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28952 + move-result-object v5
28955 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28960 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28962 + const-string v4, "locationGPS"
28964 + if-eqz v7, :cond_294
28966 + new-instance v5, Ljava/lang/StringBuilder;
28968 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28970 + const-string v8, "Lat: "
28972 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28974 + move-result-object v5
28976 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28978 + move-result-wide v8
28980 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28982 + move-result-object v5
28984 + const-string v8, " Lon: "
28986 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28988 + move-result-object v5
28990 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28992 + move-result-wide v8
28994 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28996 + move-result-object v5
28998 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29000 + move-result-object v5
29003 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29009 + :pswitch_data_29a
29010 + .packed-switch 0x0
29015 + .end packed-switch
29017 + :pswitch_data_2a6
29018 + .packed-switch 0x0
29023 + .end packed-switch
29026 +.method public getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29029 + if-nez p1, :cond_7
29031 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29033 + move-result-object v0
29040 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29042 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
29044 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29046 + move-result-object v3
29048 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29052 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29054 + move-result-object v1
29058 + if-eqz v1, :cond_5f
29060 + const-string v2, "gps"
29062 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29066 + if-eqz v2, :cond_2f
29068 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29072 + packed-switch v2, :pswitch_data_64
29078 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29080 + move-result-object v0
29085 + const-string/jumbo v2, "network"
29087 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29091 + if-eqz v2, :cond_45
29093 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29097 + packed-switch v2, :pswitch_data_70
29103 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29105 + move-result-object v0
29110 + const-string/jumbo v2, "passive"
29112 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29116 + if-eqz v2, :cond_6
29118 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29122 + if-eqz v2, :cond_5a
29124 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29128 + if-nez v2, :cond_6
29131 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29133 + move-result-object v0
29138 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29140 + move-result-object v0
29145 + .packed-switch 0x0
29150 + .end packed-switch
29153 + .packed-switch 0x0
29158 + .end packed-switch
29161 +.method public isProviderEnabled(Ljava/lang/String;)Z
29164 + if-nez p1, :cond_7
29166 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29176 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29178 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
29180 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29182 + move-result-object v3
29184 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29188 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29190 + move-result-object v1
29194 + if-eqz v1, :cond_65
29196 + const-string v2, "gps"
29198 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29202 + if-eqz v2, :cond_31
29204 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29208 + packed-switch v2, :pswitch_data_6a
29213 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29225 + const-string/jumbo v2, "network"
29227 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29231 + if-eqz v2, :cond_49
29233 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29237 + packed-switch v2, :pswitch_data_76
29242 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29254 + const-string/jumbo v2, "passive"
29256 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29260 + if-eqz v2, :cond_6
29262 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29266 + if-eqz v2, :cond_5e
29268 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29272 + if-nez v2, :cond_63
29275 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29287 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29294 + .packed-switch 0x0
29299 + .end packed-switch
29302 + .packed-switch 0x0
29307 + .end packed-switch
29310 +.method public requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29313 + if-eqz p4, :cond_4
29315 + if-nez p5, :cond_8
29318 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29327 + invoke-direct {p0, p4, v0, p5}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29331 + if-nez v0, :cond_7
29333 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29338 +.method public requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29341 + if-eqz p4, :cond_4
29343 + if-nez p5, :cond_8
29346 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29355 + invoke-direct {p0, p4, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29359 + if-nez v0, :cond_7
29361 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29366 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29369 + if-eqz p1, :cond_4
29371 + if-nez p5, :cond_8
29374 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29383 + invoke-direct {p0, p1, v0, p5}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29387 + if-nez v0, :cond_7
29389 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29394 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29397 + if-eqz p1, :cond_4
29399 + if-nez p5, :cond_8
29402 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29411 + invoke-direct {p0, p1, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29415 + if-nez v0, :cond_7
29417 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29422 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29425 + if-eqz p1, :cond_4
29427 + if-nez p5, :cond_8
29430 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29439 + invoke-direct {p0, p1, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29443 + if-nez v0, :cond_7
29445 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29450 +.method public requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29453 + if-eqz p1, :cond_4
29455 + if-nez p2, :cond_8
29458 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29467 + invoke-direct {p0, p1, v0, p2}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29471 + if-nez v0, :cond_7
29473 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29478 +.method public requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29481 + if-eqz p1, :cond_4
29483 + if-nez p2, :cond_8
29486 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29495 + invoke-direct {p0, p1, p2, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29499 + if-nez v0, :cond_7
29501 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29506 +.method public requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29509 + if-eqz p1, :cond_4
29511 + if-nez p2, :cond_8
29514 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29523 + invoke-direct {p0, p1, v0, p2}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29527 + if-nez v0, :cond_7
29529 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29534 +.method public requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29537 + if-eqz p1, :cond_4
29539 + if-nez p2, :cond_8
29542 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29551 + invoke-direct {p0, p1, p2, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29555 + if-nez v0, :cond_7
29557 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29561 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali
29562 --- stock-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali 1969-12-31 16:00:00.000000000 -0800
29563 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali 2013-08-10 20:37:42.511213442 -0700
29565 +.class public final Landroid/privacy/surrogate/PrivacyTelephonyManager;
29566 +.super Landroid/telephony/TelephonyManager;
29567 +.source "PrivacyTelephonyManager.java"
29571 +.field private static final NETWORK_TYPES:[I = null
29573 +.field private static final PHONE_TYPES:[I = null
29575 +.field private static final TAG:Ljava/lang/String; = "PrivacyTelephonyManager"
29579 +.field private context:Landroid/content/Context;
29581 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
29585 +.method static constructor <clinit>()V
29590 + new-array v0, v0, [I
29592 + fill-array-data v0, :array_12
29594 + sput-object v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->PHONE_TYPES:[I
29596 + const/16 v0, 0x10
29598 + new-array v0, v0, [I
29600 + fill-array-data v0, :array_1e
29602 + sput-object v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
29608 + 0x0t 0x0t 0x0t 0x0t
29609 + 0x1t 0x0t 0x0t 0x0t
29610 + 0x2t 0x0t 0x0t 0x0t
29611 + 0x3t 0x0t 0x0t 0x0t
29616 + 0x0t 0x0t 0x0t 0x0t
29617 + 0x1t 0x0t 0x0t 0x0t
29618 + 0x2t 0x0t 0x0t 0x0t
29619 + 0x3t 0x0t 0x0t 0x0t
29620 + 0x4t 0x0t 0x0t 0x0t
29621 + 0x5t 0x0t 0x0t 0x0t
29622 + 0x6t 0x0t 0x0t 0x0t
29623 + 0x7t 0x0t 0x0t 0x0t
29624 + 0x8t 0x0t 0x0t 0x0t
29625 + 0x9t 0x0t 0x0t 0x0t
29626 + 0xat 0x0t 0x0t 0x0t
29627 + 0xbt 0x0t 0x0t 0x0t
29628 + 0xct 0x0t 0x0t 0x0t
29629 + 0xdt 0x0t 0x0t 0x0t
29630 + 0xet 0x0t 0x0t 0x0t
29631 + 0xft 0x0t 0x0t 0x0t
29635 +.method public constructor <init>(Landroid/content/Context;)V
29638 + invoke-direct {p0, p1}, Landroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V
29640 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29642 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
29644 + const-string/jumbo v1, "privacy"
29646 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
29648 + move-result-object v1
29650 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
29652 + move-result-object v1
29654 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
29656 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29661 +.method private getNetworkInfo()Ljava/lang/String;
29666 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29668 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29670 + move-result-object v1
29672 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29676 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29678 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29680 + move-result-object v6
29682 + if-eqz v6, :cond_25
29684 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
29688 + if-eqz v0, :cond_25
29690 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29694 + const-string/jumbo v4, "networkInfoCurrent"
29696 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29698 + const-string v5, ""
29704 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29708 + const-string/jumbo v4, "networkInfoCurrent"
29710 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29715 +.method private getSimInfo()Ljava/lang/String;
29720 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29722 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29724 + move-result-object v1
29726 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29730 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29732 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29734 + move-result-object v6
29736 + if-eqz v6, :cond_25
29738 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
29742 + if-eqz v0, :cond_25
29744 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29748 + const-string/jumbo v4, "networkInfoSIM"
29750 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29752 + const-string v5, ""
29758 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29762 + const-string/jumbo v4, "networkInfoSIM"
29764 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29771 +.method public getAllCellInfo()Ljava/util/List;
29773 + .annotation system Ldalvik/annotation/Signature;
29776 + "Ljava/util/List",
29778 + "Landroid/telephony/CellInfo;",
29783 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29785 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29787 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29789 + move-result-object v3
29791 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29795 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29797 + move-result-object v1
29801 + if-eqz v1, :cond_1f
29803 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29809 + if-ne v2, v3, :cond_20
29811 + new-instance v0, Ljava/util/ArrayList;
29813 + invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
29820 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29824 + if-eqz v2, :cond_2c
29826 + new-instance v0, Ljava/util/ArrayList;
29828 + invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
29833 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getAllCellInfo()Ljava/util/List;
29835 + move-result-object v0
29840 +.method public getCellLocation()Landroid/telephony/CellLocation;
29846 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29848 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29850 + move-result-object v1
29852 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29856 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29858 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29860 + move-result-object v6
29862 + if-eqz v6, :cond_2c
29864 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29868 + if-nez v0, :cond_1f
29870 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29874 + if-eqz v0, :cond_2c
29877 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29879 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29883 + const-string v4, "locationNetwork"
29887 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29893 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29895 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29899 + const-string v4, "locationNetwork"
29903 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29905 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getCellLocation()Landroid/telephony/CellLocation;
29907 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_3b} :catch_3d
29909 + move-result-object v7
29914 + move-exception v8
29919 +.method public getCompleteVoiceMailNumber()Ljava/lang/String;
29923 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29925 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29927 + move-result-object v1
29929 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29933 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29935 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29937 + move-result-object v6
29939 + const-string v5, ""
29941 + if-eqz v6, :cond_2a
29943 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
29947 + if-eqz v0, :cond_2a
29949 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
29951 + move-result-object v5
29953 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29955 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
29959 + const-string v4, "line1Number"
29961 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29967 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getCompleteVoiceMailNumber()Ljava/lang/String;
29969 + move-result-object v5
29971 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29975 + const-string v4, "line1Number"
29977 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29979 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_36} :catch_37
29984 + move-exception v7
29991 +.method public getDeviceId()Ljava/lang/String;
29994 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29996 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29998 + move-result-object v1
30000 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30004 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30006 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30008 + move-result-object v6
30010 + if-eqz v6, :cond_28
30012 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30016 + if-eqz v0, :cond_28
30018 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
30020 + move-result-object v5
30022 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30024 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30028 + const-string v4, "deviceID"
30030 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30036 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;
30038 + move-result-object v5
30040 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30044 + const-string v4, "deviceID"
30046 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30051 +.method public getDeviceSoftwareVersion()Ljava/lang/String;
30055 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30057 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30059 + move-result-object v1
30061 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30065 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30067 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30069 + move-result-object v6
30071 + const-string v5, ""
30073 + if-eqz v6, :cond_2a
30075 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30079 + if-eqz v0, :cond_2a
30081 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
30083 + move-result-object v5
30085 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30087 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30091 + const-string v4, "deviceID"
30093 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30099 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getDeviceSoftwareVersion()Ljava/lang/String;
30101 + move-result-object v5
30103 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30107 + const-string v4, "deviceID"
30109 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30111 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_36} :catch_37
30116 + move-exception v7
30123 +.method public getIsimDomain()Ljava/lang/String;
30126 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
30128 + move-result-object v0
30133 +.method public getIsimImpi()Ljava/lang/String;
30136 + const-string v0, "PrivacyTelephonyManager"
30138 + new-instance v1, Ljava/lang/StringBuilder;
30140 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
30142 + const-string v2, "getIsimImpi - "
30144 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30146 + move-result-object v1
30148 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30150 + invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30152 + move-result-object v2
30154 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30156 + move-result-object v1
30158 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30160 + move-result-object v1
30162 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30164 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSubscriberId()Ljava/lang/String;
30166 + move-result-object v0
30171 +.method public getIsimImpu()[Ljava/lang/String;
30176 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30178 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30180 + move-result-object v1
30182 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30186 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30188 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30190 + move-result-object v6
30192 + const-string v0, "PrivacyTelephonyManager"
30194 + new-instance v3, Ljava/lang/StringBuilder;
30196 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
30198 + const-string v4, "getIsimImpu() - "
30200 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30202 + move-result-object v3
30204 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30206 + invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30208 + move-result-object v4
30210 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30212 + move-result-object v3
30214 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30216 + move-result-object v3
30218 + invoke-static {v0, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30222 + new-array v7, v0, [Ljava/lang/String;
30224 + if-eqz v6, :cond_4f
30226 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30230 + if-eqz v0, :cond_4f
30232 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
30234 + move-result-object v0
30236 + aput-object v0, v7, v8
30238 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30240 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30244 + const-string/jumbo v4, "subscriberID"
30246 + aget-object v5, v7, v8
30248 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30254 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getIsimImpu()[Ljava/lang/String;
30256 + move-result-object v7
30258 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30260 + const-string/jumbo v4, "subscriberID"
30262 + aget-object v5, v7, v8
30266 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30271 +.method public getLine1AlphaTag()Ljava/lang/String;
30274 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getLine1Number()Ljava/lang/String;
30276 + move-result-object v0
30281 +.method public getLine1Number()Ljava/lang/String;
30284 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30286 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30288 + move-result-object v1
30290 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30294 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30296 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30298 + move-result-object v6
30300 + if-eqz v6, :cond_28
30302 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30306 + if-eqz v0, :cond_28
30308 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
30310 + move-result-object v5
30312 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30314 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30318 + const-string v4, "line1Number"
30320 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30326 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getLine1Number()Ljava/lang/String;
30328 + move-result-object v5
30330 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30334 + const-string v4, "line1Number"
30336 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30341 +.method public getMsisdn()Ljava/lang/String;
30344 + const-string v0, "PrivacyTelephonyManager"
30346 + new-instance v1, Ljava/lang/StringBuilder;
30348 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
30350 + const-string v2, "getMsisdn() - "
30352 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30354 + move-result-object v1
30356 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30358 + invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30360 + move-result-object v2
30362 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30364 + move-result-object v1
30366 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30368 + move-result-object v1
30370 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30372 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSubscriberId()Ljava/lang/String;
30374 + move-result-object v0
30379 +.method public getNeighboringCellInfo()Ljava/util/List;
30381 + .annotation system Ldalvik/annotation/Signature;
30384 + "Ljava/util/List",
30386 + "Landroid/telephony/NeighboringCellInfo;",
30391 + iget-object v6, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30393 + iget-object v7, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30395 + invoke-virtual {v7}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30397 + move-result-object v7
30399 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30403 + invoke-virtual {v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30405 + move-result-object v5
30409 + const-string v4, "[null]"
30411 + if-eqz v5, :cond_1c
30413 + invoke-virtual {v5}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30419 + if-ne v6, v7, :cond_1d
30426 + invoke-virtual {v5}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30430 + if-eqz v6, :cond_2b
30432 + new-instance v3, Ljava/util/ArrayList;
30434 + invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
30436 + const-string v4, "[empty list of cells]"
30441 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNeighboringCellInfo()Ljava/util/List;
30443 + move-result-object v3
30445 + const-string v0, ""
30447 + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
30449 + move-result-object v2
30452 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
30456 + if-eqz v6, :cond_5f
30458 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
30460 + move-result-object v1
30462 + check-cast v1, Landroid/telephony/NeighboringCellInfo;
30464 + new-instance v6, Ljava/lang/StringBuilder;
30466 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
30468 + invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30470 + move-result-object v6
30472 + const-string v7, "\t"
30474 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30476 + move-result-object v6
30478 + invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
30480 + move-result-object v6
30482 + const-string v7, "\n"
30484 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30486 + move-result-object v6
30488 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30490 + move-result-object v0
30495 + new-instance v6, Ljava/lang/StringBuilder;
30497 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
30499 + const-string v7, "[real value]:\n"
30501 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30503 + move-result-object v6
30505 + invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30507 + move-result-object v6
30509 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30511 + move-result-object v4
30516 +.method public getNetworkCountryIso()Ljava/lang/String;
30519 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30521 + move-result-object v0
30523 + if-nez v0, :cond_a
30525 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkCountryIso()Ljava/lang/String;
30527 + move-result-object v0
30533 +.method public getNetworkOperator()Ljava/lang/String;
30536 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30538 + move-result-object v0
30540 + if-nez v0, :cond_a
30542 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkOperator()Ljava/lang/String;
30544 + move-result-object v0
30550 +.method public getNetworkOperatorName()Ljava/lang/String;
30553 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30555 + move-result-object v0
30557 + if-nez v0, :cond_a
30559 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
30561 + move-result-object v0
30567 +.method public getNetworkType()I
30573 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30575 + move-result-object v1
30577 + sget-object v3, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
30583 + if-nez v1, :cond_10
30585 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkType()I
30587 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_f} :catch_11
30596 + move-exception v0
30598 + sget-object v3, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
30605 +.method public getPhoneType()I
30608 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30610 + move-result-object v0
30612 + sget-object v2, Landroid/privacy/surrogate/PrivacyTelephonyManager;->PHONE_TYPES:[I
30618 + if-nez v0, :cond_f
30620 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getPhoneType()I
30628 +.method public getSimCountryIso()Ljava/lang/String;
30631 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30633 + move-result-object v0
30635 + if-nez v0, :cond_a
30637 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimCountryIso()Ljava/lang/String;
30639 + move-result-object v0
30645 +.method public getSimOperator()Ljava/lang/String;
30648 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30650 + move-result-object v0
30652 + if-nez v0, :cond_a
30654 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimOperator()Ljava/lang/String;
30656 + move-result-object v0
30662 +.method public getSimOperatorName()Ljava/lang/String;
30665 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30667 + move-result-object v0
30669 + if-nez v0, :cond_a
30671 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimOperatorName()Ljava/lang/String;
30673 + move-result-object v0
30679 +.method public getSimSerialNumber()Ljava/lang/String;
30682 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30684 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30686 + move-result-object v1
30688 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30692 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30694 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30696 + move-result-object v6
30698 + if-eqz v6, :cond_29
30700 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
30704 + if-eqz v0, :cond_29
30706 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumber()Ljava/lang/String;
30708 + move-result-object v5
30710 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30712 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
30716 + const-string/jumbo v4, "simSerial"
30718 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30724 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimSerialNumber()Ljava/lang/String;
30726 + move-result-object v5
30728 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30732 + const-string/jumbo v4, "simSerial"
30734 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30739 +.method public getSubscriberId()Ljava/lang/String;
30742 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30744 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30746 + move-result-object v1
30748 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30752 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30754 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30756 + move-result-object v6
30758 + const-string v0, "PrivacyTelephonyManager"
30760 + new-instance v3, Ljava/lang/StringBuilder;
30762 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
30764 + const-string v4, "getSubscriberId() - "
30766 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30768 + move-result-object v3
30770 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30772 + invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30774 + move-result-object v4
30776 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30778 + move-result-object v3
30780 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30782 + move-result-object v3
30784 + invoke-static {v0, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30786 + if-eqz v6, :cond_47
30788 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30792 + if-eqz v0, :cond_47
30794 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
30796 + move-result-object v5
30798 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30800 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30804 + const-string/jumbo v4, "subscriberID"
30806 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30812 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String;
30814 + move-result-object v5
30816 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30820 + const-string/jumbo v4, "subscriberID"
30822 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30827 +.method public getVoiceMailAlphaTag()Ljava/lang/String;
30830 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getVoiceMailNumber()Ljava/lang/String;
30832 + move-result-object v0
30837 +.method public getVoiceMailNumber()Ljava/lang/String;
30840 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30842 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30844 + move-result-object v1
30846 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30850 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30852 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30854 + move-result-object v6
30856 + if-eqz v6, :cond_28
30858 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30862 + if-eqz v0, :cond_28
30864 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
30866 + move-result-object v5
30868 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30870 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30874 + const-string v4, "line1Number"
30876 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30882 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getVoiceMailNumber()Ljava/lang/String;
30884 + move-result-object v5
30886 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30890 + const-string v4, "line1Number"
30892 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30897 +.method public listen(Landroid/telephony/PhoneStateListener;I)V
30900 + and-int/lit8 v1, p2, 0x10
30902 + if-nez v1, :cond_8
30904 + and-int/lit8 v1, p2, 0x20
30906 + if-eqz v1, :cond_29
30909 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30911 + if-eqz v1, :cond_27
30913 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30915 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30917 + move-result-object v0
30920 + if-eqz v0, :cond_1c
30922 + invoke-virtual {p1, v0}, Landroid/telephony/PhoneStateListener;->setPackageName(Ljava/lang/String;)V
30924 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30926 + invoke-virtual {p1, v1}, Landroid/telephony/PhoneStateListener;->setContext(Landroid/content/Context;)V
30929 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30933 + invoke-virtual {p1, v1}, Landroid/telephony/PhoneStateListener;->setUid(I)V
30935 + invoke-super {p0, p1, p2}, Landroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
30946 + invoke-super {p0, p1, p2}, Landroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
30950 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali
30951 --- stock-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali 1969-12-31 16:00:00.000000000 -0800
30952 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali 2013-08-10 20:37:42.511213442 -0700
30954 +.class public Landroid/privacy/surrogate/PrivacyWifiManager;
30955 +.super Landroid/net/wifi/WifiManager;
30956 +.source "PrivacyWifiManager.java"
30960 +.field private static final P_TAG:Ljava/lang/String; = "PrivacyWifiManager"
30964 +.field private context:Landroid/content/Context;
30966 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
30970 +.method public constructor <init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
30973 + invoke-direct {p0, p1, p2}, Landroid/net/wifi/WifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
30975 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
30977 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
30979 + const-string/jumbo v1, "privacy"
30981 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
30983 + move-result-object v1
30985 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
30987 + move-result-object v1
30989 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
30991 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30998 +.method public getConfigFile()Ljava/lang/String;
31005 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31007 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31009 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31011 + move-result-object v1
31013 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31017 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31019 + move-result-object v7
31021 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31023 + if-eqz v0, :cond_31
31025 + if-eqz v7, :cond_31
31027 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31031 + if-eqz v0, :cond_31
31033 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31035 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31037 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31039 + move-result-object v1
31043 + const-string/jumbo v4, "wifiInfo"
31045 + move-object v6, v5
31047 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31049 + const-string v0, ""
31055 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31057 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31059 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31061 + move-result-object v1
31065 + const-string/jumbo v4, "wifiInfo"
31067 + move-object v6, v5
31069 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31071 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConfigFile()Ljava/lang/String;
31073 + move-result-object v0
31078 +.method public getConfiguredNetworks()Ljava/util/List;
31080 + .annotation system Ldalvik/annotation/Signature;
31083 + "Ljava/util/List",
31085 + "Landroid/net/wifi/WifiConfiguration;",
31094 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31096 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31098 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31100 + move-result-object v1
31102 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31106 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31108 + move-result-object v8
31110 + new-instance v7, Ljava/util/ArrayList;
31112 + invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
31114 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31116 + if-eqz v0, :cond_34
31118 + if-eqz v8, :cond_34
31120 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31124 + if-eqz v0, :cond_34
31126 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31128 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31130 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31132 + move-result-object v1
31136 + const-string/jumbo v4, "wifiInfo"
31138 + move-object v6, v5
31140 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31146 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31148 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31150 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31152 + move-result-object v1
31156 + const-string/jumbo v4, "wifiInfo"
31158 + move-object v6, v5
31160 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31162 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConfiguredNetworks()Ljava/util/List;
31164 + move-result-object v7
31169 +.method public getConnectionInfo()Landroid/net/wifi/WifiInfo;
31178 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31180 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31182 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31184 + move-result-object v1
31186 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31190 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31192 + move-result-object v8
31194 + new-instance v7, Landroid/net/wifi/WifiInfo;
31196 + invoke-direct {v7, v3}, Landroid/net/wifi/WifiInfo;-><init>(Z)V
31198 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31200 + if-eqz v0, :cond_34
31202 + if-eqz v8, :cond_34
31204 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31208 + if-eqz v0, :cond_34
31210 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31212 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31214 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31216 + move-result-object v1
31218 + const-string/jumbo v4, "wifiInfo"
31220 + move-object v6, v5
31222 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31228 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31230 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31232 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31234 + move-result-object v1
31238 + const-string/jumbo v4, "wifiInfo"
31240 + move-object v6, v5
31242 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31244 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConnectionInfo()Landroid/net/wifi/WifiInfo;
31246 + move-result-object v7
31251 +.method public getDhcpInfo()Landroid/net/DhcpInfo;
31258 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31260 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31262 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31264 + move-result-object v1
31266 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31270 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31272 + move-result-object v7
31274 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31276 + if-eqz v0, :cond_34
31278 + if-eqz v7, :cond_34
31280 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31284 + if-eqz v0, :cond_34
31286 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31288 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31290 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31292 + move-result-object v1
31296 + const-string/jumbo v4, "wifiInfo"
31298 + move-object v6, v5
31300 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31302 + new-instance v0, Landroid/net/DhcpInfo;
31304 + invoke-direct {v0}, Landroid/net/DhcpInfo;-><init>()V
31310 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31312 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31314 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31316 + move-result-object v1
31320 + const-string/jumbo v4, "wifiInfo"
31322 + move-object v6, v5
31324 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31326 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getDhcpInfo()Landroid/net/DhcpInfo;
31328 + move-result-object v0
31333 +.method public getFrequencyBand()I
31340 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31342 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31344 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31346 + move-result-object v1
31348 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31352 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31354 + move-result-object v7
31356 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31358 + if-eqz v0, :cond_2f
31360 + if-eqz v7, :cond_2f
31362 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31366 + if-eqz v0, :cond_2f
31368 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31370 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31372 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31374 + move-result-object v1
31378 + const-string/jumbo v4, "wifiInfo"
31380 + move-object v6, v5
31382 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31388 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31390 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31392 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31394 + move-result-object v1
31398 + const-string/jumbo v4, "wifiInfo"
31400 + move-object v6, v5
31402 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31404 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getFrequencyBand()I
31411 +.method public getScanResults()Ljava/util/List;
31413 + .annotation system Ldalvik/annotation/Signature;
31416 + "Ljava/util/List",
31418 + "Landroid/net/wifi/ScanResult;",
31427 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31429 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31431 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31433 + move-result-object v1
31435 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31439 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31441 + move-result-object v8
31443 + new-instance v7, Ljava/util/ArrayList;
31445 + invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
31447 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31449 + if-eqz v0, :cond_34
31451 + if-eqz v8, :cond_34
31453 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31457 + if-eqz v0, :cond_34
31459 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31461 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31463 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31465 + move-result-object v1
31469 + const-string/jumbo v4, "wifiInfo"
31471 + move-object v6, v5
31473 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31479 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31481 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31483 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31485 + move-result-object v1
31489 + const-string/jumbo v4, "wifiInfo"
31491 + move-object v6, v5
31493 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31495 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getScanResults()Ljava/util/List;
31497 + move-result-object v7
31502 +.method public getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
31509 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31511 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31513 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31515 + move-result-object v1
31517 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31521 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31523 + move-result-object v7
31525 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31527 + if-eqz v0, :cond_34
31529 + if-eqz v7, :cond_34
31531 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31535 + if-eqz v0, :cond_34
31537 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31539 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31541 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31543 + move-result-object v1
31547 + const-string/jumbo v4, "wifiInfo"
31549 + move-object v6, v5
31551 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31553 + new-instance v0, Landroid/net/wifi/WifiConfiguration;
31555 + invoke-direct {v0}, Landroid/net/wifi/WifiConfiguration;-><init>()V
31561 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31563 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31565 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31567 + move-result-object v1
31571 + const-string/jumbo v4, "wifiInfo"
31573 + move-object v6, v5
31575 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31577 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
31579 + move-result-object v0
31584 +.method public getWifiState()I
31593 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31595 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31597 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31599 + move-result-object v1
31601 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31605 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31607 + move-result-object v7
31609 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31611 + if-eqz v0, :cond_30
31613 + if-eqz v7, :cond_30
31615 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
31619 + if-nez v0, :cond_30
31621 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31623 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31625 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31627 + move-result-object v1
31629 + const-string/jumbo v4, "wifiInfo"
31631 + move-object v6, v5
31633 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31641 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31643 + if-eqz v0, :cond_4d
31645 + if-eqz v7, :cond_4d
31647 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31651 + if-eqz v0, :cond_4d
31653 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31655 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31657 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31659 + move-result-object v1
31661 + const-string/jumbo v4, "wifiInfo"
31663 + move-object v6, v5
31665 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31672 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31674 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31676 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31678 + move-result-object v1
31682 + const-string/jumbo v4, "wifiInfo"
31684 + move-object v6, v5
31686 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31688 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getWifiState()I
31695 +.method public isWifiEnabled()Z
31706 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31708 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31710 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31712 + move-result-object v1
31714 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31718 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31720 + move-result-object v7
31722 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31724 + if-eqz v0, :cond_30
31726 + if-eqz v7, :cond_30
31728 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
31732 + if-nez v0, :cond_30
31734 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31736 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31738 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31740 + move-result-object v1
31742 + const-string/jumbo v4, "wifiInfo"
31744 + move-object v6, v5
31746 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31752 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31754 + if-eqz v0, :cond_4d
31756 + if-eqz v7, :cond_4d
31758 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31762 + if-eqz v0, :cond_4d
31764 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31766 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31768 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31770 + move-result-object v1
31772 + const-string/jumbo v4, "wifiInfo"
31774 + move-object v6, v5
31776 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31783 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31785 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31787 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31789 + move-result-object v1
31791 + const-string/jumbo v4, "wifiInfo"
31795 + move-object v6, v5
31797 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31799 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->isWifiEnabled()Z
31806 +.method public setWifiEnabled(Z)Z
31815 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31817 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31819 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31821 + move-result-object v1
31823 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31827 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31829 + move-result-object v7
31831 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31833 + if-eqz v0, :cond_31
31835 + if-eqz v7, :cond_31
31837 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSwitchWifiStateSetting()B
31841 + if-eqz v0, :cond_31
31843 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31845 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31847 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31849 + move-result-object v1
31853 + const-string/jumbo v4, "switchWifiState"
31855 + move-object v6, v5
31857 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31865 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31867 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31869 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31871 + move-result-object v1
31873 + const-string/jumbo v4, "switchWifiState"
31877 + move-object v6, v5
31879 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31881 + invoke-super {p0, p1}, Landroid/net/wifi/WifiManager;->setWifiEnabled(Z)Z
31888 +.method public startScan()Z
31897 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31899 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31901 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31903 + move-result-object v1
31905 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31909 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31911 + move-result-object v7
31913 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31915 + if-eqz v0, :cond_31
31917 + if-eqz v7, :cond_31
31919 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31923 + if-eqz v0, :cond_31
31925 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31927 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31929 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31931 + move-result-object v1
31935 + const-string/jumbo v4, "wifiInfo"
31937 + move-object v6, v5
31939 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31947 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31949 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31951 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31953 + move-result-object v1
31955 + const-string/jumbo v4, "wifiInfo"
31959 + move-object v6, v5
31961 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31963 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->startScan()Z
31969 diff -Npru stock-framework/smali/android/provider/Settings$Secure.smali pdroid-framework/smali/android/provider/Settings$Secure.smali
31970 --- stock-framework/smali/android/provider/Settings$Secure.smali 2013-08-10 20:37:48.023213671 -0700
31971 +++ pdroid-framework/smali/android/provider/Settings$Secure.smali 2013-08-10 20:37:42.567213444 -0700
31972 @@ -199,6 +199,8 @@
31974 .field public static final PREFERRED_TTY_MODE:Ljava/lang/String; = "preferred_tty_mode"
31976 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,SecureSettings"
31978 .field public static final SCREENSAVER_ACTIVATE_ON_DOCK:Ljava/lang/String; = "screensaver_activate_on_dock"
31980 .field public static final SCREENSAVER_ACTIVATE_ON_SLEEP:Ljava/lang/String; = "screensaver_activate_on_sleep"
31981 @@ -410,6 +412,14 @@
31983 .field public static final WIMAX_ON:Ljava/lang/String; = "wimax_on"
31985 +.field private static context:Landroid/content/Context;
31987 +.field private static mPm:Landroid/content/pm/IPackageManager;
31989 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
31991 +.field private static privacyMode:Z
31993 .field private static sIsSystemProcess:Z
31995 .field private static sLockSettings:Lcom/android/internal/widget/ILockSettings;
31996 @@ -419,9 +429,11 @@
31999 .method static constructor <clinit>()V
32008 const-string v0, "content://settings/secure"
32010 @@ -451,7 +463,7 @@
32012 new-instance v0, Ljava/util/HashSet;
32014 - invoke-direct {v0, v5}, Ljava/util/HashSet;-><init>(I)V
32015 + invoke-direct {v0, v6}, Ljava/util/HashSet;-><init>(I)V
32017 sput-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32019 @@ -1157,15 +1169,15 @@
32021 invoke-virtual {v0, v1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
32023 + sput-boolean v5, Landroid/provider/Settings$Secure;->privacyMode:Z
32027 new-array v0, v0, [Ljava/lang/String;
32031 - const-string v2, "bugreport_in_power_menu"
32032 + const-string v1, "bugreport_in_power_menu"
32034 - aput-object v2, v0, v1
32035 + aput-object v1, v0, v5
32039 @@ -1181,7 +1193,7 @@
32041 const-string/jumbo v1, "parental_control_redirect_url"
32043 - aput-object v1, v0, v5
32044 + aput-object v1, v0, v6
32048 @@ -1668,6 +1680,70 @@
32052 +.method private static getPackageName()[Ljava/lang/String;
32056 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32058 + if-eqz v3, :cond_f
32060 + invoke-static {}, Landroid/os/Process;->myUid()I
32064 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32066 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
32068 + move-result-object v1
32074 + const-string/jumbo v3, "package"
32076 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32078 + move-result-object v3
32080 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32082 + move-result-object v3
32084 + sput-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32086 + invoke-static {}, Landroid/os/Process;->myUid()I
32090 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32092 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
32094 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
32096 + move-result-object v1
32101 + move-exception v0
32103 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32105 + const-string v3, "PM,SecureSettings"
32107 + const-string/jumbo v4, "something went wrong with getting package name"
32109 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32116 .method public static getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
32119 @@ -1683,152 +1759,392 @@
32122 .method public static getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32126 - sget-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_GLOBAL:Ljava/util/HashSet;
32127 + sget-object v3, Landroid/provider/Settings$Secure;->MOVED_TO_GLOBAL:Ljava/util/HashSet;
32129 - invoke-virtual {v0, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32130 + move-object/from16 v0, p1
32133 + invoke-virtual {v3, v0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32135 - if-eqz v0, :cond_31
32138 - const-string v0, "Settings"
32139 + if-eqz v3, :cond_35
32141 - new-instance v1, Ljava/lang/StringBuilder;
32142 + const-string v3, "Settings"
32144 - invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
32145 + new-instance v4, Ljava/lang/StringBuilder;
32147 - const-string v2, "Setting "
32148 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
32150 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32151 + const-string v5, "Setting "
32153 - move-result-object v1
32154 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32156 - invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32157 + move-result-object v4
32159 - move-result-object v1
32160 + move-object/from16 v0, p1
32162 - const-string v2, " has moved from android.provider.Settings.Secure"
32163 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32165 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32166 + move-result-object v4
32168 - move-result-object v1
32169 + const-string v5, " has moved from android.provider.Settings.Secure"
32171 - const-string v2, " to android.provider.Settings.Global."
32172 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32174 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32175 + move-result-object v4
32177 - move-result-object v1
32178 + const-string v5, " to android.provider.Settings.Global."
32180 - invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32181 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32183 - move-result-object v1
32184 + move-result-object v4
32186 - invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
32187 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32189 - invoke-static {p0, p1, p2}, Landroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32190 + move-result-object v4
32192 - move-result-object v0
32193 + invoke-static {v3, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
32197 + invoke-static/range {p0 .. p2}, Landroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32200 - sget-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32201 + move-result-object v8
32203 - invoke-virtual {v0, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32209 + sget-object v3, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32211 - if-eqz v0, :cond_6f
32212 + move-object/from16 v0, p1
32214 - const-class v1, Landroid/provider/Settings$Secure;
32215 + invoke-virtual {v3, v0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32221 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32222 + if-eqz v3, :cond_79
32224 - if-nez v0, :cond_57
32225 + const-class v4, Landroid/provider/Settings$Secure;
32227 - const-string v0, "lock_settings"
32230 - invoke-static {v0}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32232 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32234 - move-result-object v0
32235 + if-nez v3, :cond_5d
32237 - invoke-static {v0}, Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
32238 + const-string v3, "lock_settings"
32240 - move-result-object v0
32241 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32243 - sput-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32244 + move-result-object v3
32246 + invoke-static {v3}, Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
32248 + move-result-object v3
32250 + sput-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32252 invoke-static {}, Landroid/os/Process;->myUid()I
32257 - const/16 v2, 0x3e8
32258 + const/16 v5, 0x3e8
32260 - if-ne v0, v2, :cond_69
32261 + if-ne v3, v5, :cond_73
32267 - sput-boolean v0, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32269 + sput-boolean v3, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32274 - .catchall {:try_start_3c .. :try_end_58} :catchall_6b
32278 + .catchall {:try_start_42 .. :try_end_5e} :catchall_75
32280 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32281 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32283 - if-eqz v0, :cond_6f
32284 + if-eqz v3, :cond_79
32286 - sget-boolean v0, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32287 + sget-boolean v3, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32289 - if-nez v0, :cond_6f
32290 + if-nez v3, :cond_79
32293 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32295 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32297 - const-string v1, "0"
32298 + const-string v4, "0"
32300 - invoke-interface {v0, p1, v1, p2}, Lcom/android/internal/widget/ILockSettings;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
32302 - .catch Landroid/os/RemoteException; {:try_start_60 .. :try_end_67} :catch_6e
32303 + move-object/from16 v0, p1
32305 - move-result-object v0
32306 + move/from16 v1, p2
32309 + invoke-interface {v3, v0, v4, v1}, Lcom/android/internal/widget/ILockSettings;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
32311 + .catch Landroid/os/RemoteException; {:try_start_66 .. :try_end_71} :catch_78
32315 + move-result-object v8
32321 - move-exception v0
32328 - .catchall {:try_start_6c .. :try_end_6d} :catchall_6b
32333 + move-exception v3
32336 - move-exception v0
32340 + .catchall {:try_start_76 .. :try_end_77} :catchall_75
32343 - sget-object v0, Landroid/provider/Settings$Secure;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
32346 - invoke-virtual {v0, p0, p1, p2}, Landroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32348 + move-exception v3
32350 - move-result-object v0
32352 + const-string v3, "android_id"
32354 + move-object/from16 v0, p1
32356 + invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
32360 + if-eqz v3, :cond_f7
32362 + invoke-static {}, Landroid/provider/Settings$Secure;->initiate()V
32365 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32367 + if-nez v3, :cond_9e
32369 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
32371 + sget-object v4, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32373 + const-string/jumbo v5, "privacy"
32375 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32377 + move-result-object v5
32379 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
32381 + move-result-object v5
32383 + invoke-direct {v3, v4, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
32385 + sput-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32388 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32390 + if-nez v3, :cond_af
32392 + const-string/jumbo v3, "package"
32394 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32396 + move-result-object v3
32398 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32400 + move-result-object v3
32402 + sput-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32405 + const/16 v19, 0x0
32407 + invoke-static {}, Landroid/provider/Settings$Secure;->getPackageName()[Ljava/lang/String;
32409 + move-result-object v18
32411 + if-eqz v18, :cond_13c
32413 + move-object/from16 v0, v18
32415 + array-length v3, v0
32417 + if-lez v3, :cond_13c
32420 + const/16 v17, 0x0
32423 + move-object/from16 v0, v18
32425 + array-length v3, v0
32427 + move/from16 v0, v17
32429 + if-ge v0, v3, :cond_f7
32431 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32433 + aget-object v4, v18, v17
32435 + invoke-virtual {v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
32437 + move-result-object v19
32439 + if-eqz v19, :cond_11c
32441 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32445 + if-eqz v3, :cond_11c
32447 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidID()Ljava/lang/String;
32449 + move-result-object v8
32451 + if-eqz v8, :cond_105
32453 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32455 + aget-object v4, v18, v17
32459 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32463 + const-string v7, "android_id"
32467 + invoke-virtual/range {v3 .. v9}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32469 + .catch Ljava/lang/Exception; {:try_start_86 .. :try_end_ea} :catch_ec
32474 + move-exception v16
32476 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Exception;->printStackTrace()V
32478 + const-string v3, "PM,SecureSettings"
32480 + const-string v4, "Got exception in getString()"
32482 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32486 + sget-object v3, Landroid/provider/Settings$Secure;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
32488 + move-object/from16 v0, p0
32490 + move-object/from16 v1, p1
32492 + move/from16 v2, p2
32494 + invoke-virtual {v3, v0, v1, v2}, Landroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32496 + move-result-object v8
32502 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32504 + aget-object v10, v18, v17
32508 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32512 + const-string v13, "android_id"
32514 + const-string/jumbo v14, "q4a5w896ay21dr46"
32518 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32520 + const-string/jumbo v8, "q4a5w896ay21dr46"
32525 + move-object/from16 v0, v18
32527 + array-length v3, v0
32529 + add-int/lit8 v3, v3, -0x1
32531 + move/from16 v0, v17
32533 + if-ne v0, v3, :cond_137
32535 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32537 + move-object/from16 v0, v18
32539 + array-length v3, v0
32541 + add-int/lit8 v3, v3, -0x1
32543 + aget-object v10, v18, v3
32549 + const-string v13, "android_id"
32555 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32558 + const/16 v19, 0x0
32560 + add-int/lit8 v17, v17, 0x1
32565 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32567 + move-object/from16 v0, v18
32569 + array-length v3, v0
32571 + add-int/lit8 v3, v3, -0x1
32573 + aget-object v10, v18, v3
32579 + const-string v13, "android_id"
32585 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32587 + .catch Ljava/lang/Exception; {:try_start_105 .. :try_end_14e} :catch_ec
32592 .method public static getUriFor(Ljava/lang/String;)Landroid/net/Uri;
32593 @@ -1895,6 +2211,71 @@
32597 +.method private static initiate()V
32603 + sput-object v1, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32605 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
32607 + sget-object v2, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32609 + const-string/jumbo v3, "privacy"
32611 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32613 + move-result-object v3
32615 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
32617 + move-result-object v3
32619 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
32621 + sput-object v1, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32623 + const-string/jumbo v1, "package"
32625 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32627 + move-result-object v1
32629 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32631 + move-result-object v1
32633 + sput-object v1, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32637 + sput-boolean v1, Landroid/provider/Settings$Secure;->privacyMode:Z
32639 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
32645 + move-exception v0
32647 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32649 + const-string v1, "PM,SecureSettings"
32651 + const-string v2, "Something went wrong with initalize variables"
32653 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32657 + sput-boolean v1, Landroid/provider/Settings$Secure;->privacyMode:Z
32662 .method public static final isLocationProviderEnabled(Landroid/content/ContentResolver;Ljava/lang/String;)Z
32665 diff -Npru stock-framework/smali/android/speech/srec/MicrophoneInputStream.smali pdroid-framework/smali/android/speech/srec/MicrophoneInputStream.smali
32666 --- stock-framework/smali/android/speech/srec/MicrophoneInputStream.smali 2013-08-10 20:37:48.127213675 -0700
32667 +++ pdroid-framework/smali/android/speech/srec/MicrophoneInputStream.smali 2013-08-10 20:37:42.635213447 -0700
32672 +.field private static final GOT_ERROR:I = -0x3
32674 +.field private static final IS_ALLOWED:I = -0x1
32676 +.field private static final IS_NOT_ALLOWED:I = -0x2
32678 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,MicrophoneInputStream"
32680 .field private static final TAG:Ljava/lang/String; = "MicrophoneInputStream"
32684 +.field private context:Landroid/content/Context;
32686 .field private mAudioRecord:I
32688 .field private mOneByte:[B
32690 +.field private mPm:Landroid/content/pm/IPackageManager;
32692 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
32694 +.field private privacyMode:Z
32698 .method static constructor <clinit>()V
32699 @@ -25,79 +41,167 @@
32702 .method public constructor <init>(II)V
32705 .annotation system Ldalvik/annotation/Throws;
32707 Ljava/io/IOException;
32717 invoke-direct {p0}, Ljava/io/InputStream;-><init>()V
32720 + iput-boolean v2, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
32722 - iput v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32723 + iput v2, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32726 + new-array v0, v3, [B
32728 - new-array v1, v1, [B
32729 + iput-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mOneByte:[B
32731 - iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mOneByte:[B
32732 + iget-boolean v0, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
32734 - invoke-static {p1, p2}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordNew(II)I
32735 + if-nez v0, :cond_15
32737 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->initiate()V
32740 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->checkIfPackagesAllowed()I
32746 + if-ne v0, v1, :cond_43
32748 + invoke-direct {p0, v2}, Landroid/speech/srec/MicrophoneInputStream;->dataAccess(Z)V
32750 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
32752 + move-result-object v7
32754 + if-eqz v7, :cond_3b
32756 + iget-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32758 + aget-object v1, v7, v2
32760 + const-string/jumbo v4, "recordAudio"
32763 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32765 - iput v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32766 + aget-object v9, v7, v2
32768 - iget v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32769 + invoke-static {}, Landroid/os/Process;->myUid()I
32771 - if-nez v1, :cond_1d
32774 - new-instance v1, Ljava/io/IOException;
32775 + invoke-virtual {v6, v9, v10}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32777 - const-string v2, "AudioRecord constructor failed - busy?"
32778 + move-result-object v6
32780 - invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32781 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32785 + new-instance v0, Ljava/io/IOException;
32788 - iget v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32789 + const-string v1, "AudioRecord constructor failed - busy?"
32791 - invoke-static {v1}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordStart(I)I
32792 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32797 + invoke-direct {p0, v3}, Landroid/speech/srec/MicrophoneInputStream;->dataAccess(Z)V
32799 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
32801 + move-result-object v7
32803 + if-eqz v7, :cond_63
32805 + iget-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32807 + aget-object v1, v7, v2
32809 + const-string/jumbo v4, "recordAudio"
32811 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32813 + aget-object v6, v7, v2
32815 + invoke-static {}, Landroid/os/Process;->myUid()I
32819 + invoke-virtual {v3, v6, v9}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32821 + move-result-object v6
32825 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32828 + invoke-static {p1, p2}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordNew(II)I
32832 - if-eqz v0, :cond_41
32833 + iput v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32835 + iget v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32837 + if-nez v0, :cond_75
32839 + new-instance v0, Ljava/io/IOException;
32841 + const-string v1, "AudioRecord constructor failed - busy?"
32843 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32848 + iget v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32850 + invoke-static {v0}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordStart(I)I
32854 + if-eqz v8, :cond_99
32856 invoke-virtual {p0}, Landroid/speech/srec/MicrophoneInputStream;->close()V
32858 - new-instance v1, Ljava/io/IOException;
32859 + new-instance v0, Ljava/io/IOException;
32861 - new-instance v2, Ljava/lang/StringBuilder;
32862 + new-instance v1, Ljava/lang/StringBuilder;
32864 - invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
32865 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
32867 - const-string v3, "AudioRecord start failed: "
32868 + const-string v2, "AudioRecord start failed: "
32870 - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32871 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32873 - move-result-object v2
32874 + move-result-object v1
32876 - invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
32877 + invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
32879 - move-result-object v2
32880 + move-result-object v1
32882 - invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32883 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32885 - move-result-object v2
32886 + move-result-object v1
32888 - invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32889 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32899 @@ -131,6 +235,334 @@
32903 +.method private checkIfPackagesAllowed()I
32909 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32911 + if-eqz v6, :cond_41
32915 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
32917 + move-result-object v3
32919 + invoke-static {}, Landroid/os/Process;->myUid()I
32923 + if-eqz v3, :cond_2c
32928 + array-length v6, v3
32930 + if-ge v1, v6, :cond_2a
32932 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32934 + aget-object v7, v3, v1
32936 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32938 + move-result-object v2
32940 + if-eqz v2, :cond_26
32942 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
32946 + if-eqz v6, :cond_26
32956 + add-int/lit8 v1, v1, 0x1
32966 + const-string v6, "PM,MicrophoneInputStream"
32968 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
32970 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32972 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
32977 + move-exception v0
32979 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32981 + const-string v6, "PM,MicrophoneInputStream"
32983 + const-string v7, "Got exception in checkIfPackagesAllowed"
32985 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32991 + const-string v6, "PM,MicrophoneInputStream"
32993 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
32995 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32997 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
33002 +.method private dataAccess(Z)V
33005 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
33007 + move-result-object v1
33009 + if-eqz p1, :cond_2f
33011 + if-eqz v1, :cond_2f
33016 + array-length v2, v1
33018 + if-ge v0, v2, :cond_58
33020 + const-string v2, "PM,MicrophoneInputStream"
33022 + new-instance v3, Ljava/lang/StringBuilder;
33024 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
33026 + const-string v4, "Allowed Package: -"
33028 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33030 + move-result-object v3
33032 + aget-object v4, v1, v0
33034 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33036 + move-result-object v3
33038 + const-string v4, "- accessing microphone."
33040 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33042 + move-result-object v3
33044 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33046 + move-result-object v3
33048 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
33050 + add-int/lit8 v0, v0, 0x1
33055 + if-eqz v1, :cond_58
33060 + array-length v2, v1
33062 + if-ge v0, v2, :cond_58
33064 + const-string v2, "PM,MicrophoneInputStream"
33066 + new-instance v3, Ljava/lang/StringBuilder;
33068 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
33070 + const-string v4, "Blocked Package: -"
33072 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33074 + move-result-object v3
33076 + aget-object v4, v1, v0
33078 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33080 + move-result-object v3
33082 + const-string v4, "- accessing microphone."
33084 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33086 + move-result-object v3
33088 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33090 + move-result-object v3
33092 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
33094 + add-int/lit8 v0, v0, 0x1
33102 +.method private getPackageName()[Ljava/lang/String;
33106 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33108 + if-eqz v3, :cond_f
33110 + invoke-static {}, Landroid/os/Process;->myUid()I
33114 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33116 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
33118 + move-result-object v1
33124 + const-string/jumbo v3, "package"
33126 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33128 + move-result-object v3
33130 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33132 + move-result-object v3
33134 + iput-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33136 + invoke-static {}, Landroid/os/Process;->myUid()I
33140 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33142 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
33144 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
33146 + move-result-object v1
33151 + move-exception v0
33153 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33155 + const-string v3, "PM,MicrophoneInputStream"
33157 + const-string/jumbo v4, "something went wrong with getting package name"
33159 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33166 +.method private initiate()V
33172 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->context:Landroid/content/Context;
33174 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
33176 + iget-object v2, p0, Landroid/speech/srec/MicrophoneInputStream;->context:Landroid/content/Context;
33178 + const-string/jumbo v3, "privacy"
33180 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33182 + move-result-object v3
33184 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
33186 + move-result-object v3
33188 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
33190 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33192 + const-string/jumbo v1, "package"
33194 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33196 + move-result-object v1
33198 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33200 + move-result-object v1
33202 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33206 + iput-boolean v1, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33208 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
33214 + move-exception v0
33216 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33218 + const-string v1, "PM,MicrophoneInputStream"
33220 + const-string v2, "Something went wrong with initalize variables"
33222 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33226 + iput-boolean v1, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33233 .method public close()V
33234 diff -Npru stock-framework/smali/android/telephony/PhoneStateListener$1.smali pdroid-framework/smali/android/telephony/PhoneStateListener$1.smali
33235 --- stock-framework/smali/android/telephony/PhoneStateListener$1.smali 2013-08-10 20:37:48.159213676 -0700
33236 +++ pdroid-framework/smali/android/telephony/PhoneStateListener$1.smali 2013-08-10 20:37:42.667213449 -0700
33237 @@ -64,23 +64,196 @@
33240 .method public onCallStateChanged(ILjava/lang/String;)V
33244 - iget-object v0, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33245 + move-object/from16 v0, p0
33247 - iget-object v0, v0, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33248 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33250 - const/16 v1, 0x20
33251 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33252 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33255 + move-result-object v3
33257 - invoke-static {v0, v1, p1, v2, p2}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33258 + if-eqz v3, :cond_99
33260 - move-result-object v0
33261 + if-eqz p2, :cond_99
33263 - invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
33264 + invoke-virtual/range {p2 .. p2}, Ljava/lang/String;->isEmpty()Z
33268 + if-nez v3, :cond_99
33270 + move-object/from16 v0, p0
33272 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33274 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33275 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33277 + move-result-object v3
33279 + const-string/jumbo v4, "privacy"
33281 + invoke-virtual {v3, v4}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
33283 + move-result-object v2
33285 + check-cast v2, Landroid/privacy/PrivacySettingsManager;
33287 + move-object/from16 v0, p0
33289 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33291 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33292 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33294 + move-result-object v3
33296 + move-object/from16 v0, p0
33298 + iget-object v4, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33300 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33301 + invoke-static {v4}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33305 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33307 + move-result-object v8
33309 + if-eqz v8, :cond_6a
33311 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
33315 + if-eqz v3, :cond_6a
33317 + const-string v7, ""
33319 + move-object/from16 v0, p0
33321 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33323 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33325 + const/16 v4, 0x20
33329 + move/from16 v0, p1
33331 + invoke-static {v3, v4, v0, v5, v7}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33333 + move-result-object v3
33335 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33337 + move-object/from16 v0, p0
33339 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33341 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33342 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33344 + move-result-object v3
33346 + move-object/from16 v0, p0
33348 + iget-object v4, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33350 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33351 + invoke-static {v4}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33357 + const-string v6, "incomingCall"
33359 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33365 + move-object/from16 v0, p0
33367 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33369 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33371 + const/16 v4, 0x20
33375 + move/from16 v0, p1
33377 + move-object/from16 v1, p2
33379 + invoke-static {v3, v4, v0, v5, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33381 + move-result-object v3
33383 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33385 + move-object/from16 v0, p0
33387 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33389 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33390 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33392 + move-result-object v10
33394 + move-object/from16 v0, p0
33396 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33398 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33399 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33405 + const-string v13, "incomingCall"
33407 + move-object v9, v2
33409 + move-object/from16 v14, p2
33411 + move-object v15, v8
33413 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33418 + move-object/from16 v0, p0
33420 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33422 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33424 + const/16 v4, 0x20
33428 + move/from16 v0, p1
33430 + move-object/from16 v1, p2
33432 + invoke-static {v3, v4, v0, v5, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33434 + move-result-object v3
33436 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33441 .method public onCellInfoChanged(Ljava/util/List;)V
33442 @@ -113,27 +286,124 @@
33445 .method public onCellLocationChanged(Landroid/os/Bundle;)V
33453 invoke-static {p1}, Landroid/telephony/CellLocation;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/CellLocation;
33455 + move-result-object v7
33457 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33459 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33460 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33462 + move-result-object v1
33464 + if-eqz v1, :cond_4a
33466 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33468 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33469 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33471 + move-result-object v1
33473 + const-string/jumbo v2, "privacy"
33475 + invoke-virtual {v1, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
33477 move-result-object v0
33479 + check-cast v0, Landroid/privacy/PrivacySettingsManager;
33481 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33483 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33484 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33486 + move-result-object v1
33488 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33490 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33491 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33495 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33497 + move-result-object v6
33499 + if-eqz v6, :cond_4b
33501 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
33505 + if-eqz v1, :cond_4b
33507 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33509 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33510 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33512 + move-result-object v1
33514 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33516 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33517 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33521 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
33525 + const-string v4, "locationNetwork"
33527 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33534 iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33536 iget-object v1, v1, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33540 - invoke-static {v1, v2, v3, v3, v0}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33541 + invoke-static {v1, v2, v3, v3, v7}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33543 move-result-object v1
33545 invoke-virtual {v1}, Landroid/os/Message;->sendToTarget()V
33548 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33550 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33551 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33553 + move-result-object v1
33555 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33557 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33558 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33562 + const-string v4, "locationNetwork"
33564 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33569 .method public onDataActivity(I)V
33570 diff -Npru stock-framework/smali/android/telephony/PhoneStateListener.smali pdroid-framework/smali/android/telephony/PhoneStateListener.smali
33571 --- stock-framework/smali/android/telephony/PhoneStateListener.smali 2013-08-10 20:37:47.355213643 -0700
33572 +++ pdroid-framework/smali/android/telephony/PhoneStateListener.smali 2013-08-10 20:37:41.899213417 -0700
33573 @@ -31,12 +31,20 @@
33575 .field public static final LISTEN_SIGNAL_STRENGTHS:I = 0x100
33577 +.field private static final TAG:Ljava/lang/String; = "PhoneStateListener"
33581 .field callback:Lcom/android/internal/telephony/IPhoneStateListener;
33583 +.field private context:Landroid/content/Context;
33585 .field mHandler:Landroid/os/Handler;
33587 +.field private packageName:Ljava/lang/String;
33589 +.field private uid:I
33593 .method public constructor <init>()V
33598 +.method static synthetic access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33601 + iget-object v0, p0, Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33606 +.method static synthetic access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33609 + iget-object v0, p0, Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33614 +.method static synthetic access$200(Landroid/telephony/PhoneStateListener;)I
33617 + iget v0, p0, Landroid/telephony/PhoneStateListener;->uid:I
33624 .method public onCallForwardingIndicatorChanged(Z)V
33625 @@ -143,3 +175,27 @@
33630 +.method public setContext(Landroid/content/Context;)V
33633 + iput-object p1, p0, Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33638 +.method public setPackageName(Ljava/lang/String;)V
33641 + iput-object p1, p0, Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33646 +.method public setUid(I)V
33649 + iput p1, p0, Landroid/telephony/PhoneStateListener;->uid:I
33653 diff -Npru stock-framework/smali/android/telephony/ServiceState.smali pdroid-framework/smali/android/telephony/ServiceState.smali
33654 --- stock-framework/smali/android/telephony/ServiceState.smali 2013-08-10 20:37:48.159213676 -0700
33655 +++ pdroid-framework/smali/android/telephony/ServiceState.smali 2013-08-10 20:37:42.667213449 -0700
33656 @@ -875,74 +875,6 @@
33660 -.method private setNullState(I)V
33669 - const-string v0, "PHONE"
33671 - new-instance v1, Ljava/lang/StringBuilder;
33673 - invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
33675 - const-string v2, "[ServiceState] setNullState="
33677 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33679 - move-result-object v1
33681 - invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
33683 - move-result-object v1
33685 - invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33687 - move-result-object v1
33689 - invoke-static {v0, v1}, Landroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I
33691 - iput p1, p0, Landroid/telephony/ServiceState;->mVoiceRegState:I
33693 - iput p1, p0, Landroid/telephony/ServiceState;->mDataRegState:I
33695 - iput-boolean v4, p0, Landroid/telephony/ServiceState;->mRoaming:Z
33697 - iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorAlphaLong:Ljava/lang/String;
33699 - iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorAlphaShort:Ljava/lang/String;
33701 - iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorNumeric:Ljava/lang/String;
33703 - iput-boolean v4, p0, Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
33705 - iput v4, p0, Landroid/telephony/ServiceState;->mRilVoiceRadioTechnology:I
33707 - iput v4, p0, Landroid/telephony/ServiceState;->mRilDataRadioTechnology:I
33709 - iput-boolean v4, p0, Landroid/telephony/ServiceState;->mCssIndicator:Z
33711 - iput v3, p0, Landroid/telephony/ServiceState;->mNetworkId:I
33713 - iput v3, p0, Landroid/telephony/ServiceState;->mSystemId:I
33715 - iput v3, p0, Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
33717 - iput v3, p0, Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
33719 - iput v3, p0, Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
33721 - iput v3, p0, Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
33723 - iput-boolean v4, p0, Landroid/telephony/ServiceState;->mIsEmergencyOnly:Z
33730 .method protected copyFrom(Landroid/telephony/ServiceState;)V
33731 @@ -1798,6 +1730,74 @@
33735 +.method setNullState(I)V
33744 + const-string v0, "PHONE"
33746 + new-instance v1, Ljava/lang/StringBuilder;
33748 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
33750 + const-string v2, "[ServiceState] setNullState="
33752 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33754 + move-result-object v1
33756 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
33758 + move-result-object v1
33760 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33762 + move-result-object v1
33764 + invoke-static {v0, v1}, Landroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I
33766 + iput p1, p0, Landroid/telephony/ServiceState;->mVoiceRegState:I
33768 + iput p1, p0, Landroid/telephony/ServiceState;->mDataRegState:I
33770 + iput-boolean v4, p0, Landroid/telephony/ServiceState;->mRoaming:Z
33772 + iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorAlphaLong:Ljava/lang/String;
33774 + iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorAlphaShort:Ljava/lang/String;
33776 + iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorNumeric:Ljava/lang/String;
33778 + iput-boolean v4, p0, Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
33780 + iput v4, p0, Landroid/telephony/ServiceState;->mRilVoiceRadioTechnology:I
33782 + iput v4, p0, Landroid/telephony/ServiceState;->mRilDataRadioTechnology:I
33784 + iput-boolean v4, p0, Landroid/telephony/ServiceState;->mCssIndicator:Z
33786 + iput v3, p0, Landroid/telephony/ServiceState;->mNetworkId:I
33788 + iput v3, p0, Landroid/telephony/ServiceState;->mSystemId:I
33790 + iput v3, p0, Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
33792 + iput v3, p0, Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
33794 + iput v3, p0, Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
33796 + iput v3, p0, Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
33798 + iput-boolean v4, p0, Landroid/telephony/ServiceState;->mIsEmergencyOnly:Z
33803 .method public setOperatorAlphaLong(Ljava/lang/String;)V
33806 @@ -1885,7 +1885,7 @@
33810 - invoke-direct {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33811 + invoke-virtual {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33815 @@ -1895,7 +1895,7 @@
33819 - invoke-direct {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33820 + invoke-virtual {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V