Offset 36, 18 lines modifiedOffset 36, 97 lines modified
  
36 ····.line·4336 ····.line·43
37 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V37 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
38 ····return-void38 ····return-void
39 .end·method39 .end·method
  
 40 .method·private·static·checkAppOp(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
 41 ····.locals·6
  
 42 ····.line·245
 43 ····const-class·v0,·Landroid/app/AppOpsManager;
  
 44 ····invoke-virtual·{p0,·v0},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;
  
 45 ····move-result-object·p0
  
 46 ····move-object·v0,·p0
  
 47 ····check-cast·v0,·Landroid/app/AppOpsManager;
  
 48 ····move-object·v1,·p1
  
 49 ····move·v2,·p2
  
 50 ····move-object·v3,·p3
  
 51 ····move-object·v4,·p4
  
 52 ····move-object·v5,·p5
  
 53 ····.line·246
 54 ····invoke-virtual/range·{v0·..·v5},·Landroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
  
 55 ····move-result·p0
  
 56 ····const/4·p2,·0x1
  
 57 ····if-eqz·p0,·:cond_2
  
 58 ····if-eq·p0,·p2,·:cond_1
  
 59 ····const/4·p2,·0x2
  
 60 ····if-eq·p0,·p2,·:cond_1
  
 61 ····const/4·p2,·0x3
  
 62 ····if-ne·p0,·p2,·:cond_0
  
 63 ····goto·:goto_0
  
 64 ····.line·255
 65 ····:cond_0
 66 ····new-instance·p2,·Ljava/lang/IllegalStateException;
  
 67 ····new-instance·p3,·Ljava/lang/StringBuilder;
  
 68 ····invoke-direct·{p3},·Ljava/lang/StringBuilder;-><init>()V
  
 69 ····invoke-virtual·{p3,·p1},·Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  
 70 ····const-string·p1,·"·has·unknown·mode·"
  
 71 ····invoke-virtual·{p3,·p1},·Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  
 72 ····invoke-virtual·{p3,·p0},·Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  
 73 ····invoke-virtual·{p3},·Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  
 74 ····move-result-object·p0
  
 75 ····invoke-direct·{p2,·p0},·Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  
 76 ····throw·p2
  
 77 ····:cond_1
 78 ····:goto_0
 79 ····const/4·p0,·0x0
  
 80 ····return·p0
  
 81 ····:cond_2
 82 ····return·p2
 83 .end·method
  
40 .method·private·static·checkAppOpAllowingLegacy(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z84 .method·private·static·checkAppOpAllowingLegacy(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
41 ····.locals·685 ····.locals·6
  
42 ····.line·23186 ····.line·266
43 ····const-class·p2,·Landroid/app/AppOpsManager;87 ····const-class·p2,·Landroid/app/AppOpsManager;
  
44 ····invoke-virtual·{p0,·p2},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;88 ····invoke-virtual·{p0,·p2},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;
  
45 ····move-result-object·p089 ····move-result-object·p0
  
46 ····check-cast·p0,·Landroid/app/AppOpsManager;90 ····check-cast·p0,·Landroid/app/AppOpsManager;
Offset 60, 15 lines modifiedOffset 139, 15 lines modified
  
60 ····move-object·v3,·p4139 ····move-object·v3,·p4
  
61 ····move-object·v4,·p5140 ····move-object·v4,·p5
  
62 ····move-object·v5,·p6141 ····move-object·v5,·p6
  
63 ····.line·232142 ····.line·267
64 ····invoke-virtual/range·{v0·..·v5},·Landroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I143 ····invoke-virtual/range·{v0·..·v5},·Landroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
  
65 ····move-result·p2144 ····move-result·p2
  
66 ····const/4·p5,·0x1145 ····const/4·p5,·0x1
  
67 ····if-eqz·p2,·:cond_3146 ····if-eqz·p2,·:cond_3
Offset 81, 15 lines modifiedOffset 160, 15 lines modified
  
81 ····const/4·p6,·0x3160 ····const/4·p6,·0x3
  
82 ····if-ne·p2,·p6,·:cond_0161 ····if-ne·p2,·p6,·:cond_0
  
83 ····goto·:goto_0162 ····goto·:goto_0
  
84 ····.line·246163 ····.line·281
85 ····:cond_0164 ····:cond_0
86 ····new-instance·p0,·Ljava/lang/IllegalStateException;165 ····new-instance·p0,·Ljava/lang/IllegalStateException;
  
87 ····new-instance·p3,·Ljava/lang/StringBuilder;166 ····new-instance·p3,·Ljava/lang/StringBuilder;
  
88 ····invoke-direct·{p3},·Ljava/lang/StringBuilder;-><init>()V167 ····invoke-direct·{p3},·Ljava/lang/StringBuilder;-><init>()V
  
Offset 109, 15 lines modifiedOffset 188, 15 lines modified
  
109 ····throw·p0188 ····throw·p0
  
110 ····:cond_1189 ····:cond_1
111 ····:goto_0190 ····:goto_0
112 ····const-string·p1,·"android:legacy_storage"191 ····const-string·p1,·"android:legacy_storage"
  
113 ····.line·241192 ····.line·276
114 ····invoke-virtual·{p0,·p1,·p3,·p4},·Landroid/app/AppOpsManager;->unsafeCheckOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I193 ····invoke-virtual·{p0,·p1,·p3,·p4},·Landroid/app/AppOpsManager;->unsafeCheckOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I
  
115 ····move-result·p0194 ····move-result·p0
  
116 ····if-nez·p0,·:cond_2195 ····if-nez·p0,·:cond_2
  
117 ····return·p5196 ····return·p5
Offset 130, 28 lines modifiedOffset 209, 28 lines modified
130 ····:cond_3209 ····:cond_3
131 ····return·p5210 ····return·p5
132 .end·method211 .end·method
  
133 .method·private·static·checkAppOpPermission(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z212 .method·private·static·checkAppOpPermission(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z
134 ····.locals·7213 ····.locals·7
  
135 ····.line·364214 ····.line·399
136 ····invoke-static·{p1},·Landroid/app/AppOpsManager;->permissionToOp(Ljava/lang/String;)Ljava/lang/String;215 ····invoke-static·{p1},·Landroid/app/AppOpsManager;->permissionToOp(Ljava/lang/String;)Ljava/lang/String;
  
137 ····move-result-object·v1216 ····move-result-object·v1
  
138 ····const/4·v6,·0x0217 ····const/4·v6,·0x0
  
139 ····if-eqz·v1,·:cond_5218 ····if-eqz·v1,·:cond_5
  
140 ····if-nez·p4,·:cond_0219 ····if-nez·p4,·:cond_0
  
141 ····goto·:goto_1220 ····goto·:goto_1
  
142 ····.line·369221 ····.line·404
143 ····:cond_0222 ····:cond_0
144 ····const-class·v0,·Landroid/app/AppOpsManager;223 ····const-class·v0,·Landroid/app/AppOpsManager;
  
145 ····invoke-virtual·{p0,·v0},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;224 ····invoke-virtual·{p0,·v0},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;
  
146 ····move-result-object·v0225 ····move-result-object·v0
  
Offset 163, 22 lines modifiedOffset 242, 22 lines modified
  
163 ····move-object·v3,·p4242 ····move-object·v3,·p4
  
164 ····move-object·v4,·p5243 ····move-object·v4,·p5
  
165 ····move-object·v5,·p6244 ····move-object·v5,·p6
  
166 ····.line·371245 ····.line·406
167 ····invoke-virtual/range·{v0·..·v5},·Landroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I246 ····invoke-virtual/range·{v0·..·v5},·Landroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
  
168 ····move-result·p4247 ····move-result·p4
  
169 ····goto·:goto_0248 ····goto·:goto_0
  
170 ····.line·372249 ····.line·407
171 ····:cond_1250 ····:cond_1
172 ····invoke-virtual·{v0,·v1,·p3,·p4},·Landroid/app/AppOpsManager;->unsafeCheckOpRawNoThrow(Ljava/lang/String;ILjava/lang/String;)I251 ····invoke-virtual·{v0,·v1,·p3,·p4},·Landroid/app/AppOpsManager;->unsafeCheckOpRawNoThrow(Ljava/lang/String;ILjava/lang/String;)I
  
173 ····move-result·p4252 ····move-result·p4
  
174 ····:goto_0253 ····:goto_0
175 ····const/4·p5,·0x1254 ····const/4·p5,·0x1
Offset 191, 15 lines modifiedOffset 270, 15 lines modified
  
191 ····const/4·p0,·0x4270 ····const/4·p0,·0x4
  
192 ····if-eq·p4,·p0,·:cond_4271 ····if-eq·p4,·p0,·:cond_4
  
193 ····return·v6272 ····return·v6
  
194 ····.line·379273 ····.line·414
195 ····:cond_2274 ····:cond_2
196 ····invoke-virtual·{p0,·p1,·p2,·p3},·Landroid/content/Context;->checkPermission(Ljava/lang/String;II)I275 ····invoke-virtual·{p0,·p1,·p2,·p3},·Landroid/content/Context;->checkPermission(Ljava/lang/String;II)I
  
197 ····move-result·p0276 ····move-result·p0
  
198 ····if-nez·p0,·:cond_3277 ····if-nez·p0,·:cond_3
  
Offset 247, 41 lines modifiedOffset 326, 41 lines modified
247 ····:goto_0326 ····:goto_0
248 ····return·p0327 ····return·p0
249 .end·method328 .end·method
  
250 .method·static·checkNoIsolatedStorageGranted(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;)Z329 .method·static·checkNoIsolatedStorageGranted(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;)Z
251 ····.locals·6330 ····.locals·6
  
252 ····.line·191331 ····.line·205
253 ····const-class·v0,·Landroid/app/AppOpsManager;332 ····const-class·v0,·Landroid/app/AppOpsManager;
  
254 ····invoke-virtual·{p0,·v0},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;333 ····invoke-virtual·{p0,·v0},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;
  
255 ····move-result-object·p0334 ····move-result-object·p0
  
256 ····move-object·v0,·p0335 ····move-object·v0,·p0
  
257 ····check-cast·v0,·Landroid/app/AppOpsManager;336 ····check-cast·v0,·Landroid/app/AppOpsManager;
  
258 ····const-string·p0,·"am·instrument·--no-isolated-storage"337 ····const-string·p0,·"am·instrument·--no-isolated-storage"
  
259 ····.line·193338 ····.line·207
260 ····invoke-static·{p2,·p0},·Lcom/android/providers/media/util/PermissionUtils;->generateAppOpMessage(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;339 ····invoke-static·{p2,·p0},·Lcom/android/providers/media/util/PermissionUtils;->generateAppOpMessage(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
  
261 ····move-result-object·v5340 ····move-result-object·v5
  
262 ····const-string·v1,·"android:no_isolated_storage"341 ····const-string·v1,·"android:no_isolated_storage"
  
263 ····move·v2,·p1342 ····move·v2,·p1
  
264 ····move-object·v3,·p2343 ····move-object·v3,·p2
  
265 ····move-object·v4,·p3344 ····move-object·v4,·p3
  
266 ····.line·192345 ····.line·206
267 ····invoke-virtual/range·{v0·..·v5},·Landroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I346 ····invoke-virtual/range·{v0·..·v5},·Landroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
  
268 ····move-result·p0347 ····move-result·p0
  
269 ····if-nez·p0,·:cond_0348 ····if-nez·p0,·:cond_0
  
270 ····const/4·p0,·0x1349 ····const/4·p0,·0x1
Offset 294, 37 lines modifiedOffset 373, 37 lines modified
294 ····:goto_0373 ····:goto_0
295 ····return·p0374 ····return·p0
296 .end·method375 .end·method
  
297 .method·private·static·checkPermissionAllowingNonLegacy(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;)Z376 .method·private·static·checkPermissionAllowingNonLegacy(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;)Z
298 ····.locals·2377 ····.locals·2
  
299 ····.line·215378 ····.line·229
300 ····const-class·v0,·Landroid/app/AppOpsManager;379 ····const-class·v0,·Landroid/app/AppOpsManager;
  
301 ····invoke-virtual·{p0,·v0},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;380 ····invoke-virtual·{p0,·v0},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;
  
302 ····move-result-object·v0381 ····move-result-object·v0
  
303 ····check-cast·v0,·Landroid/app/AppOpsManager;382 ····check-cast·v0,·Landroid/app/AppOpsManager;
  
304 ····const-string·v1,·"android:legacy_storage"383 ····const-string·v1,·"android:legacy_storage"
  
305 ····.line·218384 ····.line·232
306 ····invoke-virtual·{v0,·v1,·p3,·p4},·Landroid/app/AppOpsManager;->unsafeCheckOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I385 ····invoke-virtual·{v0,·v1,·p3,·p4},·Landroid/app/AppOpsManager;->unsafeCheckOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I
  
307 ····move-result·v0386 ····move-result·v0
  
308 ····if-eqz·v0,·:cond_0387 ····if-eqz·v0,·:cond_0
  
309 ····const/4·p0,·0x1388 ····const/4·p0,·0x1
  
310 ····return·p0389 ····return·p0
  
311 ····.line·222390 ····.line·236
312 ····:cond_0391 ····:cond_0
313 ····invoke-static·{p0,·p1,·p2,·p3,·p4},·Lcom/android/providers/media/util/PermissionUtils;->checkPermissionForPreflight(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;)Z392 ····invoke-static·{p0,·p1,·p2,·p3,·p4},·Lcom/android/providers/media/util/PermissionUtils;->checkPermissionForPreflight(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;)Z
  
314 ····move-result·p0393 ····move-result·p0
  
315 ····return·p0394 ····return·p0
316 .end·method395 .end·method
Offset 332, 46 lines modifiedOffset 411, 46 lines modified
332 .method·private·static·checkPermissionCommon(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z411 .method·private·static·checkPermissionCommon(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z
333 ····.locals·10412 ····.locals·10
  
334 ····const/4·v0,·0x0413 ····const/4·v0,·0x0
  
335 ····if-nez·p4,·:cond_0414 ····if-nez·p4,·:cond_0
  
336 ····.line·327415 ····.line·362
337 ····invoke-virtual·{p0},·Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;416 ····invoke-virtual·{p0},·Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
  
338 ····move-result-object·v1417 ····move-result-object·v1
  
339 ····move·v5,·p3418 ····move·v5,·p3
  
340 ····invoke-virtual·{v1,·p3},·Landroid/content/pm/PackageManager;->getPackagesForUid(I)[Ljava/lang/String;419 ····invoke-virtual·{v1,·p3},·Landroid/content/pm/PackageManager;->getPackagesForUid(I)[Ljava/lang/String;
  
341 ····move-result-object·v1420 ····move-result-object·v1
  
342 ····if-eqz·v1,·:cond_1421 ····if-eqz·v1,·:cond_1
  
343 ····.line·328422 ····.line·363
344 ····array-length·v2,·v1423 ····array-length·v2,·v1
  
345 ····if-lez·v2,·:cond_1424 ····if-lez·v2,·:cond_1
  
346 ····.line·329425 ····.line·364
347 ····aget-object·v1,·v1,·v0426 ····aget-object·v1,·v1,·v0
  
348 ····move-object·v6,·v1427 ····move-object·v6,·v1
  
349 ····goto·:goto_0428 ····goto·:goto_0
  
350 ····:cond_0429 ····:cond_0
351 ····move·v5,·p3430 ····move·v5,·p3
  
352 ····:cond_1431 ····:cond_1
353 ····move-object·v6,·p4432 ····move-object·v6,·p4
  
354 ····.line·333433 ····.line·368
355 ····:goto_0434 ····:goto_0
356 ····invoke-static·{p1},·Lcom/android/providers/media/util/PermissionUtils;->isAppOpPermission(Ljava/lang/String;)Z435 ····invoke-static·{p1},·Lcom/android/providers/media/util/PermissionUtils;->isAppOpPermission(Ljava/lang/String;)Z
  
357 ····move-result·v1436 ····move-result·v1
  
358 ····if-eqz·v1,·:cond_2437 ····if-eqz·v1,·:cond_2
  
Offset 385, 22 lines modifiedOffset 464, 22 lines modified
  
385 ····move-object·v7,·p5464 ····move-object·v7,·p5
  
386 ····move-object/from16·v8,·p6465 ····move-object/from16·v8,·p6
  
387 ····move/from16·v9,·p7466 ····move/from16·v9,·p7
  
388 ····.line·334467 ····.line·369
389 ····invoke-static/range·{v2·..·v9},·Lcom/android/providers/media/util/PermissionUtils;->checkAppOpPermission(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z468 ····invoke-static/range·{v2·..·v9},·Lcom/android/providers/media/util/PermissionUtils;->checkAppOpPermission(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z
  
390 ····move-result·v0469 ····move-result·v0
  
391 ····return·v0470 ····return·v0
  
392 ····.line·337471 ····.line·372
393 ····:cond_2472 ····:cond_2
394 ····invoke-static·{p1},·Lcom/android/providers/media/util/PermissionUtils;->isRuntimePermission(Ljava/lang/String;)Z473 ····invoke-static·{p1},·Lcom/android/providers/media/util/PermissionUtils;->isRuntimePermission(Ljava/lang/String;)Z
  
395 ····move-result·v1474 ····move-result·v1
  
396 ····if-eqz·v1,·:cond_3475 ····if-eqz·v1,·:cond_3
  
Offset 414, 22 lines modifiedOffset 493, 22 lines modified
  
414 ····move-object·v7,·p5493 ····move-object·v7,·p5
  
415 ····move-object/from16·v8,·p6494 ····move-object/from16·v8,·p6
  
416 ····move/from16·v9,·p7495 ····move/from16·v9,·p7
  
417 ····.line·338496 ····.line·373
418 ····invoke-static/range·{v2·..·v9},·Lcom/android/providers/media/util/PermissionUtils;->checkRuntimePermission(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z497 ····invoke-static/range·{v2·..·v9},·Lcom/android/providers/media/util/PermissionUtils;->checkRuntimePermission(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z
  
419 ····move-result·v0498 ····move-result·v0
  
420 ····return·v0499 ····return·v0
  
421 ····.line·341500 ····.line·376
422 ····:cond_3501 ····:cond_3
423 ····invoke-virtual·{p0,·p1,·p2,·p3},·Landroid/content/Context;->checkPermission(Ljava/lang/String;II)I502 ····invoke-virtual·{p0,·p1,·p2,·p3},·Landroid/content/Context;->checkPermission(Ljava/lang/String;II)I
  
424 ····move-result·v1503 ····move-result·v1
  
425 ····if-nez·v1,·:cond_4504 ····if-nez·v1,·:cond_4
  
Offset 490, 15 lines modifiedOffset 569, 15 lines modified
  
490 ····move-object·v4,·p4569 ····move-object·v4,·p4
  
491 ····move-object·v5,·p5570 ····move-object·v5,·p5
  
492 ····move-object·v6,·p6571 ····move-object·v6,·p6
  
493 ····.line·319572 ····.line·354
494 ····invoke-static/range·{v0·..·v7},·Lcom/android/providers/media/util/PermissionUtils;->checkPermissionCommon(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z573 ····invoke-static/range·{v0·..·v7},·Lcom/android/providers/media/util/PermissionUtils;->checkPermissionCommon(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z
  
495 ····move-result·p0574 ····move-result·p0
  
496 ····return·p0575 ····return·p0
497 .end·method576 .end·method
  
Offset 517, 15 lines modifiedOffset 596, 15 lines modified
  
517 ····move·v2,·p2596 ····move·v2,·p2
  
518 ····move·v3,·p3597 ····move·v3,·p3
  
519 ····move-object·v4,·p4598 ····move-object·v4,·p4
  
520 ····.line·281599 ····.line·316
521 ····invoke-static/range·{v0·..·v7},·Lcom/android/providers/media/util/PermissionUtils;->checkPermissionCommon(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z600 ····invoke-static/range·{v0·..·v7},·Lcom/android/providers/media/util/PermissionUtils;->checkPermissionCommon(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z
  
522 ····move-result·p0601 ····move-result·p0
  
523 ····return·p0602 ····return·p0
524 .end·method603 .end·method
  
Offset 997, 42 lines modifiedOffset 1076, 42 lines modified
  
997 ····return·p01076 ····return·p0
998 .end·method1077 .end·method
  
999 .method·private·static·checkRuntimePermission(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z1078 .method·private·static·checkRuntimePermission(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z
1000 ····.locals·81079 ····.locals·8
  
1001 ····.line·3881080 ····.line·423
1002 ····invoke-virtual·{p0,·p1,·p2,·p3},·Landroid/content/Context;->checkPermission(Ljava/lang/String;II)I1081 ····invoke-virtual·{p0,·p1,·p2,·p3},·Landroid/content/Context;->checkPermission(Ljava/lang/String;II)I
  
1003 ····move-result·p21082 ····move-result·p2
  
1004 ····const/4·v0,·0x01083 ····const/4·v0,·0x0
  
1005 ····const/4·v1,·-0x11084 ····const/4·v1,·-0x1
  
1006 ····if-ne·p2,·v1,·:cond_01085 ····if-ne·p2,·v1,·:cond_0
  
1007 ····return·v01086 ····return·v0
  
1008 ····.line·3921087 ····.line·427
1009 ····:cond_01088 ····:cond_0
1010 ····invoke-static·{p1},·Landroid/app/AppOpsManager;->permissionToOp(Ljava/lang/String;)Ljava/lang/String;1089 ····invoke-static·{p1},·Landroid/app/AppOpsManager;->permissionToOp(Ljava/lang/String;)Ljava/lang/String;
  
1011 ····move-result-object·v31090 ····move-result-object·v3
  
1012 ····const/4·p1,·0x11091 ····const/4·p1,·0x1
  
1013 ····if-eqz·v3,·:cond_31092 ····if-eqz·v3,·:cond_3
  
1014 ····if-nez·p4,·:cond_11093 ····if-nez·p4,·:cond_1
  
1015 ····goto·:goto_11094 ····goto·:goto_1
  
1016 ····.line·3971095 ····.line·432
1017 ····:cond_11096 ····:cond_1
1018 ····const-class·p2,·Landroid/app/AppOpsManager;1097 ····const-class·p2,·Landroid/app/AppOpsManager;
  
1019 ····invoke-virtual·{p0,·p2},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;1098 ····invoke-virtual·{p0,·p2},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;
  
1020 ····move-result-object·p01099 ····move-result-object·p0
  
Offset 1046, 22 lines modifiedOffset 1125, 22 lines modified
  
1046 ····move-object·v5,·p41125 ····move-object·v5,·p4
  
1047 ····move-object·v6,·p51126 ····move-object·v6,·p5
  
1048 ····move-object·v7,·p61127 ····move-object·v7,·p6
  
1049 ····.line·3991128 ····.line·434
1050 ····invoke-virtual/range·{v2·..·v7},·Landroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I1129 ····invoke-virtual/range·{v2·..·v7},·Landroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
  
1051 ····move-result·p01130 ····move-result·p0
  
1052 ····goto·:goto_01131 ····goto·:goto_0
  
1053 ····.line·4001132 ····.line·435
1054 ····:cond_21133 ····:cond_2
1055 ····invoke-virtual·{v2,·v3,·p3,·p4},·Landroid/app/AppOpsManager;->unsafeCheckOpRawNoThrow(Ljava/lang/String;ILjava/lang/String;)I1134 ····invoke-virtual·{v2,·v3,·p3,·p4},·Landroid/app/AppOpsManager;->unsafeCheckOpRawNoThrow(Ljava/lang/String;ILjava/lang/String;)I
  
1056 ····move-result·p01135 ····move-result·p0
  
1057 ····:goto_01136 ····:goto_0
1058 ····if-eqz·p0,·:cond_31137 ····if-eqz·p0,·:cond_3
Offset 1073, 14 lines modifiedOffset 1152, 93 lines modified
1073 ····return·v01152 ····return·v0
  
1074 ····:cond_31153 ····:cond_3
1075 ····:goto_11154 ····:goto_1
1076 ····return·p11155 ····return·p1
1077 .end·method1156 .end·method
  
 1157 .method·public·static·checkWriteImagesOrVideoAppOps(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;)Z
 1158 ····.locals·7
  
 1159 ····.line·194
 1160 ····sget-object·v0,·Lcom/android/providers/media/util/PermissionUtils;->sOpDescription:Ljava/lang/ThreadLocal;
  
 1161 ····.line·196
 1162 ····invoke-virtual·{v0},·Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
  
 1163 ····move-result-object·v0
  
 1164 ····check-cast·v0,·Ljava/lang/String;
  
 1165 ····invoke-static·{p2,·v0},·Lcom/android/providers/media/util/PermissionUtils;->generateAppOpMessage(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
  
 1166 ····move-result-object·v6
  
 1167 ····const-string·v2,·"android:write_media_images"
  
 1168 ····move-object·v1,·p0
  
 1169 ····move·v3,·p1
  
 1170 ····move-object·v4,·p2
  
 1171 ····move-object·v5,·p3
  
 1172 ····.line·194
 1173 ····invoke-static/range·{v1·..·v6},·Lcom/android/providers/media/util/PermissionUtils;->checkAppOp(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
  
 1174 ····move-result·v0
  
 1175 ····if-nez·v0,·:cond_1
  
 1176 ····sget-object·v0,·Lcom/android/providers/media/util/PermissionUtils;->sOpDescription:Ljava/lang/ThreadLocal;
  
 1177 ····.line·199
 1178 ····invoke-virtual·{v0},·Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
  
 1179 ····move-result-object·v0
  
 1180 ····check-cast·v0,·Ljava/lang/String;
  
 1181 ····invoke-static·{p2,·v0},·Lcom/android/providers/media/util/PermissionUtils;->generateAppOpMessage(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
  
 1182 ····move-result-object·v6
  
 1183 ····const-string·v2,·"android:write_media_video"
  
 1184 ····move-object·v1,·p0
  
 1185 ····move·v3,·p1
  
 1186 ····move-object·v4,·p2
  
 1187 ····move-object·v5,·p3
  
 1188 ····.line·197
 1189 ····invoke-static/range·{v1·..·v6},·Lcom/android/providers/media/util/PermissionUtils;->checkAppOp(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
  
 1190 ····move-result·p0
  
 1191 ····if-eqz·p0,·:cond_0
  
 1192 ····goto·:goto_0
  
 1193 ····:cond_0
 1194 ····const/4·p0,·0x0
  
 1195 ····goto·:goto_1
  
 1196 ····:cond_1
 1197 ····:goto_0
 1198 ····const/4·p0,·0x1
  
 1199 ····:goto_1
 1200 ····return·p0
 1201 .end·method
  
1078 .method·public·static·clearOpDescription()V1202 .method·public·static·clearOpDescription()V
1079 ····.locals·21203 ····.locals·2
  
1080 ····.line·571204 ····.line·57
1081 ····sget-object·v0,·Lcom/android/providers/media/util/PermissionUtils;->sOpDescription:Ljava/lang/ThreadLocal;1205 ····sget-object·v0,·Lcom/android/providers/media/util/PermissionUtils;->sOpDescription:Ljava/lang/ThreadLocal;
  
1082 ····const/4·v1,·0x01206 ····const/4·v1,·0x0
Offset 1095, 15 lines modifiedOffset 1253, 15 lines modified
  
1095 ····if-nez·p1,·:cond_01253 ····if-nez·p1,·:cond_0
  
1096 ····const/4·p0,·0x01254 ····const/4·p0,·0x0
  
1097 ····return-object·p01255 ····return-object·p0
  
1098 ····.line·2061256 ····.line·220
1099 ····:cond_01257 ····:cond_0
1100 ····new-instance·v0,·Ljava/lang/StringBuilder;1258 ····new-instance·v0,·Ljava/lang/StringBuilder;
  
1101 ····invoke-direct·{v0},·Ljava/lang/StringBuilder;-><init>()V1259 ····invoke-direct·{v0},·Ljava/lang/StringBuilder;-><init>()V
  
1102 ····const-string·v1,·"Package:·"1260 ····const-string·v1,·"Package:·"
  
Offset 1127, 15 lines modifiedOffset 1285, 15 lines modified
  
1127 ····return-object·p01285 ····return-object·p0
1128 .end·method1286 .end·method
  
1129 .method·private·static·isAppOpPermission(Ljava/lang/String;)Z1287 .method·private·static·isAppOpPermission(Ljava/lang/String;)Z
1130 ····.locals·31288 ····.locals·3
  
1131 ····.line·3451289 ····.line·380
1132 ····invoke-virtual·{p0},·Ljava/lang/String;->hashCode()I1290 ····invoke-virtual·{p0},·Ljava/lang/String;->hashCode()I
  
1133 ····move-result·v01291 ····move-result·v0
  
1134 ····const/4·v1,·0x01292 ····const/4·v1,·0x0
  
1135 ····const·v2,·-0x6c1165bf1293 ····const·v2,·-0x6c1165bf
Offset 1171, 15 lines modifiedOffset 1329, 15 lines modified
  
1171 ····return·p01329 ····return·p0
1172 .end·method1330 .end·method
  
1173 .method·private·static·isRuntimePermission(Ljava/lang/String;)Z1331 .method·private·static·isRuntimePermission(Ljava/lang/String;)Z
1174 ····.locals·41332 ····.locals·4
  
1175 ····.line·3531333 ····.line·388
1176 ····invoke-virtual·{p0},·Ljava/lang/String;->hashCode()I1334 ····invoke-virtual·{p0},·Ljava/lang/String;->hashCode()I
  
1177 ····move-result·v01335 ····move-result·v0
  
1178 ····const·v1,·-0x1833add01336 ····const·v1,·-0x1833add0
  
1179 ····const/4·v2,·0x01337 ····const/4·v2,·0x0