iosfu/iosfu/plugin/device_info/plugin.py

68 lines
1.7 KiB
Python

from iosfu.plugin.base import BasePlugin
from iosfu.plugin.library import Library
plugin_library = Library()
@plugin_library.register
class DeviceInfoPlugin(BasePlugin):
category = 'Base'
name = 'Device info'
description = 'Basic information about the device/backup'
requires = {
'files': ['Info.plist'],
}
_plist = None
def parse_device_info(self):
keys = [
('build_version', 'Build Version'),
('device_name', 'Device Name'),
('display_name', 'Display Name'),
('guid', 'GUID'),
('iccid', 'ICCID'),
('imei', 'IMEI'),
('installed_apps', 'Installed Applications'),
('phone_number', 'Phone Number'),
('product_type', 'Product Type'),
('product_version', 'Product Version'),
('serial_number', 'Serial Number'),
('itunes_version', 'iTunes Version')
]
device_info = dict()
for key in keys:
device_info[key[0]] = self.get_value_from_plist(key[1])
return device_info
def parse_backup_info(self):
keys = [
('backup_date', 'Last Backup Date'),
]
backup_info = dict()
for key in keys:
backup_info[key[0]] = self.get_value_from_plist(key[1])
return backup_info
def get_value_from_plist(self, key):
value = '--'
try:
value = self._plist[key]
except:
pass
return value
def __do__(self):
self._plist = self._backup._plist['Info.plist']
info_dict = dict()
info_dict['device'] = self.parse_device_info()
info_dict['backup'] = self.parse_backup_info()
return info_dict