public class com.android.sharedstoragebackup.SharedStorageAgent extends android.app.backup.FullBackupAgent
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.android.sharedstoragebackup.SharedStorageAgent
  super_class: android.app.backup.FullBackupAgent
{
  static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "SharedStorageAgent"

  static final boolean DEBUG;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  android.os.storage.StorageVolume[] mVolumes;
    descriptor: [Landroid/os/storage/StorageVolume;
    flags: (0x0000) 

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.sharedstoragebackup.SharedStorageAgent this
         0: .line 17
            aload 0 /* this */
            invokespecial android.app.backup.FullBackupAgent.<init>:()V
            return
        end local 0 // com.android.sharedstoragebackup.SharedStorageAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/sharedstoragebackup/SharedStorageAgent;

  public void onCreate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.android.sharedstoragebackup.SharedStorageAgent this
         0: .line 25
            aload 0 /* this */
            ldc "storage"
            invokevirtual com.android.sharedstoragebackup.SharedStorageAgent.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast android.os.storage.StorageManager
            astore 1 /* mgr */
        start local 1 // android.os.storage.StorageManager mgr
         1: .line 26
            aload 1 /* mgr */
            ifnull 4
         2: .line 27
            aload 0 /* this */
            aload 1 /* mgr */
            invokevirtual android.os.storage.StorageManager.getVolumeList:()[Landroid/os/storage/StorageVolume;
            putfield com.android.sharedstoragebackup.SharedStorageAgent.mVolumes:[Landroid/os/storage/StorageVolume;
         3: .line 28
            goto 5
         4: .line 29
      StackMap locals: android.os.storage.StorageManager
      StackMap stack:
            ldc "SharedStorageAgent"
            ldc "Unable to access Storage Manager"
            invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 31
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.os.storage.StorageManager mgr
        end local 0 // com.android.sharedstoragebackup.SharedStorageAgent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/android/sharedstoragebackup/SharedStorageAgent;
            1    6     1   mgr  Landroid/os/storage/StorageManager;

  public void onFullBackup(android.app.backup.FullBackupDataOutput);
    descriptor: (Landroid/app/backup/FullBackupDataOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // com.android.sharedstoragebackup.SharedStorageAgent this
        start local 1 // android.app.backup.FullBackupDataOutput output
         0: .line 41
            aload 0 /* this */
            getfield com.android.sharedstoragebackup.SharedStorageAgent.mVolumes:[Landroid/os/storage/StorageVolume;
            ifnull 17
         1: .line 42
            ldc "SharedStorageAgent"
            new java.lang.StringBuilder
            dup
            ldc "Backing up "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.android.sharedstoragebackup.SharedStorageAgent.mVolumes:[Landroid/os/storage/StorageVolume;
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " shared volumes"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Slog.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 45
            new android.util.ArraySet
            dup
            invokespecial android.util.ArraySet.<init>:()V
            astore 2 /* externalFilesDirFilter */
        start local 2 // android.util.ArraySet externalFilesDirFilter
         3: .line 46
            new java.io.File
            dup
            invokestatic android.os.Environment.getExternalStorageDirectory:()Ljava/io/File;
         4: .line 47
            ldc "Android"
         5: .line 46
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 3 /* externalAndroidRoot */
        start local 3 // java.io.File externalAndroidRoot
         6: .line 48
            aload 2 /* externalFilesDirFilter */
            aload 3 /* externalAndroidRoot */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
         7: .line 50
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         8: goto 16
         9: .line 51
      StackMap locals: android.util.ArraySet java.io.File int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.sharedstoragebackup.SharedStorageAgent.mVolumes:[Landroid/os/storage/StorageVolume;
            iload 4 /* i */
            aaload
            astore 5 /* v */
        start local 5 // android.os.storage.StorageVolume v
        10: .line 55
            new java.lang.StringBuilder
            dup
            ldc "shared/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* domain */
        start local 6 // java.lang.String domain
        11: .line 56
            aload 0 /* this */
            aconst_null
            aload 6 /* domain */
            aload 5 /* v */
            invokevirtual android.os.storage.StorageVolume.getPath:()Ljava/lang/String;
        12: .line 57
            aconst_null
        13: .line 58
            aload 2 /* externalFilesDirFilter */
            aload 1 /* output */
        14: .line 56
            invokevirtual com.android.sharedstoragebackup.SharedStorageAgent.fullBackupFileTree:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArraySet;Landroid/util/ArraySet;Landroid/app/backup/FullBackupDataOutput;)V
        end local 6 // java.lang.String domain
        end local 5 // android.os.storage.StorageVolume v
        15: .line 50
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* i */
            aload 0 /* this */
            getfield com.android.sharedstoragebackup.SharedStorageAgent.mVolumes:[Landroid/os/storage/StorageVolume;
            arraylength
            if_icmplt 9
        end local 4 // int i
        end local 3 // java.io.File externalAndroidRoot
        end local 2 // android.util.ArraySet externalFilesDirFilter
        17: .line 61
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.app.backup.FullBackupDataOutput output
        end local 0 // com.android.sharedstoragebackup.SharedStorageAgent this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   18     0                    this  Lcom/android/sharedstoragebackup/SharedStorageAgent;
            0   18     1                  output  Landroid/app/backup/FullBackupDataOutput;
            3   17     2  externalFilesDirFilter  Landroid/util/ArraySet<Ljava/lang/String;>;
            6   17     3     externalAndroidRoot  Ljava/io/File;
            8   17     4                       i  I
           10   15     5                       v  Landroid/os/storage/StorageVolume;
           11   15     6                  domain  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      output  

  public void onRestoreFile(android.os.ParcelFileDescriptor, long, int, java.lang.String, java.lang.String, long, long);
    descriptor: (Landroid/os/ParcelFileDescriptor;JILjava/lang/String;Ljava/lang/String;JJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=14, args_size=8
        start local 0 // com.android.sharedstoragebackup.SharedStorageAgent this
        start local 1 // android.os.ParcelFileDescriptor data
        start local 2 // long size
        start local 4 // int type
        start local 5 // java.lang.String domain
        start local 6 // java.lang.String relpath
        start local 7 // long mode
        start local 9 // long mtime
         0: .line 70
            ldc "SharedStorageAgent"
            new java.lang.StringBuilder
            dup
            ldc "Shared restore: [ "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* domain */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* relpath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Slog.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 72
            aconst_null
            astore 11 /* outFile */
        start local 11 // java.io.File outFile
         2: .line 75
            aload 6 /* relpath */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            istore 12 /* slash */
        start local 12 // int slash
         3: .line 76
            iload 12 /* slash */
            ifle 14
         4: .line 78
            aload 6 /* relpath */
            iconst_0
            iload 12 /* slash */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 13 /* i */
        start local 13 // int i
         5: .line 79
            iload 13 /* i */
            aload 0 /* this */
            getfield com.android.sharedstoragebackup.SharedStorageAgent.mVolumes:[Landroid/os/storage/StorageVolume;
            arraylength
            if_icmpgt 9
         6: .line 80
            new java.io.File
            dup
            aload 0 /* this */
            getfield com.android.sharedstoragebackup.SharedStorageAgent.mVolumes:[Landroid/os/storage/StorageVolume;
            iload 13 /* i */
            aaload
            invokevirtual android.os.storage.StorageVolume.getPath:()Ljava/lang/String;
            aload 6 /* relpath */
            iload 12 /* slash */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 11 /* outFile */
         7: .line 81
            ldc "SharedStorageAgent"
            new java.lang.StringBuilder
            dup
            ldc " => "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* outFile */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Slog.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         8: .line 82
            goto 15
         9: .line 83
      StackMap locals: java.io.File int int
      StackMap stack:
            ldc "SharedStorageAgent"
            new java.lang.StringBuilder
            dup
            ldc "Cannot restore data for unavailable volume "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 13 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Slog.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 13 // int i
        10: .line 85
            goto 15
      StackMap locals: com.android.sharedstoragebackup.SharedStorageAgent android.os.ParcelFileDescriptor long int java.lang.String java.lang.String long long java.io.File int
      StackMap stack: java.lang.NumberFormatException
        11: pop
        12: .line 86
            ldc "SharedStorageAgent"
            new java.lang.StringBuilder
            dup
            ldc "Bad volume number token: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* relpath */
            iconst_0
            iload 12 /* slash */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Slog.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        13: .line 88
            goto 15
        14: .line 89
      StackMap locals:
      StackMap stack:
            ldc "SharedStorageAgent"
            ldc "Can't find volume-number token"
            invokestatic android.util.Slog.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        15: .line 91
      StackMap locals:
      StackMap stack:
            aload 11 /* outFile */
            ifnonnull 17
        16: .line 92
            ldc "SharedStorageAgent"
            new java.lang.StringBuilder
            dup
            ldc "Skipping data with malformed path "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* relpath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        17: .line 95
      StackMap locals:
      StackMap stack:
            aload 1 /* data */
            lload 2 /* size */
            iload 4 /* type */
            ldc -1
            lload 9 /* mtime */
            aload 11 /* outFile */
            invokestatic android.app.backup.FullBackup.restoreFile:(Landroid/os/ParcelFileDescriptor;JIJJLjava/io/File;)V
        18: .line 96
            return
        end local 12 // int slash
        end local 11 // java.io.File outFile
        end local 9 // long mtime
        end local 7 // long mode
        end local 6 // java.lang.String relpath
        end local 5 // java.lang.String domain
        end local 4 // int type
        end local 2 // long size
        end local 1 // android.os.ParcelFileDescriptor data
        end local 0 // com.android.sharedstoragebackup.SharedStorageAgent this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Lcom/android/sharedstoragebackup/SharedStorageAgent;
            0   19     1     data  Landroid/os/ParcelFileDescriptor;
            0   19     2     size  J
            0   19     4     type  I
            0   19     5   domain  Ljava/lang/String;
            0   19     6  relpath  Ljava/lang/String;
            0   19     7     mode  J
            0   19     9    mtime  J
            2   19    11  outFile  Ljava/io/File;
            3   19    12    slash  I
            5   10    13        i  I
      Exception table:
        from    to  target  type
           4    10      11  Class java.lang.NumberFormatException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      data     
      size     
      type     
      domain   
      relpath  
      mode     
      mtime    
}
SourceFile: "SharedStorageAgent.java"
InnerClasses:
  public BackupScheme = android.app.backup.FullBackup$BackupScheme of android.app.backup.FullBackup
  public PathWithRequiredFlags = android.app.backup.FullBackup$BackupScheme$PathWithRequiredFlags of android.app.backup.FullBackup$BackupScheme