public class android.telephony.mbms.MbmsDownloadReceiver extends android.content.BroadcastReceiver
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.telephony.mbms.MbmsDownloadReceiver
super_class: android.content.BroadcastReceiver
{
public static final java.lang.String DOWNLOAD_TOKEN_SUFFIX;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: ".download_token"
public static final java.lang.String MBMS_FILE_PROVIDER_META_DATA_KEY;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "mbms-file-provider-authority"
private static final java.lang.String EMBMS_INTENT_PERMISSION;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "android.permission.SEND_EMBMS_INTENTS"
public static final int RESULT_OK;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
public static final int RESULT_INVALID_ACTION;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
public static final int RESULT_MALFORMED_INTENT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
public static final int RESULT_BAD_TEMP_FILE_ROOT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
public static final int RESULT_DOWNLOAD_FINALIZATION_ERROR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
public static final int RESULT_TEMP_FILE_GENERATION_ERROR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 5
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
public static final int RESULT_APP_NOTIFICATION_ERROR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 6
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
private static final java.lang.String LOG_TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "MbmsDownloadReceiver"
private static final java.lang.String TEMP_FILE_SUFFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: ".embms.temp"
private static final java.lang.String TEMP_FILE_STAGING_LOCATION;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "staged_completed_files"
private static final int MAX_TEMP_FILE_RETRIES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private java.lang.String mFileProviderAuthorityCache;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String mMiddlewarePackageNameCache;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial android.content.BroadcastReceiver.<init>:()V
1: aload 0
aconst_null
putfield android.telephony.mbms.MbmsDownloadReceiver.mFileProviderAuthorityCache:Ljava/lang/String;
2: aload 0
aconst_null
putfield android.telephony.mbms.MbmsDownloadReceiver.mMiddlewarePackageNameCache:Ljava/lang/String;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/telephony/mbms/MbmsDownloadReceiver;
public void onReceive(android.content.Context, android.content.Intent);
descriptor: (Landroid/content/Context;Landroid/content/Intent;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.verifyPermissionIntegrity:(Landroid/content/Context;)V
1: aload 0
aload 1
aload 2
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.verifyIntentContents:(Landroid/content/Context;Landroid/content/Intent;)Z
ifne 4
2: aload 0
iconst_2
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
3: return
4: StackMap locals:
StackMap stack:
aload 2
ldc "android.telephony.mbms.extra.TEMP_FILE_ROOT"
invokevirtual android.content.Intent.getStringExtra:(Ljava/lang/String;)Ljava/lang/String;
5: aload 1
invokestatic android.telephony.mbms.MbmsTempFileProvider.getEmbmsTempFileDir:(Landroid/content/Context;)Ljava/io/File;
invokevirtual java.io.File.getPath:()Ljava/lang/String;
6: invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
7: ifne 10
8: aload 0
iconst_3
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
9: return
10: StackMap locals:
StackMap stack:
ldc "android.telephony.mbms.action.DOWNLOAD_RESULT_INTERNAL"
aload 2
invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
11: aload 0
aload 1
aload 2
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.moveDownloadedFile:(Landroid/content/Context;Landroid/content/Intent;)V
12: aload 0
aload 1
aload 2
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.cleanupPostMove:(Landroid/content/Context;Landroid/content/Intent;)V
13: goto 21
StackMap locals:
StackMap stack:
14: ldc "android.telephony.mbms.action.FILE_DESCRIPTOR_REQUEST"
aload 2
invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
15: aload 0
aload 1
aload 2
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.generateTempFiles:(Landroid/content/Context;Landroid/content/Intent;)V
16: goto 21
StackMap locals:
StackMap stack:
17: ldc "android.telephony.mbms.action.CLEANUP"
aload 2
invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 20
18: aload 0
aload 1
aload 2
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.cleanupTempFiles:(Landroid/content/Context;Landroid/content/Intent;)V
19: goto 21
20: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
21: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Landroid/telephony/mbms/MbmsDownloadReceiver;
0 22 1 context Landroid/content/Context;
0 22 2 intent Landroid/content/Intent;
MethodParameters:
Name Flags
context
intent
private boolean verifyIntentContents(android.content.Context, android.content.Intent);
descriptor: (Landroid/content/Context;Landroid/content/Intent;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: ldc "android.telephony.mbms.action.DOWNLOAD_RESULT_INTERNAL"
aload 2
invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 35
1: aload 2
ldc "android.telephony.extra.MBMS_DOWNLOAD_RESULT"
invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
ifne 4
2: ldc "MbmsDownloadReceiver"
ldc "Download result did not include a result code. Ignoring."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 2
ldc "android.telephony.extra.MBMS_DOWNLOAD_REQUEST"
invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
ifne 7
5: ldc "MbmsDownloadReceiver"
ldc "Download result did not include the associated request. Ignoring."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
iconst_1
8: aload 2
ldc "android.telephony.extra.MBMS_DOWNLOAD_RESULT"
9: iconst_2
10: invokevirtual android.content.Intent.getIntExtra:(Ljava/lang/String;I)I
11: if_icmpeq 13
12: iconst_1
ireturn
13: StackMap locals:
StackMap stack:
aload 2
ldc "android.telephony.mbms.extra.TEMP_FILE_ROOT"
invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
ifne 16
14: ldc "MbmsDownloadReceiver"
ldc "Download result did not include the temp file root. Ignoring."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
15: iconst_0
ireturn
16: StackMap locals:
StackMap stack:
aload 2
ldc "android.telephony.extra.MBMS_FILE_INFO"
invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
ifne 19
17: ldc "MbmsDownloadReceiver"
ldc "Download result did not include the associated file info. Ignoring."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
18: iconst_0
ireturn
19: StackMap locals:
StackMap stack:
aload 2
ldc "android.telephony.mbms.extra.FINAL_URI"
invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
ifne 22
20: ldc "MbmsDownloadReceiver"
ldc "Download result did not include the path to the final temp file. Ignoring."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
21: iconst_0
ireturn
22: StackMap locals:
StackMap stack:
aload 2
23: ldc "android.telephony.extra.MBMS_DOWNLOAD_REQUEST"
24: invokevirtual android.content.Intent.getParcelableExtra:(Ljava/lang/String;)Landroid/os/Parcelable;
checkcast android.telephony.mbms.DownloadRequest
astore 3
start local 3 25: new java.lang.StringBuilder
dup
aload 3
invokevirtual android.telephony.mbms.DownloadRequest.getHash:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".download_token"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 26: new java.io.File
dup
27: aload 1
aload 3
invokevirtual android.telephony.mbms.DownloadRequest.getFileServiceId:()Ljava/lang/String;
invokestatic android.telephony.mbms.MbmsUtils.getEmbmsTempFileDirForService:(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
28: aload 4
29: invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 5
start local 5 30: aload 5
invokevirtual java.io.File.exists:()Z
ifne 52
31: ldc "MbmsDownloadReceiver"
new java.lang.StringBuilder
dup
ldc "Supplied download request does not match a token that we have. Expected "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
32: aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
33: invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
34: iconst_0
ireturn
end local 5 end local 4 end local 3 35: StackMap locals:
StackMap stack:
ldc "android.telephony.mbms.action.FILE_DESCRIPTOR_REQUEST"
aload 2
invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 42
36: aload 2
ldc "android.telephony.mbms.extra.SERVICE_ID"
invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
ifne 39
37: ldc "MbmsDownloadReceiver"
ldc "Temp file request did not include the associated service id. Ignoring."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
38: iconst_0
ireturn
39: StackMap locals:
StackMap stack:
aload 2
ldc "android.telephony.mbms.extra.TEMP_FILE_ROOT"
invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
ifne 52
40: ldc "MbmsDownloadReceiver"
ldc "Download result did not include the temp file root. Ignoring."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
41: iconst_0
ireturn
42: StackMap locals:
StackMap stack:
ldc "android.telephony.mbms.action.CLEANUP"
aload 2
invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 52
43: aload 2
ldc "android.telephony.mbms.extra.SERVICE_ID"
invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
ifne 46
44: ldc "MbmsDownloadReceiver"
ldc "Cleanup request did not include the associated service id. Ignoring."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
45: iconst_0
ireturn
46: StackMap locals:
StackMap stack:
aload 2
ldc "android.telephony.mbms.extra.TEMP_FILE_ROOT"
invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
ifne 49
47: ldc "MbmsDownloadReceiver"
ldc "Cleanup request did not include the temp file root. Ignoring."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
48: iconst_0
ireturn
49: StackMap locals:
StackMap stack:
aload 2
ldc "android.telephony.mbms.extra.TEMP_FILES_IN_USE"
invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
ifne 52
50: ldc "MbmsDownloadReceiver"
ldc "Cleanup request did not include the list of temp files in use. Ignoring."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
51: iconst_0
ireturn
52: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Landroid/telephony/mbms/MbmsDownloadReceiver;
0 53 1 context Landroid/content/Context;
0 53 2 intent Landroid/content/Intent;
25 35 3 request Landroid/telephony/mbms/DownloadRequest;
26 35 4 expectedTokenFileName Ljava/lang/String;
30 35 5 expectedTokenFile Ljava/io/File;
MethodParameters:
Name Flags
context
intent
private void moveDownloadedFile(android.content.Context, android.content.Intent);
descriptor: (Landroid/content/Context;Landroid/content/Intent;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 2
1: ldc "android.telephony.extra.MBMS_DOWNLOAD_REQUEST"
2: invokevirtual android.content.Intent.getParcelableExtra:(Ljava/lang/String;)Landroid/os/Parcelable;
checkcast android.telephony.mbms.DownloadRequest
astore 3
start local 3 3: aload 3
invokevirtual android.telephony.mbms.DownloadRequest.getIntentForApp:()Landroid/content/Intent;
astore 4
start local 4 4: aload 4
ifnonnull 8
5: ldc "MbmsDownloadReceiver"
ldc "Malformed app notification intent"
invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
pop
6: aload 0
bipush 6
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
7: return
8: StackMap locals: android.telephony.mbms.DownloadRequest android.content.Intent
StackMap stack:
aload 2
ldc "android.telephony.extra.MBMS_DOWNLOAD_RESULT"
9: iconst_2
10: invokevirtual android.content.Intent.getIntExtra:(Ljava/lang/String;I)I
istore 5
start local 5 11: aload 4
ldc "android.telephony.extra.MBMS_DOWNLOAD_RESULT"
iload 5
invokevirtual android.content.Intent.putExtra:(Ljava/lang/String;I)Landroid/content/Intent;
pop
12: aload 4
ldc "android.telephony.extra.MBMS_DOWNLOAD_REQUEST"
aload 3
invokevirtual android.content.Intent.putExtra:(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
pop
13: iload 5
iconst_1
if_icmpeq 18
14: ldc "MbmsDownloadReceiver"
ldc "Download request indicated a failed download. Aborting."
invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
pop
15: aload 1
aload 4
invokevirtual android.content.Context.sendBroadcast:(Landroid/content/Intent;)V
16: aload 0
iconst_0
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
17: return
18: StackMap locals: int
StackMap stack:
aload 2
ldc "android.telephony.mbms.extra.FINAL_URI"
invokevirtual android.content.Intent.getParcelableExtra:(Ljava/lang/String;)Landroid/os/Parcelable;
checkcast android.net.Uri
astore 6
start local 6 19: aload 1
aload 3
invokevirtual android.telephony.mbms.DownloadRequest.getFileServiceId:()Ljava/lang/String;
aload 6
invokestatic android.telephony.mbms.MbmsDownloadReceiver.verifyTempFilePath:(Landroid/content/Context;Ljava/lang/String;Landroid/net/Uri;)Z
ifne 23
20: ldc "MbmsDownloadReceiver"
new java.lang.StringBuilder
dup
ldc "Download result specified an invalid temp file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
21: aload 0
iconst_4
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
22: return
23: StackMap locals: android.net.Uri
StackMap stack:
aload 2
ldc "android.telephony.extra.MBMS_FILE_INFO"
invokevirtual android.content.Intent.getParcelableExtra:(Ljava/lang/String;)Landroid/os/Parcelable;
checkcast android.telephony.mbms.FileInfo
24: astore 7
start local 7 25: invokestatic java.nio.file.FileSystems.getDefault:()Ljava/nio/file/FileSystem;
26: aload 3
invokevirtual android.telephony.mbms.DownloadRequest.getDestinationUri:()Landroid/net/Uri;
invokevirtual android.net.Uri.getPath:()Ljava/lang/String;
iconst_0
anewarray java.lang.String
27: invokevirtual java.nio.file.FileSystem.getPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
astore 8
start local 8 28: aload 3
invokevirtual android.telephony.mbms.DownloadRequest.getSourceUri:()Landroid/net/Uri;
invokevirtual android.net.Uri.getPath:()Ljava/lang/String;
29: aload 7
invokevirtual android.telephony.mbms.FileInfo.getUri:()Landroid/net/Uri;
invokevirtual android.net.Uri.getPath:()Ljava/lang/String;
30: invokestatic android.telephony.mbms.MbmsDownloadReceiver.getFileRelativePath:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 10
start local 10 31: aload 6
aload 8
32: aload 10
33: invokestatic android.telephony.mbms.MbmsDownloadReceiver.moveToFinalLocation:(Landroid/net/Uri;Ljava/nio/file/Path;Ljava/lang/String;)Landroid/net/Uri;
astore 9
end local 10 start local 9 34: goto 39
end local 9 StackMap locals: android.telephony.mbms.MbmsDownloadReceiver android.content.Context android.content.Intent android.telephony.mbms.DownloadRequest android.content.Intent int android.net.Uri android.telephony.mbms.FileInfo java.nio.file.Path
StackMap stack: java.io.IOException
35: pop
36: ldc "MbmsDownloadReceiver"
ldc "Failed to move temp file to final destination"
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
37: aload 0
iconst_4
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
38: return
start local 9 39: StackMap locals: android.net.Uri
StackMap stack:
aload 4
ldc "android.telephony.extra.MBMS_COMPLETED_FILE_URI"
aload 9
invokevirtual android.content.Intent.putExtra:(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
pop
40: aload 4
ldc "android.telephony.extra.MBMS_FILE_INFO"
aload 7
invokevirtual android.content.Intent.putExtra:(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
pop
41: aload 1
aload 4
invokevirtual android.content.Context.sendBroadcast:(Landroid/content/Intent;)V
42: aload 0
iconst_0
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
43: return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Landroid/telephony/mbms/MbmsDownloadReceiver;
0 44 1 context Landroid/content/Context;
0 44 2 intent Landroid/content/Intent;
3 44 3 request Landroid/telephony/mbms/DownloadRequest;
4 44 4 intentForApp Landroid/content/Intent;
11 44 5 result I
19 44 6 finalTempFile Landroid/net/Uri;
25 44 7 completedFileInfo Landroid/telephony/mbms/FileInfo;
28 44 8 appSpecifiedDestination Ljava/nio/file/Path;
34 35 9 finalLocation Landroid/net/Uri;
39 44 9 finalLocation Landroid/net/Uri;
31 34 10 relativeLocation Ljava/lang/String;
Exception table:
from to target type
28 34 35 Class java.io.IOException
MethodParameters:
Name Flags
context
intent
private void cleanupPostMove(android.content.Context, android.content.Intent);
descriptor: (Landroid/content/Context;Landroid/content/Intent;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
1: ldc "android.telephony.extra.MBMS_DOWNLOAD_REQUEST"
2: invokevirtual android.content.Intent.getParcelableExtra:(Ljava/lang/String;)Landroid/os/Parcelable;
checkcast android.telephony.mbms.DownloadRequest
astore 3
start local 3 3: aload 3
ifnonnull 6
4: ldc "MbmsDownloadReceiver"
ldc "Intent does not include a DownloadRequest. Ignoring."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
5: return
6: StackMap locals: android.telephony.mbms.DownloadRequest
StackMap stack:
aload 2
ldc "android.telephony.mbms.extra.TEMP_LIST"
invokevirtual android.content.Intent.getParcelableArrayListExtra:(Ljava/lang/String;)Ljava/util/ArrayList;
astore 4
start local 4 7: aload 4
ifnonnull 9
8: return
9: StackMap locals: java.util.List
StackMap stack:
aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 15
StackMap locals: android.telephony.mbms.MbmsDownloadReceiver android.content.Context android.content.Intent android.telephony.mbms.DownloadRequest java.util.List top java.util.Iterator
StackMap stack:
10: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.net.Uri
astore 5
start local 5 11: aload 1
aload 3
invokevirtual android.telephony.mbms.DownloadRequest.getFileServiceId:()Ljava/lang/String;
aload 5
invokestatic android.telephony.mbms.MbmsDownloadReceiver.verifyTempFilePath:(Landroid/content/Context;Ljava/lang/String;Landroid/net/Uri;)Z
ifeq 15
12: new java.io.File
dup
aload 5
invokevirtual android.net.Uri.getSchemeSpecificPart:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 7
start local 7 13: aload 7
invokevirtual java.io.File.delete:()Z
ifne 15
14: ldc "MbmsDownloadReceiver"
new java.lang.StringBuilder
dup
ldc "Failed to delete temp file at "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.io.File.getPath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
end local 7 end local 5 15: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
16: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Landroid/telephony/mbms/MbmsDownloadReceiver;
0 17 1 context Landroid/content/Context;
0 17 2 intent Landroid/content/Intent;
3 17 3 request Landroid/telephony/mbms/DownloadRequest;
7 17 4 tempFiles Ljava/util/List<Landroid/net/Uri;>;
11 15 5 tempFileUri Landroid/net/Uri;
13 15 7 tempFile Ljava/io/File;
MethodParameters:
Name Flags
context
intent
private void generateTempFiles(android.content.Context, android.content.Intent);
descriptor: (Landroid/content/Context;Landroid/content/Intent;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc "android.telephony.mbms.extra.SERVICE_ID"
invokevirtual android.content.Intent.getStringExtra:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 1: aload 3
ifnonnull 5
2: ldc "MbmsDownloadReceiver"
ldc "Temp file request did not include the associated service id. Ignoring."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
3: aload 0
iconst_2
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
4: return
5: StackMap locals: java.lang.String
StackMap stack:
aload 2
ldc "android.telephony.mbms.extra.FD_COUNT"
iconst_0
invokevirtual android.content.Intent.getIntExtra:(Ljava/lang/String;I)I
istore 4
start local 4 6: aload 2
ldc "android.telephony.mbms.extra.PAUSED_LIST"
invokevirtual android.content.Intent.getParcelableArrayListExtra:(Ljava/lang/String;)Ljava/util/ArrayList;
astore 5
start local 5 7: iload 4
ifne 12
aload 5
ifnull 8
aload 5
invokeinterface java.util.List.size:()I
ifne 12
8: StackMap locals: int java.util.List
StackMap stack:
ldc "MbmsDownloadReceiver"
ldc "No temp files actually requested. Ending."
invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
pop
9: aload 0
iconst_0
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
10: aload 0
getstatic android.os.Bundle.EMPTY:Landroid/os/Bundle;
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultExtras:(Landroid/os/Bundle;)V
11: return
12: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 3
iload 4
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.generateFreshTempFiles:(Landroid/content/Context;Ljava/lang/String;I)Ljava/util/ArrayList;
13: astore 6
start local 6 14: aload 0
aload 1
aload 3
aload 5
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.generateUrisForPausedFiles:(Landroid/content/Context;Ljava/lang/String;Ljava/util/List;)Ljava/util/ArrayList;
15: astore 7
start local 7 16: new android.os.Bundle
dup
invokespecial android.os.Bundle.<init>:()V
astore 8
start local 8 17: aload 8
ldc "android.telephony.mbms.extra.FREE_URI_LIST"
aload 6
invokevirtual android.os.Bundle.putParcelableArrayList:(Ljava/lang/String;Ljava/util/ArrayList;)V
18: aload 8
ldc "android.telephony.mbms.extra.PAUSED_URI_LIST"
aload 7
invokevirtual android.os.Bundle.putParcelableArrayList:(Ljava/lang/String;Ljava/util/ArrayList;)V
19: aload 0
iconst_0
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
20: aload 0
aload 8
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultExtras:(Landroid/os/Bundle;)V
21: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Landroid/telephony/mbms/MbmsDownloadReceiver;
0 22 1 context Landroid/content/Context;
0 22 2 intent Landroid/content/Intent;
1 22 3 serviceId Ljava/lang/String;
6 22 4 fdCount I
7 22 5 pausedList Ljava/util/List<Landroid/net/Uri;>;
14 22 6 freshTempFiles Ljava/util/ArrayList<Landroid/telephony/mbms/UriPathPair;>;
16 22 7 pausedFiles Ljava/util/ArrayList<Landroid/telephony/mbms/UriPathPair;>;
17 22 8 result Landroid/os/Bundle;
MethodParameters:
Name Flags
context
intent
private java.util.ArrayList<android.telephony.mbms.UriPathPair> generateFreshTempFiles(android.content.Context, java.lang.String, int);
descriptor: (Landroid/content/Context;Ljava/lang/String;I)Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 2
invokestatic android.telephony.mbms.MbmsUtils.getEmbmsTempFileDirForService:(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
astore 4
start local 4 1: aload 4
invokevirtual java.io.File.exists:()Z
ifne 3
2: aload 4
invokevirtual java.io.File.mkdirs:()Z
pop
3: StackMap locals: java.io.File
StackMap stack:
new java.util.ArrayList
dup
iload 3
invokespecial java.util.ArrayList.<init>:(I)V
astore 5
start local 5 4: iconst_0
istore 6
start local 6 5: goto 19
6: StackMap locals: java.util.ArrayList int
StackMap stack:
aload 4
invokestatic android.telephony.mbms.MbmsDownloadReceiver.generateSingleTempFile:(Ljava/io/File;)Ljava/io/File;
astore 7
start local 7 7: aload 7
ifnonnull 11
8: aload 0
iconst_5
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
9: ldc "MbmsDownloadReceiver"
ldc "Failed to generate a temp file. Moving on."
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
10: goto 18
11: StackMap locals: java.io.File
StackMap stack:
aload 7
invokestatic android.net.Uri.fromFile:(Ljava/io/File;)Landroid/net/Uri;
astore 8
start local 8 12: aload 1
aload 0
aload 1
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.getFileProviderAuthorityCached:(Landroid/content/Context;)Ljava/lang/String;
aload 7
13: invokestatic android.telephony.mbms.MbmsTempFileProvider.getUriForFile:(Landroid/content/Context;Ljava/lang/String;Ljava/io/File;)Landroid/net/Uri;
astore 9
start local 9 14: aload 1
aload 0
aload 1
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.getMiddlewarePackageCached:(Landroid/content/Context;)Ljava/lang/String;
aload 9
15: iconst_3
16: invokevirtual android.content.Context.grantUriPermission:(Ljava/lang/String;Landroid/net/Uri;I)V
17: aload 5
new android.telephony.mbms.UriPathPair
dup
aload 8
aload 9
invokespecial android.telephony.mbms.UriPathPair.<init>:(Landroid/net/Uri;Landroid/net/Uri;)V
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 8 end local 7 18: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
19: iload 6
iload 3
if_icmplt 6
end local 6 20: aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Landroid/telephony/mbms/MbmsDownloadReceiver;
0 21 1 context Landroid/content/Context;
0 21 2 serviceId Ljava/lang/String;
0 21 3 freshFdCount I
1 21 4 tempFileDir Ljava/io/File;
4 21 5 result Ljava/util/ArrayList<Landroid/telephony/mbms/UriPathPair;>;
5 20 6 i I
7 18 7 tempFile Ljava/io/File;
12 18 8 fileUri Landroid/net/Uri;
14 18 9 contentUri Landroid/net/Uri;
Signature: (Landroid/content/Context;Ljava/lang/String;I)Ljava/util/ArrayList<Landroid/telephony/mbms/UriPathPair;>;
MethodParameters:
Name Flags
context
serviceId
freshFdCount
private static java.io.File generateSingleTempFile(java.io.File);
descriptor: (Ljava/io/File;)Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 9
2: StackMap locals: int
StackMap stack:
iinc 1 1
3: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
invokestatic java.util.UUID.randomUUID:()Ljava/util/UUID;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ".embms.temp"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 4: new java.io.File
dup
aload 0
aload 2
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 3
start local 3 5: aload 3
invokevirtual java.io.File.createNewFile:()Z
ifeq 9
6: aload 3
invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
7: areturn
8: StackMap locals: java.io.File int java.lang.String java.io.File
StackMap stack: java.io.IOException
pop
end local 3 end local 2 9: StackMap locals:
StackMap stack:
iload 1
iconst_5
if_icmplt 2
10: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 tempFileDir Ljava/io/File;
1 11 1 numTries I
4 9 2 fileName Ljava/lang/String;
5 9 3 tempFile Ljava/io/File;
Exception table:
from to target type
5 7 8 Class java.io.IOException
MethodParameters:
Name Flags
tempFileDir
private java.util.ArrayList<android.telephony.mbms.UriPathPair> generateUrisForPausedFiles(android.content.Context, java.lang.String, java.util.List<android.net.Uri>);
descriptor: (Landroid/content/Context;Ljava/lang/String;Ljava/util/List;)Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ifnonnull 2
1: new java.util.ArrayList
dup
iconst_0
invokespecial java.util.ArrayList.<init>:(I)V
areturn
2: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 3
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 3: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 20
StackMap locals: android.telephony.mbms.MbmsDownloadReceiver android.content.Context java.lang.String java.util.List java.util.ArrayList top java.util.Iterator
StackMap stack:
4: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.net.Uri
astore 5
start local 5 5: aload 1
aload 2
aload 5
invokestatic android.telephony.mbms.MbmsDownloadReceiver.verifyTempFilePath:(Landroid/content/Context;Ljava/lang/String;Landroid/net/Uri;)Z
ifne 9
6: ldc "MbmsDownloadReceiver"
new java.lang.StringBuilder
dup
ldc "Supplied file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is not a valid temp file to resume"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
7: aload 0
iconst_5
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
8: goto 20
9: StackMap locals: android.telephony.mbms.MbmsDownloadReceiver android.content.Context java.lang.String java.util.List java.util.ArrayList android.net.Uri java.util.Iterator
StackMap stack:
new java.io.File
dup
aload 5
invokevirtual android.net.Uri.getSchemeSpecificPart:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 7
start local 7 10: aload 7
invokevirtual java.io.File.exists:()Z
ifne 14
11: ldc "MbmsDownloadReceiver"
new java.lang.StringBuilder
dup
ldc "Supplied file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " does not exist."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
12: aload 0
iconst_5
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.setResultCode:(I)V
13: goto 20
14: StackMap locals: java.io.File
StackMap stack:
aload 1
aload 0
aload 1
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.getFileProviderAuthorityCached:(Landroid/content/Context;)Ljava/lang/String;
aload 7
15: invokestatic android.telephony.mbms.MbmsTempFileProvider.getUriForFile:(Landroid/content/Context;Ljava/lang/String;Ljava/io/File;)Landroid/net/Uri;
astore 8
start local 8 16: aload 1
aload 0
aload 1
invokevirtual android.telephony.mbms.MbmsDownloadReceiver.getMiddlewarePackageCached:(Landroid/content/Context;)Ljava/lang/String;
aload 8
17: iconst_3
18: invokevirtual android.content.Context.grantUriPermission:(Ljava/lang/String;Landroid/net/Uri;I)V
19: aload 4
new android.telephony.mbms.UriPathPair
dup
aload 5
aload 8
invokespecial android.telephony.mbms.UriPathPair.<init>:(Landroid/net/Uri;Landroid/net/Uri;)V
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 7 end local 5 20: StackMap locals: android.telephony.mbms.MbmsDownloadReceiver android.content.Context java.lang.String java.util.List java.util.ArrayList top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
21: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Landroid/telephony/mbms/MbmsDownloadReceiver;
0 22 1 context Landroid/content/Context;
0 22 2 serviceId Ljava/lang/String;
0 22 3 pausedFiles Ljava/util/List<Landroid/net/Uri;>;
3 22 4 result Ljava/util/ArrayList<Landroid/telephony/mbms/UriPathPair;>;
5 20 5 fileUri Landroid/net/Uri;
10 20 7 tempFile Ljava/io/File;
16 20 8 contentUri Landroid/net/Uri;
Signature: (Landroid/content/Context;Ljava/lang/String;Ljava/util/List<Landroid/net/Uri;>;)Ljava/util/ArrayList<Landroid/telephony/mbms/UriPathPair;>;
MethodParameters:
Name Flags
context
serviceId
pausedFiles
private void cleanupTempFiles(android.content.Context, android.content.Intent);
descriptor: (Landroid/content/Context;Landroid/content/Intent;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc "android.telephony.mbms.extra.SERVICE_ID"
invokevirtual android.content.Intent.getStringExtra:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 1: aload 1
aload 3
invokestatic android.telephony.mbms.MbmsUtils.getEmbmsTempFileDirForService:(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
astore 4
start local 4 2: aload 2
ldc "android.telephony.mbms.extra.TEMP_FILES_IN_USE"
invokevirtual android.content.Intent.getParcelableArrayListExtra:(Ljava/lang/String;)Ljava/util/ArrayList;
3: astore 5
start local 5 4: aload 4
new android.telephony.mbms.MbmsDownloadReceiver$1
dup
aload 0
aload 5
invokespecial android.telephony.mbms.MbmsDownloadReceiver$1.<init>:(Landroid/telephony/mbms/MbmsDownloadReceiver;Ljava/util/List;)V
invokevirtual java.io.File.listFiles:(Ljava/io/FileFilter;)[Ljava/io/File;
astore 6
start local 6 5: aload 6
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 9
StackMap locals: android.telephony.mbms.MbmsDownloadReceiver android.content.Context android.content.Intent java.lang.String java.io.File java.util.List java.io.File[] top int int java.io.File[]
StackMap stack:
6: aload 10
iload 8
aaload
astore 7
start local 7 7: aload 7
invokevirtual java.io.File.delete:()Z
pop
end local 7 8: iinc 8 1
StackMap locals:
StackMap stack:
9: iload 8
iload 9
if_icmplt 6
10: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/telephony/mbms/MbmsDownloadReceiver;
0 11 1 context Landroid/content/Context;
0 11 2 intent Landroid/content/Intent;
1 11 3 serviceId Ljava/lang/String;
2 11 4 tempFileDir Ljava/io/File;
4 11 5 filesInUse Ljava/util/List<Landroid/net/Uri;>;
5 11 6 filesToDelete [Ljava/io/File;
7 8 7 fileToDelete Ljava/io/File;
MethodParameters:
Name Flags
context
intent
private static android.net.Uri moveToFinalLocation(android.net.Uri, java.nio.file.Path, java.lang.String);
descriptor: (Landroid/net/Uri;Ljava/nio/file/Path;Ljava/lang/String;)Landroid/net/Uri;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: ldc "file"
aload 0
invokevirtual android.net.Uri.getScheme:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
1: ldc "MbmsDownloadReceiver"
new java.lang.StringBuilder
dup
ldc "Downloaded file location uri "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
2: ldc " does not have a file scheme"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
4: aconst_null
areturn
5: StackMap locals:
StackMap stack:
invokestatic java.nio.file.FileSystems.getDefault:()Ljava/nio/file/FileSystem;
aload 0
invokevirtual android.net.Uri.getPath:()Ljava/lang/String;
iconst_0
anewarray java.lang.String
invokevirtual java.nio.file.FileSystem.getPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
astore 3
start local 3 6: aload 1
aload 2
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 4
start local 4 7: aload 4
invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifne 9
8: aload 4
invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
pop
9: StackMap locals: java.nio.file.Path java.nio.file.Path
StackMap stack:
aload 3
aload 4
iconst_2
anewarray java.nio.file.CopyOption
dup
iconst_0
10: getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
aastore
dup
iconst_1
getstatic java.nio.file.StandardCopyOption.ATOMIC_MOVE:Ljava/nio/file/StandardCopyOption;
aastore
11: invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
astore 5
start local 5 12: aload 5
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
invokestatic android.net.Uri.fromFile:(Ljava/io/File;)Landroid/net/Uri;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 fromPath Landroid/net/Uri;
0 13 1 appSpecifiedPath Ljava/nio/file/Path;
0 13 2 relativeLocation Ljava/lang/String;
6 13 3 fromFile Ljava/nio/file/Path;
7 13 4 toFile Ljava/nio/file/Path;
12 13 5 result Ljava/nio/file/Path;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fromPath
appSpecifiedPath
relativeLocation
public static java.lang.String getFileRelativePath(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
ldc "*"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 3
1: aload 0
bipush 47
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 2
start local 2 2: aload 0
iconst_0
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 0
end local 2 3: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 8
4: ldc "MbmsDownloadReceiver"
new java.lang.StringBuilder
dup
ldc "File location specified in FileInfo does not match the source URI. source: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
5: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " fileinfo path: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
7: aconst_null
areturn
8: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.String.length:()I
aload 0
invokevirtual java.lang.String.length:()I
if_icmpne 10
9: aload 0
aload 0
bipush 47
invokevirtual java.lang.String.lastIndexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
areturn
10: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 2
start local 2 11: aload 2
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 13
12: aload 2
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 2
13: StackMap locals: java.lang.String
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 sourceUriPath Ljava/lang/String;
0 14 1 fileInfoPath Ljava/lang/String;
2 3 2 lastSlash I
11 14 2 prefixOmittedPath Ljava/lang/String;
RuntimeInvisibleAnnotations:
com.android.internal.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.android.internal.annotations.VisibleForTesting()
MethodParameters:
Name Flags
sourceUriPath
fileInfoPath
private static boolean verifyTempFilePath(android.content.Context, java.lang.String, android.net.Uri);
descriptor: (Landroid/content/Context;Ljava/lang/String;Landroid/net/Uri;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: ldc "file"
aload 2
invokevirtual android.net.Uri.getScheme:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
1: ldc "MbmsDownloadReceiver"
new java.lang.StringBuilder
dup
ldc "Uri "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " does not have a file scheme"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual android.net.Uri.getSchemeSpecificPart:()Ljava/lang/String;
astore 3
start local 3 4: new java.io.File
dup
aload 3
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 4
start local 4 5: aload 4
invokevirtual java.io.File.exists:()Z
ifne 8
6: ldc "MbmsDownloadReceiver"
new java.lang.StringBuilder
dup
ldc "File at "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " does not exist."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
7: iconst_0
ireturn
8: StackMap locals: java.lang.String java.io.File
StackMap stack:
aload 0
aload 1
invokestatic android.telephony.mbms.MbmsUtils.getEmbmsTempFileDirForService:(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
aload 4
9: invokestatic android.telephony.mbms.MbmsUtils.isContainedIn:(Ljava/io/File;Ljava/io/File;)Z
10: ifne 15
11: ldc "MbmsDownloadReceiver"
new java.lang.StringBuilder
dup
ldc "File at "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " is not contained in the temp file root,"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: ldc " which is "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
aload 1
invokestatic android.telephony.mbms.MbmsUtils.getEmbmsTempFileDirForService:(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
14: iconst_0
ireturn
15: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 context Landroid/content/Context;
0 16 1 serviceId Ljava/lang/String;
0 16 2 filePath Landroid/net/Uri;
4 16 3 path Ljava/lang/String;
5 16 4 tempFile Ljava/io/File;
MethodParameters:
Name Flags
context
serviceId
filePath
private java.lang.String getFileProviderAuthorityCached(android.content.Context);
descriptor: (Landroid/content/Context;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.telephony.mbms.MbmsDownloadReceiver.mFileProviderAuthorityCache:Ljava/lang/String;
ifnull 2
1: aload 0
getfield android.telephony.mbms.MbmsDownloadReceiver.mFileProviderAuthorityCache:Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic android.telephony.mbms.MbmsDownloadReceiver.getFileProviderAuthority:(Landroid/content/Context;)Ljava/lang/String;
putfield android.telephony.mbms.MbmsDownloadReceiver.mFileProviderAuthorityCache:Ljava/lang/String;
3: aload 0
getfield android.telephony.mbms.MbmsDownloadReceiver.mFileProviderAuthorityCache:Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/telephony/mbms/MbmsDownloadReceiver;
0 4 1 context Landroid/content/Context;
MethodParameters:
Name Flags
context
private static java.lang.String getFileProviderAuthority(android.content.Context);
descriptor: (Landroid/content/Context;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
1: aload 0
invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
sipush 128
invokevirtual android.content.pm.PackageManager.getApplicationInfo:(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
2: astore 1
start local 1 3: goto 6
end local 1 StackMap locals:
StackMap stack: android.content.pm.PackageManager$NameNotFoundException
4: pop
5: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Package manager couldn't find "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
start local 1 6: StackMap locals: android.content.pm.ApplicationInfo
StackMap stack:
aload 1
getfield android.content.pm.ApplicationInfo.metaData:Landroid/os/Bundle;
ifnonnull 8
7: new java.lang.RuntimeException
dup
ldc "App must declare the file provider authority as metadata in the manifest."
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 1
getfield android.content.pm.ApplicationInfo.metaData:Landroid/os/Bundle;
ldc "mbms-file-provider-authority"
invokevirtual android.os.Bundle.getString:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 9: aload 2
ifnonnull 11
10: new java.lang.RuntimeException
dup
ldc "App must declare the file provider authority as metadata in the manifest."
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: java.lang.String
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 context Landroid/content/Context;
3 4 1 appInfo Landroid/content/pm/ApplicationInfo;
6 12 1 appInfo Landroid/content/pm/ApplicationInfo;
9 12 2 authority Ljava/lang/String;
Exception table:
from to target type
0 3 4 Class android.content.pm.PackageManager$NameNotFoundException
MethodParameters:
Name Flags
context
private java.lang.String getMiddlewarePackageCached(android.content.Context);
descriptor: (Landroid/content/Context;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.telephony.mbms.MbmsDownloadReceiver.mMiddlewarePackageNameCache:Ljava/lang/String;
ifnonnull 6
1: aload 0
aload 1
2: ldc "android.telephony.action.EmbmsDownload"
3: invokestatic android.telephony.mbms.MbmsUtils.getMiddlewareServiceInfo:(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/ServiceInfo;
4: getfield android.content.pm.ServiceInfo.packageName:Ljava/lang/String;
5: putfield android.telephony.mbms.MbmsDownloadReceiver.mMiddlewarePackageNameCache:Ljava/lang/String;
6: StackMap locals:
StackMap stack:
aload 0
getfield android.telephony.mbms.MbmsDownloadReceiver.mMiddlewarePackageNameCache:Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/telephony/mbms/MbmsDownloadReceiver;
0 7 1 context Landroid/content/Context;
MethodParameters:
Name Flags
context
private void verifyPermissionIntegrity(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
astore 2
start local 2 1: new android.content.Intent
dup
aload 1
ldc Landroid/telephony/mbms/MbmsDownloadReceiver;
invokespecial android.content.Intent.<init>:(Landroid/content/Context;Ljava/lang/Class;)V
astore 3
start local 3 2: aload 2
aload 3
iconst_0
invokevirtual android.content.pm.PackageManager.queryBroadcastReceivers:(Landroid/content/Intent;I)Ljava/util/List;
astore 4
start local 4 3: aload 4
invokeinterface java.util.List.size:()I
iconst_1
if_icmpeq 5
4: new java.lang.IllegalStateException
dup
ldc "Non-unique download receiver in your app"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: android.content.pm.PackageManager android.content.Intent java.util.List
StackMap stack:
aload 4
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast android.content.pm.ResolveInfo
getfield android.content.pm.ResolveInfo.activityInfo:Landroid/content/pm/ActivityInfo;
astore 5
start local 5 6: aload 5
ifnonnull 8
7: new java.lang.IllegalStateException
dup
ldc "Queried ResolveInfo does not contain a receiver"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: android.content.pm.ActivityInfo
StackMap stack:
aload 1
9: ldc "android.telephony.action.EmbmsDownload"
10: invokestatic android.telephony.mbms.MbmsUtils.getOverrideServiceName:(Landroid/content/Context;Ljava/lang/String;)Landroid/content/ComponentName;
ifnull 16
11: aload 5
getfield android.content.pm.ActivityInfo.permission:Ljava/lang/String;
ifnonnull 15
12: new java.lang.IllegalStateException
dup
13: ldc "MbmsDownloadReceiver must require some permission"
14: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
return
16: StackMap locals:
StackMap stack:
ldc "android.permission.SEND_EMBMS_INTENTS"
aload 5
getfield android.content.pm.ActivityInfo.permission:Ljava/lang/String;
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 18
17: new java.lang.IllegalStateException
dup
ldc "MbmsDownloadReceiver must require the SEND_EMBMS_INTENTS permission."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Landroid/telephony/mbms/MbmsDownloadReceiver;
0 19 1 context Landroid/content/Context;
1 19 2 pm Landroid/content/pm/PackageManager;
2 19 3 queryIntent Landroid/content/Intent;
3 19 4 infos Ljava/util/List<Landroid/content/pm/ResolveInfo;>;
6 19 5 selfInfo Landroid/content/pm/ActivityInfo;
MethodParameters:
Name Flags
context
}
SourceFile: "MbmsDownloadReceiver.java"
NestMembers:
android.telephony.mbms.MbmsDownloadReceiver$1
InnerClasses:
public NameNotFoundException = android.content.pm.PackageManager$NameNotFoundException of android.content.pm.PackageManager
android.telephony.mbms.MbmsDownloadReceiver$1