コード例 #1
0
def load_patchinfos():
    global patchinfos

    searchpaths = always_include[:]
    devices = config.list_devices()
    for d in devices:
        if os.path.isdir(os.path.join(OS.patchinfodir, d)):
            searchpaths.append(d)

    for path in searchpaths:
        patchinfos[path] = load_patchinfo_dir(path)
コード例 #2
0
def load_ramdisks():
    global ramdisks

    searchpaths = []
    devices = config.list_devices()
    for d in devices:
        if os.path.isdir(os.path.join(OS.ramdiskdir, d)):
            searchpaths.append(d)

    for path in searchpaths:
        for root, dirs, files in os.walk(os.path.join(OS.ramdiskdir, path)):
            for f in files:
                if os.path.splitext(f)[1] == '.py':
                    fullpath = os.path.join(root, f)
                    relpath = os.path.relpath(fullpath, OS.ramdiskdir)
                    name = relpath.replace('/', '_')

                    plugin = imp.load_source(name, fullpath)

                    ramdisks[relpath.replace('\\', '/')] = plugin
コード例 #3
0
ファイル: ramdisk.py プロジェクト: Kratos1982/DualBootPatcher
def get_all_ramdisks(device):
    directories = []
    if not device:
        devices = config.list_devices()
        for d in devices:
            directory = os.path.join(OS.ramdiskdir, d)
            if d not in directories and os.path.isdir(directory):
                directories.append(directory)
    else:
        directories.append(os.path.join(OS.ramdiskdir, device))

    ramdisks = []

    for directory in directories:
        for root, dirs, files in os.walk(directory):
            relative_path = os.path.relpath(root, OS.ramdiskdir)
            for f in files:
                if os.path.splitext(f)[1] == '.def':
                    ramdisks.append(os.path.join(relative_path, f))

    ramdisks.sort()
    return ramdisks
コード例 #4
0
ファイル: ramdisk.py プロジェクト: Kratos1982/DualBootPatcher
def get_all_ramdisks(device):
    directories = []
    if not device:
        devices = config.list_devices()
        for d in devices:
            directory = os.path.join(OS.ramdiskdir, d)
            if d not in directories and os.path.isdir(directory):
                directories.append(directory)
    else:
        directories.append(os.path.join(OS.ramdiskdir, device))

    ramdisks = []

    for directory in directories:
        for root, dirs, files in os.walk(directory):
            relative_path = os.path.relpath(root, OS.ramdiskdir)
            for f in files:
                if os.path.splitext(f)[1] == '.def':
                    ramdisks.append(os.path.join(relative_path, f))

    ramdisks.sort()
    return ramdisks
コード例 #5
0
partconfig_name = None
partconfig = None
noquestions = False

# For unsupported files
f_preset_name = None
f_hasbootimage = None
f_bootimage = None
f_ramdisk = None
f_autopatcher_name = None
f_patch = None
f_init = None
f_devicecheck = None

# Lists
devices = config.list_devices()
partition_configs = partitionconfigs.get()
presets = None
autopatchers = None
inits = None
ramdisks = None


class SimpleListDialog:
    def __init__(self):
        self.desc = None
        self.choicemsg = None
        self.names = list()
        self.values = list()
        self.invalidnames = list()
        self.invalidvalues = list()
コード例 #6
0
    def __init__(self, parent=None, filename=None):
        super().__init__(parent)
        iconpath = os.path.join(OS.rootdir, 'scripts', 'icon.png')
        self.setWindowIcon(QtGui.QIcon(iconpath))

        if filename:
            self.filename = os.path.abspath(filename)
            self.automode = True
        else:
            self.filename = None
            self.automode = False

        self.primaryupgrade = False

        self.partconfigs = partitionconfigs.get()
        self.devices = config.list_devices()

        self.setWindowTitle('Dual Boot Patcher')

        # Partition configuration selector and file chooser
        self.partconfigdesc = QtWidgets.QLabel(self)
        self.partconfigcombobox = QtWidgets.QComboBox(self)
        self.devicecombobox = QtWidgets.QComboBox(self)
        self.filechooserbutton = QtWidgets.QPushButton(self)

        # A simple vertical layout will do
        layout = QtWidgets.QVBoxLayout(self)
        layout.addWidget(self.devicecombobox)
        layout.addWidget(self.partconfigcombobox)
        layout.addWidget(self.partconfigdesc)
        layout.addStretch(1)
        layout.addWidget(self.filechooserbutton)

        self.setLayout(layout)

        # Populate devices
        for d in self.devices:
            name = config.config['devices'][d]['name']
            self.devicecombobox.addItem('%s (%s)' % (d, name))

        self.devicecombobox.currentIndexChanged.connect(self.deviceselected)
        self.deviceselected(self.devicecombobox.currentIndex())

        # Populate partition configs
        for i in self.partconfigs:
            self.partconfigcombobox.addItem(i.name)

        self.partconfigcombobox.currentIndexChanged.connect(
            self.partconfigselected)
        self.partconfigselected(self.partconfigcombobox.currentIndex())

        # Choose file button
        if self.automode:
            self.filechooserbutton.setText("Continue")
        else:
            self.filechooserbutton.setText("Choose file to patch")
        self.filechooserbutton.clicked.connect(self.selectfile)

        # Progress dialog
        self.progressdialog = ProgressDialog(self)

        qtui.listener = self.progressdialog

        # Fixed size
        self.setMinimumWidth(420)
        self.setFixedHeight(self.sizeHint().height())
        self.move(300, 300)
コード例 #7
0
ファイル: qtmain.py プロジェクト: Kratos1982/DualBootPatcher
    def __init__(self, parent=None, filename=None):
        super().__init__(parent)
        iconpath = os.path.join(OS.rootdir, 'scripts', 'icon.png')
        self.setWindowIcon(QtGui.QIcon(iconpath))

        if filename:
            self.filename = os.path.abspath(filename)
            self.automode = True
        else:
            self.filename = None
            self.automode = False

        self.primaryupgrade = False

        self.partconfigs = partitionconfigs.get()
        self.devices = config.list_devices()

        self.setWindowTitle('Dual Boot Patcher')

        # Partition configuration selector and file chooser
        self.partconfigdesc = QtWidgets.QLabel(self)
        self.partconfigcombobox = QtWidgets.QComboBox(self)
        self.devicecombobox = QtWidgets.QComboBox(self)
        self.filechooserbutton = QtWidgets.QPushButton(self)

        # A simple vertical layout will do
        layout = QtWidgets.QVBoxLayout(self)
        layout.addWidget(self.devicecombobox)
        layout.addWidget(self.partconfigcombobox)
        layout.addWidget(self.partconfigdesc)
        layout.addStretch(1)
        layout.addWidget(self.filechooserbutton)

        self.setLayout(layout)

        # Populate devices
        for d in self.devices:
            name = config.config['devices'][d]['name']
            self.devicecombobox.addItem('%s (%s)' % (d, name))

        self.devicecombobox.currentIndexChanged.connect(self.deviceselected)
        self.deviceselected(self.devicecombobox.currentIndex())

        # Populate partition configs
        for i in self.partconfigs:
            self.partconfigcombobox.addItem(i.name)

        self.partconfigcombobox.currentIndexChanged.connect(
            self.partconfigselected)
        self.partconfigselected(self.partconfigcombobox.currentIndex())

        # Choose file button
        if self.automode:
            self.filechooserbutton.setText("Continue")
        else:
            self.filechooserbutton.setText("Choose file to patch")
        self.filechooserbutton.clicked.connect(self.selectfile)

        # Progress dialog
        self.progressdialog = ProgressDialog(self)

        qtui.listener = self.progressdialog

        # Fixed size
        self.setMinimumWidth(420)
        self.setFixedHeight(self.sizeHint().height())
        self.move(300, 300)