public class android.os.RecoverySystem
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.os.RecoverySystem
super_class: java.lang.Object
{
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "RecoverySystem"
private static final java.io.File DEFAULT_KEYSTORE;
descriptor: Ljava/io/File;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long PUBLISH_PROGRESS_INTERVAL_MS;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 500
private static final long DEFAULT_EUICC_FACTORY_RESET_TIMEOUT_MILLIS;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 30000
private static final long MIN_EUICC_FACTORY_RESET_TIMEOUT_MILLIS;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5000
private static final long MAX_EUICC_FACTORY_RESET_TIMEOUT_MILLIS;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 60000
private static final java.io.File RECOVERY_DIR;
descriptor: Ljava/io/File;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.io.File LOG_FILE;
descriptor: Ljava/io/File;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.io.File LAST_INSTALL_FILE;
descriptor: Ljava/io/File;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String LAST_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "last_"
private static final java.lang.String ACTION_EUICC_FACTORY_RESET;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "com.android.internal.action.EUICC_FACTORY_RESET"
private static final java.lang.String PACKAGE_NAME_WIPING_EUICC_DATA_CALLBACK;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "android"
public static final java.io.File BLOCK_MAP_FILE;
descriptor: Ljava/io/File;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.io.File UNCRYPT_PACKAGE_FILE;
descriptor: Ljava/io/File;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.io.File UNCRYPT_STATUS_FILE;
descriptor: Ljava/io/File;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final int LOG_FILE_MAX_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
private static final java.lang.Object sRequestLock;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final android.os.IRecoverySystem mService;
descriptor: Landroid/os/IRecoverySystem;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new java.io.File
dup
ldc "/system/etc/security/otacerts.zip"
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
1: putstatic android.os.RecoverySystem.DEFAULT_KEYSTORE:Ljava/io/File;
2: new java.io.File
dup
ldc "/cache/recovery"
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
putstatic android.os.RecoverySystem.RECOVERY_DIR:Ljava/io/File;
3: new java.io.File
dup
getstatic android.os.RecoverySystem.RECOVERY_DIR:Ljava/io/File;
ldc "log"
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
putstatic android.os.RecoverySystem.LOG_FILE:Ljava/io/File;
4: new java.io.File
dup
getstatic android.os.RecoverySystem.RECOVERY_DIR:Ljava/io/File;
ldc "last_install"
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
putstatic android.os.RecoverySystem.LAST_INSTALL_FILE:Ljava/io/File;
5: new java.io.File
dup
getstatic android.os.RecoverySystem.RECOVERY_DIR:Ljava/io/File;
ldc "block.map"
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
putstatic android.os.RecoverySystem.BLOCK_MAP_FILE:Ljava/io/File;
6: new java.io.File
dup
getstatic android.os.RecoverySystem.RECOVERY_DIR:Ljava/io/File;
ldc "uncrypt_file"
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
putstatic android.os.RecoverySystem.UNCRYPT_PACKAGE_FILE:Ljava/io/File;
7: new java.io.File
dup
getstatic android.os.RecoverySystem.RECOVERY_DIR:Ljava/io/File;
ldc "uncrypt_status"
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
putstatic android.os.RecoverySystem.UNCRYPT_STATUS_FILE:Ljava/io/File;
8: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic android.os.RecoverySystem.sRequestLock:Ljava/lang/Object;
return
LocalVariableTable:
Start End Slot Name Signature
private static java.util.HashSet<java.security.cert.X509Certificate> getTrustedCerts(java.io.File);
descriptor: (Ljava/io/File;)Ljava/util/HashSet;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=9, args_size=1
start local 0 0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 1
start local 1 1: aload 0
ifnonnull 3
2: getstatic android.os.RecoverySystem.DEFAULT_KEYSTORE:Ljava/io/File;
astore 0
3: StackMap locals: java.util.HashSet
StackMap stack:
new java.util.zip.ZipFile
dup
aload 0
invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
astore 2
start local 2 4: ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 3
start local 3 5: aload 2
invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
astore 4
start local 4 6: goto 15
7: StackMap locals: java.util.zip.ZipFile java.security.cert.CertificateFactory java.util.Enumeration
StackMap stack:
aload 4
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.util.zip.ZipEntry
astore 5
start local 5 8: aload 2
aload 5
invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
astore 6
start local 6 9: aload 1
aload 3
aload 6
invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
checkcast java.security.cert.X509Certificate
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
10: goto 14
StackMap locals: java.io.File java.util.HashSet java.util.zip.ZipFile java.security.cert.CertificateFactory java.util.Enumeration java.util.zip.ZipEntry java.io.InputStream
StackMap stack: java.lang.Throwable
11: astore 7
12: aload 6
invokevirtual java.io.InputStream.close:()V
13: aload 7
athrow
14: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.io.InputStream.close:()V
end local 6 end local 5 15: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 7
end local 4 end local 3 16: goto 20
StackMap locals: java.io.File java.util.HashSet java.util.zip.ZipFile
StackMap stack: java.lang.Throwable
17: astore 8
18: aload 2
invokevirtual java.util.zip.ZipFile.close:()V
19: aload 8
athrow
20: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.util.zip.ZipFile.close:()V
21: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 keystore Ljava/io/File;
1 22 1 trusted Ljava/util/HashSet<Ljava/security/cert/X509Certificate;>;
4 22 2 zip Ljava/util/zip/ZipFile;
5 16 3 cf Ljava/security/cert/CertificateFactory;
6 16 4 entries Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
8 15 5 entry Ljava/util/zip/ZipEntry;
9 15 6 is Ljava/io/InputStream;
Exception table:
from to target type
9 11 11 any
4 17 17 any
Exceptions:
throws java.io.IOException, java.security.GeneralSecurityException
Signature: (Ljava/io/File;)Ljava/util/HashSet<Ljava/security/cert/X509Certificate;>;
MethodParameters:
Name Flags
keystore
public static void verifyPackage(java.io.File, android.os.RecoverySystem$ProgressListener, java.io.File);
descriptor: (Ljava/io/File;Landroid/os/RecoverySystem$ProgressListener;Ljava/io/File;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method verify(SignerInfo, byte[]) in the type PKCS7 is not applicable for the arguments (SignerInfo, new InputStream(){})\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException, java.security.GeneralSecurityException
MethodParameters:
Name Flags
packageFile
listener
deviceCertsZipFile
private static boolean verifyPackageCompatibility(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tStreams cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
inputStream
private static boolean readAndVerifyPackageCompatibilityEntry(java.io.File);
descriptor: (Ljava/io/File;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: new java.util.zip.ZipFile
dup
aload 0
invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
astore 3
start local 3 2: aload 3
ldc "compatibility.zip"
invokevirtual java.util.zip.ZipFile.getEntry:(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
astore 4
start local 4 3: aload 4
ifnonnull 6
4: aload 3
ifnull 5
aload 3
invokevirtual java.util.zip.ZipFile.close:()V
5: StackMap locals: java.io.File java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile java.util.zip.ZipEntry
StackMap stack:
iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 3
aload 4
invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
astore 5
start local 5 7: aload 5
invokestatic android.os.RecoverySystem.verifyPackageCompatibility:(Ljava/io/InputStream;)Z
8: aload 3
ifnull 9
aload 3
invokevirtual java.util.zip.ZipFile.close:()V
9: StackMap locals: java.io.File java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile java.util.zip.ZipEntry java.io.InputStream
StackMap stack: int
ireturn
end local 5 end local 4 StackMap locals: java.io.File java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile
StackMap stack: java.lang.Throwable
10: astore 1
11: aload 3
ifnull 12
aload 3
invokevirtual java.util.zip.ZipFile.close:()V
end local 3 StackMap locals:
StackMap stack:
12: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 2
aload 1
ifnonnull 14
aload 2
astore 1
goto 15
StackMap locals:
StackMap stack:
14: aload 1
aload 2
if_acmpeq 15
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
15: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 packageFile Ljava/io/File;
2 12 3 zip Ljava/util/zip/ZipFile;
3 10 4 entry Ljava/util/zip/ZipEntry;
7 10 5 inputStream Ljava/io/InputStream;
Exception table:
from to target type
2 4 10 any
6 8 10 any
1 5 13 any
6 9 13 any
10 13 13 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
packageFile
public static boolean verifyPackageCompatibility(java.io.File);
descriptor: (Ljava/io/File;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: new java.io.FileInputStream
dup
aload 0
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
astore 3
start local 3 2: aload 3
invokestatic android.os.RecoverySystem.verifyPackageCompatibility:(Ljava/io/InputStream;)Z
3: aload 3
ifnull 4
aload 3
invokevirtual java.io.InputStream.close:()V
4: StackMap locals: java.io.File java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: int
ireturn
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 1
6: aload 3
ifnull 7
aload 3
invokevirtual java.io.InputStream.close:()V
end local 3 StackMap locals:
StackMap stack:
7: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 2
aload 1
ifnonnull 9
aload 2
astore 1
goto 10
StackMap locals:
StackMap stack:
9: aload 1
aload 2
if_acmpeq 10
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
10: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 compatibilityFile Ljava/io/File;
2 7 3 inputStream Ljava/io/InputStream;
Exception table:
from to target type
2 3 5 any
1 4 8 any
5 8 8 any
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
RuntimeInvisibleAnnotations:
android.annotation.SuppressLint(value = {"Doclava125"})
MethodParameters:
Name Flags
compatibilityFile
public static void processPackage(android.content.Context, java.io.File, android.os.RecoverySystem$ProgressListener, android.os.Handler);
descriptor: (Landroid/content/Context;Ljava/io/File;Landroid/os/RecoverySystem$ProgressListener;Landroid/os/Handler;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=4
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.RECOVERY cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
MethodParameters:
Name Flags
context
packageFile
listener final
handler final
public static void processPackage(android.content.Context, java.io.File, android.os.RecoverySystem$ProgressListener);
descriptor: (Landroid/content/Context;Ljava/io/File;Landroid/os/RecoverySystem$ProgressListener;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.RECOVERY cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
MethodParameters:
Name Flags
context
packageFile
listener final
public static void installPackage(android.content.Context, java.io.File);
descriptor: (Landroid/content/Context;Ljava/io/File;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.RECOVERY cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
packageFile
public static void installPackage(android.content.Context, java.io.File, boolean);
descriptor: (Landroid/content/Context;Ljava/io/File;Z)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.RECOVERY cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
MethodParameters:
Name Flags
context
packageFile
processed
public static void scheduleUpdateOnBoot(android.content.Context, java.io.File);
descriptor: (Landroid/content/Context;Ljava/io/File;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.RECOVERY cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
MethodParameters:
Name Flags
context
packageFile
public static void cancelScheduledUpdate(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.RECOVERY cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
MethodParameters:
Name Flags
context
public static void rebootWipeUserData(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
aload 0
invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
1: iconst_0
iconst_0
2: invokestatic android.os.RecoverySystem.rebootWipeUserData:(Landroid/content/Context;ZLjava/lang/String;ZZ)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 context Landroid/content/Context;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
public static void rebootWipeUserData(android.content.Context, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
aload 1
iconst_0
1: iconst_0
2: invokestatic android.os.RecoverySystem.rebootWipeUserData:(Landroid/content/Context;ZLjava/lang/String;ZZ)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 context Landroid/content/Context;
0 4 1 reason Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
reason
public static void rebootWipeUserData(android.content.Context, boolean);
descriptor: (Landroid/content/Context;Z)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
aload 0
invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
iconst_0
1: iconst_0
2: invokestatic android.os.RecoverySystem.rebootWipeUserData:(Landroid/content/Context;ZLjava/lang/String;ZZ)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 context Landroid/content/Context;
0 4 1 shutdown Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
shutdown
public static void rebootWipeUserData(android.content.Context, boolean, java.lang.String, boolean);
descriptor: (Landroid/content/Context;ZLjava/lang/String;Z)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
aload 2
iload 3
iconst_0
invokestatic android.os.RecoverySystem.rebootWipeUserData:(Landroid/content/Context;ZLjava/lang/String;ZZ)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Landroid/content/Context;
0 2 1 shutdown Z
0 2 2 reason Ljava/lang/String;
0 2 3 force Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
shutdown
reason
force
public static void rebootWipeUserData(android.content.Context, boolean, java.lang.String, boolean, boolean);
descriptor: (Landroid/content/Context;ZLjava/lang/String;ZZ)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=5
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.MASTER_CLEAR cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
shutdown
reason
force
wipeEuicc
public static boolean wipeEuiccData(android.content.Context, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/lang/String;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=15, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
astore 2
start local 2 1: aload 2
ldc "euicc_provisioned"
iconst_0
invokestatic android.provider.Settings$Global.getInt:(Landroid/content/ContentResolver;Ljava/lang/String;I)I
ifne 4
2: ldc "RecoverySystem"
ldc "Skipping eUICC wipe/retain as it is not provisioned"
invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
pop
3: iconst_1
ireturn
4: StackMap locals: android.content.ContentResolver
StackMap stack:
aload 0
5: ldc "euicc"
6: invokevirtual android.content.Context.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
checkcast android.telephony.euicc.EuiccManager
astore 3
start local 3 7: aload 3
ifnull 46
aload 3
invokevirtual android.telephony.euicc.EuiccManager.isEnabled:()Z
ifeq 46
8: new java.util.concurrent.CountDownLatch
dup
iconst_1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 4
start local 4 9: new java.util.concurrent.atomic.AtomicBoolean
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
astore 5
start local 5 10: new android.os.RecoverySystem$1
dup
aload 5
aload 4
invokespecial android.os.RecoverySystem$1.<init>:(Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/CountDownLatch;)V
astore 6
start local 6 11: new android.content.Intent
dup
ldc "com.android.internal.action.EUICC_FACTORY_RESET"
invokespecial android.content.Intent.<init>:(Ljava/lang/String;)V
astore 7
start local 7 12: aload 7
aload 1
invokevirtual android.content.Intent.setPackage:(Ljava/lang/String;)Landroid/content/Intent;
pop
13: aload 0
iconst_0
aload 7
ldc 134217728
getstatic android.os.UserHandle.SYSTEM:Landroid/os/UserHandle;
14: invokestatic android.app.PendingIntent.getBroadcastAsUser:(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/UserHandle;)Landroid/app/PendingIntent;
astore 8
start local 8 15: new android.content.IntentFilter
dup
invokespecial android.content.IntentFilter.<init>:()V
astore 9
start local 9 16: aload 9
ldc "com.android.internal.action.EUICC_FACTORY_RESET"
invokevirtual android.content.IntentFilter.addAction:(Ljava/lang/String;)V
17: new android.os.HandlerThread
dup
ldc "euiccWipeFinishReceiverThread"
invokespecial android.os.HandlerThread.<init>:(Ljava/lang/String;)V
astore 10
start local 10 18: aload 10
invokevirtual android.os.HandlerThread.start:()V
19: new android.os.Handler
dup
aload 10
invokevirtual android.os.HandlerThread.getLooper:()Landroid/os/Looper;
invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
astore 11
start local 11 20: aload 0
invokevirtual android.content.Context.getApplicationContext:()Landroid/content/Context;
21: aload 6
aload 9
aconst_null
aload 11
invokevirtual android.content.Context.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
pop
22: aload 3
aload 8
invokevirtual android.telephony.euicc.EuiccManager.eraseSubscriptions:(Landroid/app/PendingIntent;)V
23: aload 0
invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
24: ldc "euicc_factory_reset_timeout_millis"
25: ldc 30000
26: invokestatic android.provider.Settings$Global.getLong:(Landroid/content/ContentResolver;Ljava/lang/String;J)J
lstore 12
start local 12 27: lload 12
ldc 5000
lcmp
ifge 30
28: ldc 5000
lstore 12
29: goto 32
StackMap locals: android.content.Context java.lang.String android.content.ContentResolver android.telephony.euicc.EuiccManager java.util.concurrent.CountDownLatch java.util.concurrent.atomic.AtomicBoolean android.content.BroadcastReceiver android.content.Intent android.app.PendingIntent android.content.IntentFilter android.os.HandlerThread android.os.Handler long
StackMap stack:
30: lload 12
ldc 60000
lcmp
ifle 32
31: ldc 60000
lstore 12
32: StackMap locals:
StackMap stack:
aload 4
lload 12
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.CountDownLatch.await:(JLjava/util/concurrent/TimeUnit;)Z
ifne 44
33: ldc "RecoverySystem"
ldc "Timeout wiping eUICC data."
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
34: aload 0
invokevirtual android.content.Context.getApplicationContext:()Landroid/content/Context;
aload 6
invokevirtual android.content.Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V
35: iconst_0
ireturn
end local 12 36: StackMap locals: android.content.Context java.lang.String android.content.ContentResolver android.telephony.euicc.EuiccManager java.util.concurrent.CountDownLatch java.util.concurrent.atomic.AtomicBoolean android.content.BroadcastReceiver android.content.Intent android.app.PendingIntent android.content.IntentFilter android.os.HandlerThread android.os.Handler
StackMap stack: java.lang.InterruptedException
astore 12
start local 12 37: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
38: ldc "RecoverySystem"
ldc "Wiping eUICC data interrupted"
aload 12
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
39: aload 0
invokevirtual android.content.Context.getApplicationContext:()Landroid/content/Context;
aload 6
invokevirtual android.content.Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V
40: iconst_0
ireturn
end local 12 41: StackMap locals:
StackMap stack: java.lang.Throwable
astore 14
42: aload 0
invokevirtual android.content.Context.getApplicationContext:()Landroid/content/Context;
aload 6
invokevirtual android.content.Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V
43: aload 14
athrow
44: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.content.Context.getApplicationContext:()Landroid/content/Context;
aload 6
invokevirtual android.content.Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V
45: aload 5
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ireturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 46: StackMap locals: android.content.Context java.lang.String android.content.ContentResolver android.telephony.euicc.EuiccManager
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 context Landroid/content/Context;
0 47 1 packageName Ljava/lang/String;
1 47 2 cr Landroid/content/ContentResolver;
7 47 3 euiccManager Landroid/telephony/euicc/EuiccManager;
9 46 4 euiccFactoryResetLatch Ljava/util/concurrent/CountDownLatch;
10 46 5 wipingSucceeded Ljava/util/concurrent/atomic/AtomicBoolean;
11 46 6 euiccWipeFinishReceiver Landroid/content/BroadcastReceiver;
12 46 7 intent Landroid/content/Intent;
15 46 8 callbackIntent Landroid/app/PendingIntent;
16 46 9 filterConsent Landroid/content/IntentFilter;
18 46 10 euiccHandlerThread Landroid/os/HandlerThread;
20 46 11 euiccHandler Landroid/os/Handler;
27 36 12 waitingTimeMillis J
37 41 12 e Ljava/lang/InterruptedException;
Exception table:
from to target type
23 34 36 Class java.lang.InterruptedException
23 34 41 any
36 39 41 any
MethodParameters:
Name Flags
context
packageName final
public static void rebootPromptAndWipeUserData(android.content.Context, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
ifne 3
2: new java.lang.StringBuilder
dup
ldc "--reason="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokestatic android.os.RecoverySystem.sanitizeArg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
3: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
ldc "--locale="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
invokevirtual java.util.Locale.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 3
start local 3 4: aload 0
iconst_4
anewarray java.lang.String
dup
iconst_0
aconst_null
aastore
dup
iconst_1
ldc "--prompt_and_wipe_data"
aastore
dup
iconst_2
aload 2
aastore
dup
iconst_3
aload 3
aastore
invokestatic android.os.RecoverySystem.bootCommand:(Landroid/content/Context;[Ljava/lang/String;)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 context Landroid/content/Context;
0 6 1 reason Ljava/lang/String;
1 6 2 reasonArg Ljava/lang/String;
4 6 3 localeArg Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
reason
public static void rebootWipeCache(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
invokestatic android.os.RecoverySystem.rebootWipeCache:(Landroid/content/Context;Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Landroid/content/Context;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
public static void rebootWipeCache(android.content.Context, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
ifne 3
2: new java.lang.StringBuilder
dup
ldc "--reason="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokestatic android.os.RecoverySystem.sanitizeArg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
3: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
ldc "--locale="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
invokevirtual java.util.Locale.toLanguageTag:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 3
start local 3 4: aload 0
iconst_3
anewarray java.lang.String
dup
iconst_0
ldc "--wipe_cache"
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 3
aastore
invokestatic android.os.RecoverySystem.bootCommand:(Landroid/content/Context;[Ljava/lang/String;)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 context Landroid/content/Context;
0 6 1 reason Ljava/lang/String;
1 6 2 reasonArg Ljava/lang/String;
4 6 3 localeArg Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
reason
public static void rebootWipeAb(android.content.Context, java.io.File, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/io/File;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tandroid.Manifest.permission.RECOVERY cannot be resolved to a type\n\tandroid.Manifest.permission.REBOOT cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
MethodParameters:
Name Flags
context
packageFile
reason
private static void bootCommand(android.content.Context, java.lang.String[]);
descriptor: (Landroid/content/Context;[Ljava/lang/String;)V
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: getstatic android.os.RecoverySystem.LOG_FILE:Ljava/io/File;
invokevirtual java.io.File.delete:()Z
pop
1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 2: aload 1
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 8
StackMap locals: android.content.Context java.lang.String[] java.lang.StringBuilder top int int java.lang.String[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 3
invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
ifne 7
5: aload 2
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: aload 2
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 3 7: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
iload 5
if_icmplt 3
9: aload 0
ldc "recovery"
invokevirtual android.content.Context.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
checkcast android.os.RecoverySystem
astore 3
start local 3 10: aload 3
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual android.os.RecoverySystem.rebootRecoveryWithCommand:(Ljava/lang/String;)V
11: new java.io.IOException
dup
ldc "Reboot failed (no permissions?)"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 context Landroid/content/Context;
0 12 1 args [Ljava/lang/String;
2 12 2 command Ljava/lang/StringBuilder;
4 7 3 arg Ljava/lang/String;
10 12 3 rs Landroid/os/RecoverySystem;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
args
private static void parseLastInstallLog(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=20, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: new java.io.BufferedReader
dup
new java.io.FileReader
dup
getstatic android.os.RecoverySystem.LAST_INSTALL_FILE:Ljava/io/File;
invokespecial java.io.FileReader.<init>:(Ljava/io/File;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 3
start local 3 2: aconst_null
astore 4
start local 4 3: iconst_m1
istore 5
start local 5 4: iconst_m1
istore 6
start local 6 5: iconst_m1
istore 7
start local 7 6: iconst_m1
istore 8
start local 8 7: iconst_m1
istore 9
start local 9 8: iconst_m1
istore 10
start local 10 9: iconst_m1
istore 11
start local 11 10: iconst_m1
istore 12
start local 12 11: iconst_m1
istore 13
start local 13 12: iconst_m1
istore 14
start local 14 13: goto 64
14: StackMap locals: android.content.Context java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String int int int int int int int int int int
StackMap stack:
aload 4
bipush 58
invokevirtual java.lang.String.indexOf:(I)I
istore 15
start local 15 15: iload 15
iconst_m1
if_icmpeq 64
iload 15
iconst_1
iadd
aload 4
invokevirtual java.lang.String.length:()I
if_icmplt 17
16: goto 64
17: StackMap locals: int
StackMap stack:
aload 4
iload 15
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 16
start local 16 18: aload 16
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
lstore 17
start local 17 19: goto 23
end local 17 StackMap locals: android.content.Context java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String int int int int int int int int int int int java.lang.String
StackMap stack: java.lang.NumberFormatException
20: pop
21: ldc "RecoverySystem"
new java.lang.StringBuilder
dup
ldc "Failed to parse numbers in "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
22: goto 64
start local 17 23: StackMap locals: long
StackMap stack:
aload 4
ldc "bytes"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 26
24: lload 17
ldc 1048576
ldiv
invokestatic java.lang.Math.toIntExact:(J)I
istore 19
start local 19 25: goto 31
end local 19 26: StackMap locals:
StackMap stack:
lload 17
invokestatic java.lang.Math.toIntExact:(J)I
istore 19
start local 19 27: goto 31
end local 19 StackMap locals:
StackMap stack: java.lang.ArithmeticException
28: pop
29: ldc "RecoverySystem"
new java.lang.StringBuilder
dup
ldc "Number overflows in "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
30: goto 64
start local 19 31: StackMap locals: int
StackMap stack:
aload 4
ldc "time"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 34
32: iload 19
istore 7
33: goto 64
StackMap locals:
StackMap stack:
34: aload 4
ldc "uncrypt_time"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 37
35: iload 19
istore 8
36: goto 64
StackMap locals:
StackMap stack:
37: aload 4
ldc "source_build"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 40
38: iload 19
istore 9
39: goto 64
StackMap locals:
StackMap stack:
40: aload 4
ldc "bytes_written"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 45
41: iload 5
iconst_m1
if_icmpne 42
iload 19
goto 43
42: StackMap locals:
StackMap stack:
iload 5
iload 19
iadd
43: StackMap locals:
StackMap stack: int
istore 5
44: goto 64
StackMap locals:
StackMap stack:
45: aload 4
ldc "bytes_stashed"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 50
46: iload 6
iconst_m1
if_icmpne 47
iload 19
goto 48
47: StackMap locals:
StackMap stack:
iload 6
iload 19
iadd
48: StackMap locals:
StackMap stack: int
istore 6
49: goto 64
StackMap locals:
StackMap stack:
50: aload 4
ldc "temperature_start"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 53
51: iload 19
istore 10
52: goto 64
StackMap locals:
StackMap stack:
53: aload 4
ldc "temperature_end"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 56
54: iload 19
istore 11
55: goto 64
StackMap locals:
StackMap stack:
56: aload 4
ldc "temperature_max"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 59
57: iload 19
istore 12
58: goto 64
StackMap locals:
StackMap stack:
59: aload 4
ldc "error"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 62
60: iload 19
istore 13
61: goto 64
StackMap locals:
StackMap stack:
62: aload 4
ldc "cause"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 64
63: iload 19
istore 14
end local 19 end local 17 end local 16 end local 15 64: StackMap locals: android.content.Context java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String int int int int int int int int int int
StackMap stack:
aload 3
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 4
ifnonnull 14
65: iload 7
iconst_m1
if_icmpeq 67
66: aload 0
ldc "ota_time_total"
iload 7
invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
67: StackMap locals:
StackMap stack:
iload 8
iconst_m1
if_icmpeq 69
68: aload 0
ldc "ota_uncrypt_time"
iload 8
invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
69: StackMap locals:
StackMap stack:
iload 9
iconst_m1
if_icmpeq 71
70: aload 0
ldc "ota_source_version"
iload 9
invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
71: StackMap locals:
StackMap stack:
iload 5
iconst_m1
if_icmpeq 73
72: aload 0
ldc "ota_written_in_MiBs"
iload 5
invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
73: StackMap locals:
StackMap stack:
iload 6
iconst_m1
if_icmpeq 75
74: aload 0
ldc "ota_stashed_in_MiBs"
iload 6
invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
75: StackMap locals:
StackMap stack:
iload 10
iconst_m1
if_icmpeq 77
76: aload 0
ldc "ota_temperature_start"
iload 10
invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
77: StackMap locals:
StackMap stack:
iload 11
iconst_m1
if_icmpeq 79
78: aload 0
ldc "ota_temperature_end"
iload 11
invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
79: StackMap locals:
StackMap stack:
iload 12
iconst_m1
if_icmpeq 81
80: aload 0
ldc "ota_temperature_max"
iload 12
invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
81: StackMap locals:
StackMap stack:
iload 13
iconst_m1
if_icmpeq 83
82: aload 0
ldc "ota_non_ab_error_code"
iload 13
invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
83: StackMap locals:
StackMap stack:
iload 14
iconst_m1
if_icmpeq 85
84: aload 0
ldc "ota_non_ab_cause_code"
iload 14
invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 85: StackMap locals: android.content.Context java.lang.Throwable java.lang.Throwable java.io.BufferedReader
StackMap stack:
aload 3
ifnull 93
aload 3
invokevirtual java.io.BufferedReader.close:()V
goto 93
StackMap locals:
StackMap stack: java.lang.Throwable
86: astore 1
aload 3
ifnull 87
aload 3
invokevirtual java.io.BufferedReader.close:()V
end local 3 StackMap locals:
StackMap stack:
87: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
88: astore 2
aload 1
ifnonnull 89
aload 2
astore 1
goto 90
StackMap locals:
StackMap stack:
89: aload 1
aload 2
if_acmpeq 90
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
90: aload 1
athrow
StackMap locals: android.content.Context
StackMap stack: java.io.IOException
91: astore 1
start local 1 92: ldc "RecoverySystem"
ldc "Failed to read lines in last_install"
aload 1
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 1 93: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 94 0 context Landroid/content/Context;
2 87 3 in Ljava/io/BufferedReader;
3 85 4 line Ljava/lang/String;
4 85 5 bytesWrittenInMiB I
5 85 6 bytesStashedInMiB I
6 85 7 timeTotal I
7 85 8 uncryptTime I
8 85 9 sourceVersion I
9 85 10 temperatureStart I
10 85 11 temperatureEnd I
11 85 12 temperatureMax I
12 85 13 errorCode I
13 85 14 causeCode I
15 64 15 numIndex I
18 64 16 numString Ljava/lang/String;
19 20 17 parsedNum J
23 64 17 parsedNum J
25 26 19 scaled I
27 28 19 scaled I
31 64 19 scaled I
92 93 1 e Ljava/io/IOException;
Exception table:
from to target type
18 19 20 Class java.lang.NumberFormatException
23 27 28 Class java.lang.ArithmeticException
2 85 86 any
1 88 88 any
0 91 91 Class java.io.IOException
MethodParameters:
Name Flags
context
public static java.lang.String handleAftermath(android.content.Context);
descriptor: (Landroid/content/Context;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: getstatic android.os.RecoverySystem.LOG_FILE:Ljava/io/File;
ldc -65536
ldc "...\n"
invokestatic android.os.FileUtils.readTextFile:(Ljava/io/File;ILjava/lang/String;)Ljava/lang/String;
astore 1
2: goto 7
StackMap locals: android.content.Context java.lang.String
StackMap stack: java.io.FileNotFoundException
3: pop
4: ldc "RecoverySystem"
ldc "No recovery log file"
invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
pop
goto 7
5: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 6: ldc "RecoverySystem"
ldc "Error reading recovery log"
aload 2
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 2 7: StackMap locals:
StackMap stack:
aload 1
ifnull 9
8: aload 0
invokestatic android.os.RecoverySystem.parseLastInstallLog:(Landroid/content/Context;)V
9: StackMap locals:
StackMap stack:
getstatic android.os.RecoverySystem.BLOCK_MAP_FILE:Ljava/io/File;
invokevirtual java.io.File.exists:()Z
istore 2
start local 2 10: iload 2
ifne 21
getstatic android.os.RecoverySystem.UNCRYPT_PACKAGE_FILE:Ljava/io/File;
invokevirtual java.io.File.exists:()Z
ifeq 21
11: aconst_null
astore 3
start local 3 12: getstatic android.os.RecoverySystem.UNCRYPT_PACKAGE_FILE:Ljava/io/File;
iconst_0
aconst_null
invokestatic android.os.FileUtils.readTextFile:(Ljava/io/File;ILjava/lang/String;)Ljava/lang/String;
astore 3
13: goto 16
StackMap locals: android.content.Context java.lang.String int java.lang.String
StackMap stack: java.io.IOException
14: astore 4
start local 4 15: ldc "RecoverySystem"
ldc "Error reading uncrypt file"
aload 4
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 4 16: StackMap locals:
StackMap stack:
aload 3
ifnull 21
aload 3
ldc "/data"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 21
17: getstatic android.os.RecoverySystem.UNCRYPT_PACKAGE_FILE:Ljava/io/File;
invokevirtual java.io.File.delete:()Z
ifeq 20
18: ldc "RecoverySystem"
new java.lang.StringBuilder
dup
ldc "Deleted: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
pop
19: goto 21
20: StackMap locals:
StackMap stack:
ldc "RecoverySystem"
new java.lang.StringBuilder
dup
ldc "Can't delete: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
end local 3 21: StackMap locals:
StackMap stack:
getstatic android.os.RecoverySystem.RECOVERY_DIR:Ljava/io/File;
invokevirtual java.io.File.list:()[Ljava/lang/String;
astore 3
start local 3 22: iconst_0
istore 4
start local 4 23: goto 29
24: StackMap locals: java.lang.String[] int
StackMap stack:
aload 3
iload 4
aaload
ldc "last_"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 25
goto 28
25: StackMap locals:
StackMap stack:
iload 2
ifeq 26
aload 3
iload 4
aaload
getstatic android.os.RecoverySystem.BLOCK_MAP_FILE:Ljava/io/File;
invokevirtual java.io.File.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 26
goto 28
26: StackMap locals:
StackMap stack:
iload 2
ifeq 27
aload 3
iload 4
aaload
getstatic android.os.RecoverySystem.UNCRYPT_PACKAGE_FILE:Ljava/io/File;
invokevirtual java.io.File.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 27
goto 28
27: StackMap locals:
StackMap stack:
new java.io.File
dup
getstatic android.os.RecoverySystem.RECOVERY_DIR:Ljava/io/File;
aload 3
iload 4
aaload
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
invokestatic android.os.RecoverySystem.recursiveDelete:(Ljava/io/File;)V
28: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
29: aload 3
ifnull 30
iload 4
aload 3
arraylength
if_icmplt 24
end local 4 30: StackMap locals:
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 context Landroid/content/Context;
1 31 1 log Ljava/lang/String;
6 7 2 e Ljava/io/IOException;
10 31 2 reservePackage Z
12 21 3 filename Ljava/lang/String;
15 16 4 e Ljava/io/IOException;
22 31 3 names [Ljava/lang/String;
23 30 4 i I
Exception table:
from to target type
1 2 3 Class java.io.FileNotFoundException
1 2 5 Class java.io.IOException
12 13 14 Class java.io.IOException
MethodParameters:
Name Flags
context
private static void recursiveDelete(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual java.io.File.isDirectory:()Z
ifeq 8
1: aload 0
invokevirtual java.io.File.list:()[Ljava/lang/String;
astore 1
start local 1 2: iconst_0
istore 2
start local 2 3: goto 7
4: StackMap locals: java.lang.String[] int
StackMap stack:
new java.io.File
dup
aload 0
aload 1
iload 2
aaload
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 3
start local 3 5: aload 3
invokestatic android.os.RecoverySystem.recursiveDelete:(Ljava/io/File;)V
end local 3 6: iinc 2 1
StackMap locals:
StackMap stack:
7: aload 1
ifnull 8
iload 2
aload 1
arraylength
if_icmplt 4
end local 2 end local 1 8: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.io.File.delete:()Z
ifne 11
9: ldc "RecoverySystem"
new java.lang.StringBuilder
dup
ldc "Can't delete: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
10: goto 12
11: StackMap locals:
StackMap stack:
ldc "RecoverySystem"
new java.lang.StringBuilder
dup
ldc "Deleted: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
pop
12: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 name Ljava/io/File;
2 8 1 files [Ljava/lang/String;
3 8 2 i I
5 6 3 f Ljava/io/File;
MethodParameters:
Name Flags
name
private boolean uncrypt(java.lang.String, android.os.IRecoverySystemProgressListener);
descriptor: (Ljava/lang/String;Landroid/os/IRecoverySystemProgressListener;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.os.RecoverySystem.mService:Landroid/os/IRecoverySystem;
aload 1
aload 2
invokeinterface android.os.IRecoverySystem.uncrypt:(Ljava/lang/String;Landroid/os/IRecoverySystemProgressListener;)Z
1: ireturn
2: StackMap locals:
StackMap stack: android.os.RemoteException
pop
3: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/os/RecoverySystem;
0 4 1 packageFile Ljava/lang/String;
0 4 2 listener Landroid/os/IRecoverySystemProgressListener;
Exception table:
from to target type
0 1 2 Class android.os.RemoteException
MethodParameters:
Name Flags
packageFile
listener
private boolean setupBcb(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.os.RecoverySystem.mService:Landroid/os/IRecoverySystem;
aload 1
invokeinterface android.os.IRecoverySystem.setupBcb:(Ljava/lang/String;)Z
1: ireturn
2: StackMap locals:
StackMap stack: android.os.RemoteException
pop
3: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/os/RecoverySystem;
0 4 1 command Ljava/lang/String;
Exception table:
from to target type
0 1 2 Class android.os.RemoteException
MethodParameters:
Name Flags
command
private boolean clearBcb();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.os.RecoverySystem.mService:Landroid/os/IRecoverySystem;
invokeinterface android.os.IRecoverySystem.clearBcb:()Z
1: ireturn
2: StackMap locals:
StackMap stack: android.os.RemoteException
pop
3: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/os/RecoverySystem;
Exception table:
from to target type
0 1 2 Class android.os.RemoteException
private void rebootRecoveryWithCommand(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.os.RecoverySystem.mService:Landroid/os/IRecoverySystem;
aload 1
invokeinterface android.os.IRecoverySystem.rebootRecoveryWithCommand:(Ljava/lang/String;)V
1: goto 3
StackMap locals:
StackMap stack: android.os.RemoteException
2: pop
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/os/RecoverySystem;
0 4 1 command Ljava/lang/String;
Exception table:
from to target type
0 1 2 Class android.os.RemoteException
MethodParameters:
Name Flags
command
private static java.lang.String sanitizeArg(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
bipush 63
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 0
1: aload 0
bipush 10
bipush 63
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 0
2: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 arg Ljava/lang/String;
MethodParameters:
Name Flags
arg
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield android.os.RecoverySystem.mService:Landroid/os/IRecoverySystem;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/os/RecoverySystem;
public void <init>(android.os.IRecoverySystem);
descriptor: (Landroid/os/IRecoverySystem;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield android.os.RecoverySystem.mService:Landroid/os/IRecoverySystem;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/os/RecoverySystem;
0 3 1 service Landroid/os/IRecoverySystem;
MethodParameters:
Name Flags
service
}
SourceFile: "RecoverySystem.java"
NestMembers:
android.os.RecoverySystem$1 android.os.RecoverySystem$2 android.os.RecoverySystem$3 android.os.RecoverySystem$3$1 android.os.RecoverySystem$4 android.os.RecoverySystem$ProgressListener
InnerClasses:
android.os.RecoverySystem$1
public abstract ProgressListener = android.os.RecoverySystem$ProgressListener of android.os.RecoverySystem
public final Global = android.provider.Settings$Global of android.provider.Settings