Class: IosBackupExtractor::BackupRetriever

Inherits:
Object
  • Object
show all
Includes:
NauktisUtils::Logging
Defined in:
lib/ios_backup_extractor/backup_retriever.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#backupsObject (readonly)

Returns the value of attribute backups.



4
5
6
# File 'lib/ios_backup_extractor/backup_retriever.rb', line 4

def backups
  @backups
end

Instance Method Details

#searchObject



6
7
8
# File 'lib/ios_backup_extractor/backup_retriever.rb', line 6

def search
  search_in(mobilesync)
end

#search_in(directory) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/ios_backup_extractor/backup_retriever.rb', line 10

def search_in(directory)
  @backups = []
  directory = NauktisUtils::FileBrowser.ensure_valid_directory(directory)
  logger.debug('Retriever') {"Retrieving iDevice backup files in #{directory}."}
  NauktisUtils::FileBrowser.each_file(directory) do |path|
    if File.basename(path) == 'Info.plist'
      infos = InfoPlist.new(path)
      continue unless infos.has? InfoPlist::PRODUCT_VERSION
      major = infos.versions.first
      if major <= 3
        raise 'iOS 3 backups are not supported'
      elsif major < 10
        @backups << RawBackup4.new(File.dirname(path))
      else
        @backups << RawBackup10.new(File.dirname(path))
      end
    end
  end
  self
end