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: .line 86
            new java.io.File
            dup
            ldc "/system/etc/security/otacerts.zip"
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
         1: .line 85
            putstatic android.os.RecoverySystem.DEFAULT_KEYSTORE:Ljava/io/File;
         2: .line 98
            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: .line 99
            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: .line 100
            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: .line 115
            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: .line 123
            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: .line 131
            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: .line 137
            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 // java.io.File keystore
         0: .line 159
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* trusted */
        start local 1 // java.util.HashSet trusted
         1: .line 160
            aload 0 /* keystore */
            ifnonnull 3
         2: .line 161
            getstatic android.os.RecoverySystem.DEFAULT_KEYSTORE:Ljava/io/File;
            astore 0 /* keystore */
         3: .line 163
      StackMap locals: java.util.HashSet
      StackMap stack:
            new java.util.zip.ZipFile
            dup
            aload 0 /* keystore */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
            astore 2 /* zip */
        start local 2 // java.util.zip.ZipFile zip
         4: .line 165
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 3 /* cf */
        start local 3 // java.security.cert.CertificateFactory cf
         5: .line 166
            aload 2 /* zip */
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 4 /* entries */
        start local 4 // java.util.Enumeration entries
         6: .line 167
            goto 15
         7: .line 168
      StackMap locals: java.util.zip.ZipFile java.security.cert.CertificateFactory java.util.Enumeration
      StackMap stack:
            aload 4 /* entries */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            astore 5 /* entry */
        start local 5 // java.util.zip.ZipEntry entry
         8: .line 169
            aload 2 /* zip */
            aload 5 /* entry */
            invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            astore 6 /* is */
        start local 6 // java.io.InputStream is
         9: .line 171
            aload 1 /* trusted */
            aload 3 /* cf */
            aload 6 /* is */
            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: .line 172
            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: .line 173
            aload 6 /* is */
            invokevirtual java.io.InputStream.close:()V
        13: .line 174
            aload 7
            athrow
        14: .line 173
      StackMap locals:
      StackMap stack:
            aload 6 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 6 // java.io.InputStream is
        end local 5 // java.util.zip.ZipEntry entry
        15: .line 167
      StackMap locals:
      StackMap stack:
            aload 4 /* entries */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 7
        end local 4 // java.util.Enumeration entries
        end local 3 // java.security.cert.CertificateFactory cf
        16: .line 176
            goto 20
      StackMap locals: java.io.File java.util.HashSet java.util.zip.ZipFile
      StackMap stack: java.lang.Throwable
        17: astore 8
        18: .line 177
            aload 2 /* zip */
            invokevirtual java.util.zip.ZipFile.close:()V
        19: .line 178
            aload 8
            athrow
        20: .line 177
      StackMap locals:
      StackMap stack:
            aload 2 /* zip */
            invokevirtual java.util.zip.ZipFile.close:()V
        21: .line 179
            aload 1 /* trusted */
            areturn
        end local 2 // java.util.zip.ZipFile zip
        end local 1 // java.util.HashSet trusted
        end local 0 // java.io.File keystore
      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: .line 289
            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: .line 372
            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 // java.io.File packageFile
         0: .line 389
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: new java.util.zip.ZipFile
            dup
            aload 0 /* packageFile */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
            astore 3 /* zip */
        start local 3 // java.util.zip.ZipFile zip
         2: .line 390
            aload 3 /* zip */
            ldc "compatibility.zip"
            invokevirtual java.util.zip.ZipFile.getEntry:(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
            astore 4 /* entry */
        start local 4 // java.util.zip.ZipEntry entry
         3: .line 391
            aload 4 /* entry */
            ifnonnull 6
         4: .line 396
            aload 3 /* zip */
            ifnull 5
            aload 3 /* zip */
            invokevirtual java.util.zip.ZipFile.close:()V
         5: .line 392
      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: .line 394
      StackMap locals:
      StackMap stack:
            aload 3 /* zip */
            aload 4 /* entry */
            invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            astore 5 /* inputStream */
        start local 5 // java.io.InputStream inputStream
         7: .line 395
            aload 5 /* inputStream */
            invokestatic android.os.RecoverySystem.verifyPackageCompatibility:(Ljava/io/InputStream;)Z
         8: .line 396
            aload 3 /* zip */
            ifnull 9
            aload 3 /* zip */
            invokevirtual java.util.zip.ZipFile.close:()V
         9: .line 395
      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 // java.io.InputStream inputStream
        end local 4 // java.util.zip.ZipEntry entry
      StackMap locals: java.io.File java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile
      StackMap stack: java.lang.Throwable
        10: astore 1
        11: .line 396
            aload 3 /* zip */
            ifnull 12
            aload 3 /* zip */
            invokevirtual java.util.zip.ZipFile.close:()V
        end local 3 // java.util.zip.ZipFile zip
      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 // java.io.File packageFile
      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 // java.io.File compatibilityFile
         0: .line 411
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: new java.io.FileInputStream
            dup
            aload 0 /* compatibilityFile */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 3 /* inputStream */
        start local 3 // java.io.InputStream inputStream
         2: .line 412
            aload 3 /* inputStream */
            invokestatic android.os.RecoverySystem.verifyPackageCompatibility:(Ljava/io/InputStream;)Z
         3: .line 413
            aload 3 /* inputStream */
            ifnull 4
            aload 3 /* inputStream */
            invokevirtual java.io.InputStream.close:()V
         4: .line 412
      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: .line 413
            aload 3 /* inputStream */
            ifnull 7
            aload 3 /* inputStream */
            invokevirtual java.io.InputStream.close:()V
        end local 3 // java.io.InputStream inputStream
      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 // java.io.File compatibilityFile
      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: .line 432
            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: .line 493
            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: .line 515
            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: .line 537
            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: .line 629
            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: .line 667
            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 // android.content.Context context
         0: .line 690
            aload 0 /* context */
            iconst_0
            aload 0 /* context */
            invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
         1: .line 691
            iconst_0
            iconst_0
         2: .line 690
            invokestatic android.os.RecoverySystem.rebootWipeUserData:(Landroid/content/Context;ZLjava/lang/String;ZZ)V
         3: .line 692
            return
        end local 0 // android.content.Context context
      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 // android.content.Context context
        start local 1 // java.lang.String reason
         0: .line 696
            aload 0 /* context */
            iconst_0
            aload 1 /* reason */
            iconst_0
         1: .line 697
            iconst_0
         2: .line 696
            invokestatic android.os.RecoverySystem.rebootWipeUserData:(Landroid/content/Context;ZLjava/lang/String;ZZ)V
         3: .line 698
            return
        end local 1 // java.lang.String reason
        end local 0 // android.content.Context context
      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 // android.content.Context context
        start local 1 // boolean shutdown
         0: .line 703
            aload 0 /* context */
            iload 1 /* shutdown */
            aload 0 /* context */
            invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
            iconst_0
         1: .line 704
            iconst_0
         2: .line 703
            invokestatic android.os.RecoverySystem.rebootWipeUserData:(Landroid/content/Context;ZLjava/lang/String;ZZ)V
         3: .line 705
            return
        end local 1 // boolean shutdown
        end local 0 // android.content.Context context
      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 // android.content.Context context
        start local 1 // boolean shutdown
        start local 2 // java.lang.String reason
        start local 3 // boolean force
         0: .line 710
            aload 0 /* context */
            iload 1 /* shutdown */
            aload 2 /* reason */
            iload 3 /* force */
            iconst_0
            invokestatic android.os.RecoverySystem.rebootWipeUserData:(Landroid/content/Context;ZLjava/lang/String;ZZ)V
         1: .line 711
            return
        end local 3 // boolean force
        end local 2 // java.lang.String reason
        end local 1 // boolean shutdown
        end local 0 // android.content.Context context
      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: .line 747
            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 // android.content.Context context
        start local 1 // java.lang.String packageName
         0: .line 784
            aload 0 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
            astore 2 /* cr */
        start local 2 // android.content.ContentResolver cr
         1: .line 785
            aload 2 /* cr */
            ldc "euicc_provisioned"
            iconst_0
            invokestatic android.provider.Settings$Global.getInt:(Landroid/content/ContentResolver;Ljava/lang/String;I)I
            ifne 4
         2: .line 788
            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: .line 789
            iconst_1
            ireturn
         4: .line 792
      StackMap locals: android.content.ContentResolver
      StackMap stack:
            aload 0 /* context */
         5: .line 793
            ldc "euicc"
         6: .line 792
            invokevirtual android.content.Context.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast android.telephony.euicc.EuiccManager
            astore 3 /* euiccManager */
        start local 3 // android.telephony.euicc.EuiccManager euiccManager
         7: .line 794
            aload 3 /* euiccManager */
            ifnull 46
            aload 3 /* euiccManager */
            invokevirtual android.telephony.euicc.EuiccManager.isEnabled:()Z
            ifeq 46
         8: .line 795
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 4 /* euiccFactoryResetLatch */
        start local 4 // java.util.concurrent.CountDownLatch euiccFactoryResetLatch
         9: .line 796
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            astore 5 /* wipingSucceeded */
        start local 5 // java.util.concurrent.atomic.AtomicBoolean wipingSucceeded
        10: .line 798
            new android.os.RecoverySystem$1
            dup
            aload 5 /* wipingSucceeded */
            aload 4 /* euiccFactoryResetLatch */
            invokespecial android.os.RecoverySystem$1.<init>:(Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/CountDownLatch;)V
            astore 6 /* euiccWipeFinishReceiver */
        start local 6 // android.content.BroadcastReceiver euiccWipeFinishReceiver
        11: .line 816
            new android.content.Intent
            dup
            ldc "com.android.internal.action.EUICC_FACTORY_RESET"
            invokespecial android.content.Intent.<init>:(Ljava/lang/String;)V
            astore 7 /* intent */
        start local 7 // android.content.Intent intent
        12: .line 817
            aload 7 /* intent */
            aload 1 /* packageName */
            invokevirtual android.content.Intent.setPackage:(Ljava/lang/String;)Landroid/content/Intent;
            pop
        13: .line 819
            aload 0 /* context */
            iconst_0
            aload 7 /* intent */
            ldc 134217728
            getstatic android.os.UserHandle.SYSTEM:Landroid/os/UserHandle;
        14: .line 818
            invokestatic android.app.PendingIntent.getBroadcastAsUser:(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/UserHandle;)Landroid/app/PendingIntent;
            astore 8 /* callbackIntent */
        start local 8 // android.app.PendingIntent callbackIntent
        15: .line 820
            new android.content.IntentFilter
            dup
            invokespecial android.content.IntentFilter.<init>:()V
            astore 9 /* filterConsent */
        start local 9 // android.content.IntentFilter filterConsent
        16: .line 821
            aload 9 /* filterConsent */
            ldc "com.android.internal.action.EUICC_FACTORY_RESET"
            invokevirtual android.content.IntentFilter.addAction:(Ljava/lang/String;)V
        17: .line 822
            new android.os.HandlerThread
            dup
            ldc "euiccWipeFinishReceiverThread"
            invokespecial android.os.HandlerThread.<init>:(Ljava/lang/String;)V
            astore 10 /* euiccHandlerThread */
        start local 10 // android.os.HandlerThread euiccHandlerThread
        18: .line 823
            aload 10 /* euiccHandlerThread */
            invokevirtual android.os.HandlerThread.start:()V
        19: .line 824
            new android.os.Handler
            dup
            aload 10 /* euiccHandlerThread */
            invokevirtual android.os.HandlerThread.getLooper:()Landroid/os/Looper;
            invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
            astore 11 /* euiccHandler */
        start local 11 // android.os.Handler euiccHandler
        20: .line 825
            aload 0 /* context */
            invokevirtual android.content.Context.getApplicationContext:()Landroid/content/Context;
        21: .line 826
            aload 6 /* euiccWipeFinishReceiver */
            aload 9 /* filterConsent */
            aconst_null
            aload 11 /* euiccHandler */
            invokevirtual android.content.Context.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
            pop
        22: .line 827
            aload 3 /* euiccManager */
            aload 8 /* callbackIntent */
            invokevirtual android.telephony.euicc.EuiccManager.eraseSubscriptions:(Landroid/app/PendingIntent;)V
        23: .line 830
            aload 0 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
        24: .line 831
            ldc "euicc_factory_reset_timeout_millis"
        25: .line 832
            ldc 30000
        26: .line 829
            invokestatic android.provider.Settings$Global.getLong:(Landroid/content/ContentResolver;Ljava/lang/String;J)J
            lstore 12 /* waitingTimeMillis */
        start local 12 // long waitingTimeMillis
        27: .line 833
            lload 12 /* waitingTimeMillis */
            ldc 5000
            lcmp
            ifge 30
        28: .line 834
            ldc 5000
            lstore 12 /* waitingTimeMillis */
        29: .line 835
            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 /* waitingTimeMillis */
            ldc 60000
            lcmp
            ifle 32
        31: .line 836
            ldc 60000
            lstore 12 /* waitingTimeMillis */
        32: .line 838
      StackMap locals:
      StackMap stack:
            aload 4 /* euiccFactoryResetLatch */
            lload 12 /* waitingTimeMillis */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.CountDownLatch.await:(JLjava/util/concurrent/TimeUnit;)Z
            ifne 44
        33: .line 839
            ldc "RecoverySystem"
            ldc "Timeout wiping eUICC data."
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        34: .line 847
            aload 0 /* context */
            invokevirtual android.content.Context.getApplicationContext:()Landroid/content/Context;
            aload 6 /* euiccWipeFinishReceiver */
            invokevirtual android.content.Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V
        35: .line 840
            iconst_0
            ireturn
        end local 12 // long waitingTimeMillis
        36: .line 842
      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 /* e */
        start local 12 // java.lang.InterruptedException e
        37: .line 843
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        38: .line 844
            ldc "RecoverySystem"
            ldc "Wiping eUICC data interrupted"
            aload 12 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        39: .line 847
            aload 0 /* context */
            invokevirtual android.content.Context.getApplicationContext:()Landroid/content/Context;
            aload 6 /* euiccWipeFinishReceiver */
            invokevirtual android.content.Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V
        40: .line 845
            iconst_0
            ireturn
        end local 12 // java.lang.InterruptedException e
        41: .line 846
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
        42: .line 847
            aload 0 /* context */
            invokevirtual android.content.Context.getApplicationContext:()Landroid/content/Context;
            aload 6 /* euiccWipeFinishReceiver */
            invokevirtual android.content.Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V
        43: .line 848
            aload 14
            athrow
        44: .line 847
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            invokevirtual android.content.Context.getApplicationContext:()Landroid/content/Context;
            aload 6 /* euiccWipeFinishReceiver */
            invokevirtual android.content.Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V
        45: .line 849
            aload 5 /* wipingSucceeded */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ireturn
        end local 11 // android.os.Handler euiccHandler
        end local 10 // android.os.HandlerThread euiccHandlerThread
        end local 9 // android.content.IntentFilter filterConsent
        end local 8 // android.app.PendingIntent callbackIntent
        end local 7 // android.content.Intent intent
        end local 6 // android.content.BroadcastReceiver euiccWipeFinishReceiver
        end local 5 // java.util.concurrent.atomic.AtomicBoolean wipingSucceeded
        end local 4 // java.util.concurrent.CountDownLatch euiccFactoryResetLatch
        46: .line 851
      StackMap locals: android.content.Context java.lang.String android.content.ContentResolver android.telephony.euicc.EuiccManager
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // android.telephony.euicc.EuiccManager euiccManager
        end local 2 // android.content.ContentResolver cr
        end local 1 // java.lang.String packageName
        end local 0 // android.content.Context context
      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 // android.content.Context context
        start local 1 // java.lang.String reason
         0: .line 857
            aconst_null
            astore 2 /* reasonArg */
        start local 2 // java.lang.String reasonArg
         1: .line 858
            aload 1 /* reason */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifne 3
         2: .line 859
            new java.lang.StringBuilder
            dup
            ldc "--reason="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* reason */
            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 /* reasonArg */
         3: .line 862
      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 /* localeArg */
        start local 3 // java.lang.String localeArg
         4: .line 863
            aload 0 /* context */
            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 /* reasonArg */
            aastore
            dup
            iconst_3
            aload 3 /* localeArg */
            aastore
            invokestatic android.os.RecoverySystem.bootCommand:(Landroid/content/Context;[Ljava/lang/String;)V
         5: .line 864
            return
        end local 3 // java.lang.String localeArg
        end local 2 // java.lang.String reasonArg
        end local 1 // java.lang.String reason
        end local 0 // android.content.Context context
      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 // android.content.Context context
         0: .line 871
            aload 0 /* context */
            aload 0 /* context */
            invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
            invokestatic android.os.RecoverySystem.rebootWipeCache:(Landroid/content/Context;Ljava/lang/String;)V
         1: .line 872
            return
        end local 0 // android.content.Context context
      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 // android.content.Context context
        start local 1 // java.lang.String reason
         0: .line 876
            aconst_null
            astore 2 /* reasonArg */
        start local 2 // java.lang.String reasonArg
         1: .line 877
            aload 1 /* reason */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifne 3
         2: .line 878
            new java.lang.StringBuilder
            dup
            ldc "--reason="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* reason */
            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 /* reasonArg */
         3: .line 881
      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 /* localeArg */
        start local 3 // java.lang.String localeArg
         4: .line 882
            aload 0 /* context */
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "--wipe_cache"
            aastore
            dup
            iconst_1
            aload 2 /* reasonArg */
            aastore
            dup
            iconst_2
            aload 3 /* localeArg */
            aastore
            invokestatic android.os.RecoverySystem.bootCommand:(Landroid/content/Context;[Ljava/lang/String;)V
         5: .line 883
            return
        end local 3 // java.lang.String localeArg
        end local 2 // java.lang.String reasonArg
        end local 1 // java.lang.String reason
        end local 0 // android.content.Context context
      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: .line 898
            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 // android.content.Context context
        start local 1 // java.lang.String[] args
         0: .line 920
            getstatic android.os.RecoverySystem.LOG_FILE:Ljava/io/File;
            invokevirtual java.io.File.delete:()Z
            pop
         1: .line 922
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* command */
        start local 2 // java.lang.StringBuilder command
         2: .line 923
            aload 1 /* args */
            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 /* arg */
        start local 3 // java.lang.String arg
         4: .line 924
            aload 3 /* arg */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifne 7
         5: .line 925
            aload 2 /* command */
            aload 3 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 926
            aload 2 /* command */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // java.lang.String arg
         7: .line 923
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 3
         9: .line 932
            aload 0 /* context */
            ldc "recovery"
            invokevirtual android.content.Context.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast android.os.RecoverySystem
            astore 3 /* rs */
        start local 3 // android.os.RecoverySystem rs
        10: .line 933
            aload 3 /* rs */
            aload 2 /* command */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual android.os.RecoverySystem.rebootRecoveryWithCommand:(Ljava/lang/String;)V
        11: .line 935
            new java.io.IOException
            dup
            ldc "Reboot failed (no permissions?)"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // android.os.RecoverySystem rs
        end local 2 // java.lang.StringBuilder command
        end local 1 // java.lang.String[] args
        end local 0 // android.content.Context context
      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 // android.content.Context context
         0: .line 942
            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 /* in */
        start local 3 // java.io.BufferedReader in
         2: .line 943
            aconst_null
            astore 4 /* line */
        start local 4 // java.lang.String line
         3: .line 944
            iconst_m1
            istore 5 /* bytesWrittenInMiB */
        start local 5 // int bytesWrittenInMiB
         4: iconst_m1
            istore 6 /* bytesStashedInMiB */
        start local 6 // int bytesStashedInMiB
         5: .line 945
            iconst_m1
            istore 7 /* timeTotal */
        start local 7 // int timeTotal
         6: .line 946
            iconst_m1
            istore 8 /* uncryptTime */
        start local 8 // int uncryptTime
         7: .line 947
            iconst_m1
            istore 9 /* sourceVersion */
        start local 9 // int sourceVersion
         8: .line 948
            iconst_m1
            istore 10 /* temperatureStart */
        start local 10 // int temperatureStart
         9: .line 949
            iconst_m1
            istore 11 /* temperatureEnd */
        start local 11 // int temperatureEnd
        10: .line 950
            iconst_m1
            istore 12 /* temperatureMax */
        start local 12 // int temperatureMax
        11: .line 951
            iconst_m1
            istore 13 /* errorCode */
        start local 13 // int errorCode
        12: .line 952
            iconst_m1
            istore 14 /* causeCode */
        start local 14 // int causeCode
        13: .line 954
            goto 64
        14: .line 960
      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 /* line */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 15 /* numIndex */
        start local 15 // int numIndex
        15: .line 961
            iload 15 /* numIndex */
            iconst_m1
            if_icmpeq 64
            iload 15 /* numIndex */
            iconst_1
            iadd
            aload 4 /* line */
            invokevirtual java.lang.String.length:()I
            if_icmplt 17
        16: .line 962
            goto 64
        17: .line 964
      StackMap locals: int
      StackMap stack:
            aload 4 /* line */
            iload 15 /* numIndex */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 16 /* numString */
        start local 16 // java.lang.String numString
        18: .line 967
            aload 16 /* numString */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 17 /* parsedNum */
        start local 17 // long parsedNum
        19: .line 968
            goto 23
        end local 17 // long parsedNum
      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: .line 969
            ldc "RecoverySystem"
            new java.lang.StringBuilder
            dup
            ldc "Failed to parse numbers in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* line */
            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: .line 970
            goto 64
        start local 17 // long parsedNum
        23: .line 976
      StackMap locals: long
      StackMap stack:
            aload 4 /* line */
            ldc "bytes"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 26
        24: .line 977
            lload 17 /* parsedNum */
            ldc 1048576
            ldiv
            invokestatic java.lang.Math.toIntExact:(J)I
            istore 19 /* scaled */
        start local 19 // int scaled
        25: .line 978
            goto 31
        end local 19 // int scaled
        26: .line 979
      StackMap locals:
      StackMap stack:
            lload 17 /* parsedNum */
            invokestatic java.lang.Math.toIntExact:(J)I
            istore 19 /* scaled */
        start local 19 // int scaled
        27: .line 981
            goto 31
        end local 19 // int scaled
      StackMap locals:
      StackMap stack: java.lang.ArithmeticException
        28: pop
        29: .line 982
            ldc "RecoverySystem"
            new java.lang.StringBuilder
            dup
            ldc "Number overflows in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* line */
            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: .line 983
            goto 64
        start local 19 // int scaled
        31: .line 986
      StackMap locals: int
      StackMap stack:
            aload 4 /* line */
            ldc "time"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 34
        32: .line 987
            iload 19 /* scaled */
            istore 7 /* timeTotal */
        33: .line 988
            goto 64
      StackMap locals:
      StackMap stack:
        34: aload 4 /* line */
            ldc "uncrypt_time"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 37
        35: .line 989
            iload 19 /* scaled */
            istore 8 /* uncryptTime */
        36: .line 990
            goto 64
      StackMap locals:
      StackMap stack:
        37: aload 4 /* line */
            ldc "source_build"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 40
        38: .line 991
            iload 19 /* scaled */
            istore 9 /* sourceVersion */
        39: .line 992
            goto 64
      StackMap locals:
      StackMap stack:
        40: aload 4 /* line */
            ldc "bytes_written"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 45
        41: .line 993
            iload 5 /* bytesWrittenInMiB */
            iconst_m1
            if_icmpne 42
            iload 19 /* scaled */
            goto 43
        42: .line 994
      StackMap locals:
      StackMap stack:
            iload 5 /* bytesWrittenInMiB */
            iload 19 /* scaled */
            iadd
        43: .line 993
      StackMap locals:
      StackMap stack: int
            istore 5 /* bytesWrittenInMiB */
        44: .line 995
            goto 64
      StackMap locals:
      StackMap stack:
        45: aload 4 /* line */
            ldc "bytes_stashed"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 50
        46: .line 996
            iload 6 /* bytesStashedInMiB */
            iconst_m1
            if_icmpne 47
            iload 19 /* scaled */
            goto 48
        47: .line 997
      StackMap locals:
      StackMap stack:
            iload 6 /* bytesStashedInMiB */
            iload 19 /* scaled */
            iadd
        48: .line 996
      StackMap locals:
      StackMap stack: int
            istore 6 /* bytesStashedInMiB */
        49: .line 998
            goto 64
      StackMap locals:
      StackMap stack:
        50: aload 4 /* line */
            ldc "temperature_start"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 53
        51: .line 999
            iload 19 /* scaled */
            istore 10 /* temperatureStart */
        52: .line 1000
            goto 64
      StackMap locals:
      StackMap stack:
        53: aload 4 /* line */
            ldc "temperature_end"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 56
        54: .line 1001
            iload 19 /* scaled */
            istore 11 /* temperatureEnd */
        55: .line 1002
            goto 64
      StackMap locals:
      StackMap stack:
        56: aload 4 /* line */
            ldc "temperature_max"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 59
        57: .line 1003
            iload 19 /* scaled */
            istore 12 /* temperatureMax */
        58: .line 1004
            goto 64
      StackMap locals:
      StackMap stack:
        59: aload 4 /* line */
            ldc "error"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 62
        60: .line 1005
            iload 19 /* scaled */
            istore 13 /* errorCode */
        61: .line 1006
            goto 64
      StackMap locals:
      StackMap stack:
        62: aload 4 /* line */
            ldc "cause"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 64
        63: .line 1007
            iload 19 /* scaled */
            istore 14 /* causeCode */
        end local 19 // int scaled
        end local 17 // long parsedNum
        end local 16 // java.lang.String numString
        end local 15 // int numIndex
        64: .line 954
      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 /* in */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 4 /* line */
            ifnonnull 14
        65: .line 1012
            iload 7 /* timeTotal */
            iconst_m1
            if_icmpeq 67
        66: .line 1013
            aload 0 /* context */
            ldc "ota_time_total"
            iload 7 /* timeTotal */
            invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
        67: .line 1015
      StackMap locals:
      StackMap stack:
            iload 8 /* uncryptTime */
            iconst_m1
            if_icmpeq 69
        68: .line 1016
            aload 0 /* context */
            ldc "ota_uncrypt_time"
            iload 8 /* uncryptTime */
            invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
        69: .line 1018
      StackMap locals:
      StackMap stack:
            iload 9 /* sourceVersion */
            iconst_m1
            if_icmpeq 71
        70: .line 1019
            aload 0 /* context */
            ldc "ota_source_version"
            iload 9 /* sourceVersion */
            invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
        71: .line 1021
      StackMap locals:
      StackMap stack:
            iload 5 /* bytesWrittenInMiB */
            iconst_m1
            if_icmpeq 73
        72: .line 1022
            aload 0 /* context */
            ldc "ota_written_in_MiBs"
            iload 5 /* bytesWrittenInMiB */
            invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
        73: .line 1024
      StackMap locals:
      StackMap stack:
            iload 6 /* bytesStashedInMiB */
            iconst_m1
            if_icmpeq 75
        74: .line 1025
            aload 0 /* context */
            ldc "ota_stashed_in_MiBs"
            iload 6 /* bytesStashedInMiB */
            invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
        75: .line 1027
      StackMap locals:
      StackMap stack:
            iload 10 /* temperatureStart */
            iconst_m1
            if_icmpeq 77
        76: .line 1028
            aload 0 /* context */
            ldc "ota_temperature_start"
            iload 10 /* temperatureStart */
            invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
        77: .line 1030
      StackMap locals:
      StackMap stack:
            iload 11 /* temperatureEnd */
            iconst_m1
            if_icmpeq 79
        78: .line 1031
            aload 0 /* context */
            ldc "ota_temperature_end"
            iload 11 /* temperatureEnd */
            invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
        79: .line 1033
      StackMap locals:
      StackMap stack:
            iload 12 /* temperatureMax */
            iconst_m1
            if_icmpeq 81
        80: .line 1034
            aload 0 /* context */
            ldc "ota_temperature_max"
            iload 12 /* temperatureMax */
            invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
        81: .line 1036
      StackMap locals:
      StackMap stack:
            iload 13 /* errorCode */
            iconst_m1
            if_icmpeq 83
        82: .line 1037
            aload 0 /* context */
            ldc "ota_non_ab_error_code"
            iload 13 /* errorCode */
            invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
        83: .line 1039
      StackMap locals:
      StackMap stack:
            iload 14 /* causeCode */
            iconst_m1
            if_icmpeq 85
        84: .line 1040
            aload 0 /* context */
            ldc "ota_non_ab_cause_code"
            iload 14 /* causeCode */
            invokestatic com.android.internal.logging.MetricsLogger.histogram:(Landroid/content/Context;Ljava/lang/String;I)V
        end local 14 // int causeCode
        end local 13 // int errorCode
        end local 12 // int temperatureMax
        end local 11 // int temperatureEnd
        end local 10 // int temperatureStart
        end local 9 // int sourceVersion
        end local 8 // int uncryptTime
        end local 7 // int timeTotal
        end local 6 // int bytesStashedInMiB
        end local 5 // int bytesWrittenInMiB
        end local 4 // java.lang.String line
        85: .line 1043
      StackMap locals: android.content.Context java.lang.Throwable java.lang.Throwable java.io.BufferedReader
      StackMap stack:
            aload 3 /* in */
            ifnull 93
            aload 3 /* in */
            invokevirtual java.io.BufferedReader.close:()V
            goto 93
      StackMap locals:
      StackMap stack: java.lang.Throwable
        86: astore 1
            aload 3 /* in */
            ifnull 87
            aload 3 /* in */
            invokevirtual java.io.BufferedReader.close:()V
        end local 3 // java.io.BufferedReader in
      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 /* e */
        start local 1 // java.io.IOException e
        92: .line 1044
            ldc "RecoverySystem"
            ldc "Failed to read lines in last_install"
            aload 1 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 1 // java.io.IOException e
        93: .line 1046
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.content.Context context
      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 // android.content.Context context
         0: .line 1056
            aconst_null
            astore 1 /* log */
        start local 1 // java.lang.String log
         1: .line 1058
            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 /* log */
         2: .line 1059
            goto 7
      StackMap locals: android.content.Context java.lang.String
      StackMap stack: java.io.FileNotFoundException
         3: pop
         4: .line 1060
            ldc "RecoverySystem"
            ldc "No recovery log file"
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
            goto 7
         5: .line 1061
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         6: .line 1062
            ldc "RecoverySystem"
            ldc "Error reading recovery log"
            aload 2 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // java.io.IOException e
         7: .line 1065
      StackMap locals:
      StackMap stack:
            aload 1 /* log */
            ifnull 9
         8: .line 1066
            aload 0 /* context */
            invokestatic android.os.RecoverySystem.parseLastInstallLog:(Landroid/content/Context;)V
         9: .line 1070
      StackMap locals:
      StackMap stack:
            getstatic android.os.RecoverySystem.BLOCK_MAP_FILE:Ljava/io/File;
            invokevirtual java.io.File.exists:()Z
            istore 2 /* reservePackage */
        start local 2 // boolean reservePackage
        10: .line 1071
            iload 2 /* reservePackage */
            ifne 21
            getstatic android.os.RecoverySystem.UNCRYPT_PACKAGE_FILE:Ljava/io/File;
            invokevirtual java.io.File.exists:()Z
            ifeq 21
        11: .line 1072
            aconst_null
            astore 3 /* filename */
        start local 3 // java.lang.String filename
        12: .line 1074
            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 /* filename */
        13: .line 1075
            goto 16
      StackMap locals: android.content.Context java.lang.String int java.lang.String
      StackMap stack: java.io.IOException
        14: astore 4 /* e */
        start local 4 // java.io.IOException e
        15: .line 1076
            ldc "RecoverySystem"
            ldc "Error reading uncrypt file"
            aload 4 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 4 // java.io.IOException e
        16: .line 1081
      StackMap locals:
      StackMap stack:
            aload 3 /* filename */
            ifnull 21
            aload 3 /* filename */
            ldc "/data"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 21
        17: .line 1082
            getstatic android.os.RecoverySystem.UNCRYPT_PACKAGE_FILE:Ljava/io/File;
            invokevirtual java.io.File.delete:()Z
            ifeq 20
        18: .line 1083
            ldc "RecoverySystem"
            new java.lang.StringBuilder
            dup
            ldc "Deleted: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* filename */
            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: .line 1084
            goto 21
        20: .line 1085
      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 /* filename */
            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 // java.lang.String filename
        21: .line 1096
      StackMap locals:
      StackMap stack:
            getstatic android.os.RecoverySystem.RECOVERY_DIR:Ljava/io/File;
            invokevirtual java.io.File.list:()[Ljava/lang/String;
            astore 3 /* names */
        start local 3 // java.lang.String[] names
        22: .line 1097
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        23: goto 29
        24: .line 1098
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 3 /* names */
            iload 4 /* i */
            aaload
            ldc "last_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 25
            goto 28
        25: .line 1099
      StackMap locals:
      StackMap stack:
            iload 2 /* reservePackage */
            ifeq 26
            aload 3 /* names */
            iload 4 /* i */
            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: .line 1100
      StackMap locals:
      StackMap stack:
            iload 2 /* reservePackage */
            ifeq 27
            aload 3 /* names */
            iload 4 /* i */
            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: .line 1102
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            getstatic android.os.RecoverySystem.RECOVERY_DIR:Ljava/io/File;
            aload 3 /* names */
            iload 4 /* i */
            aaload
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            invokestatic android.os.RecoverySystem.recursiveDelete:(Ljava/io/File;)V
        28: .line 1097
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: aload 3 /* names */
            ifnull 30
            iload 4 /* i */
            aload 3 /* names */
            arraylength
            if_icmplt 24
        end local 4 // int i
        30: .line 1105
      StackMap locals:
      StackMap stack:
            aload 1 /* log */
            areturn
        end local 3 // java.lang.String[] names
        end local 2 // boolean reservePackage
        end local 1 // java.lang.String log
        end local 0 // android.content.Context context
      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 // java.io.File name
         0: .line 1112
            aload 0 /* name */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 8
         1: .line 1113
            aload 0 /* name */
            invokevirtual java.io.File.list:()[Ljava/lang/String;
            astore 1 /* files */
        start local 1 // java.lang.String[] files
         2: .line 1114
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 1115
      StackMap locals: java.lang.String[] int
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* name */
            aload 1 /* files */
            iload 2 /* i */
            aaload
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 3 /* f */
        start local 3 // java.io.File f
         5: .line 1116
            aload 3 /* f */
            invokestatic android.os.RecoverySystem.recursiveDelete:(Ljava/io/File;)V
        end local 3 // java.io.File f
         6: .line 1114
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: aload 1 /* files */
            ifnull 8
            iload 2 /* i */
            aload 1 /* files */
            arraylength
            if_icmplt 4
        end local 2 // int i
        end local 1 // java.lang.String[] files
         8: .line 1120
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            invokevirtual java.io.File.delete:()Z
            ifne 11
         9: .line 1121
            ldc "RecoverySystem"
            new java.lang.StringBuilder
            dup
            ldc "Can't delete: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* name */
            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: .line 1122
            goto 12
        11: .line 1123
      StackMap locals:
      StackMap stack:
            ldc "RecoverySystem"
            new java.lang.StringBuilder
            dup
            ldc "Deleted: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* name */
            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: .line 1125
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.io.File name
      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 // android.os.RecoverySystem this
        start local 1 // java.lang.String packageFile
        start local 2 // android.os.IRecoverySystemProgressListener listener
         0: .line 1132
            aload 0 /* this */
            getfield android.os.RecoverySystem.mService:Landroid/os/IRecoverySystem;
            aload 1 /* packageFile */
            aload 2 /* listener */
            invokeinterface android.os.IRecoverySystem.uncrypt:(Ljava/lang/String;Landroid/os/IRecoverySystemProgressListener;)Z
         1: ireturn
         2: .line 1133
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 1135
            iconst_0
            ireturn
        end local 2 // android.os.IRecoverySystemProgressListener listener
        end local 1 // java.lang.String packageFile
        end local 0 // android.os.RecoverySystem this
      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 // android.os.RecoverySystem this
        start local 1 // java.lang.String command
         0: .line 1143
            aload 0 /* this */
            getfield android.os.RecoverySystem.mService:Landroid/os/IRecoverySystem;
            aload 1 /* command */
            invokeinterface android.os.IRecoverySystem.setupBcb:(Ljava/lang/String;)Z
         1: ireturn
         2: .line 1144
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 1146
            iconst_0
            ireturn
        end local 1 // java.lang.String command
        end local 0 // android.os.RecoverySystem this
      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 // android.os.RecoverySystem this
         0: .line 1154
            aload 0 /* this */
            getfield android.os.RecoverySystem.mService:Landroid/os/IRecoverySystem;
            invokeinterface android.os.IRecoverySystem.clearBcb:()Z
         1: ireturn
         2: .line 1155
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 1157
            iconst_0
            ireturn
        end local 0 // android.os.RecoverySystem this
      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 // android.os.RecoverySystem this
        start local 1 // java.lang.String command
         0: .line 1166
            aload 0 /* this */
            getfield android.os.RecoverySystem.mService:Landroid/os/IRecoverySystem;
            aload 1 /* command */
            invokeinterface android.os.IRecoverySystem.rebootRecoveryWithCommand:(Ljava/lang/String;)V
         1: .line 1167
            goto 3
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: pop
         3: .line 1169
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String command
        end local 0 // android.os.RecoverySystem this
      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 // java.lang.String arg
         0: .line 1176
            aload 0 /* arg */
            iconst_0
            bipush 63
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 0 /* arg */
         1: .line 1177
            aload 0 /* arg */
            bipush 10
            bipush 63
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 0 /* arg */
         2: .line 1178
            aload 0 /* arg */
            areturn
        end local 0 // java.lang.String arg
      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 // android.os.RecoverySystem this
         0: .line 1185
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1186
            aload 0 /* this */
            aconst_null
            putfield android.os.RecoverySystem.mService:Landroid/os/IRecoverySystem;
         2: .line 1187
            return
        end local 0 // android.os.RecoverySystem this
      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 // android.os.RecoverySystem this
        start local 1 // android.os.IRecoverySystem service
         0: .line 1192
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1193
            aload 0 /* this */
            aload 1 /* service */
            putfield android.os.RecoverySystem.mService:Landroid/os/IRecoverySystem;
         2: .line 1194
            return
        end local 1 // android.os.IRecoverySystem service
        end local 0 // android.os.RecoverySystem this
      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