Reading the repo
Opening the box…
Reading the repo
Opening the box…
How to install on Windows
Collection of various BIOS/UEFI-related utilities which aid in research and/or modding purposes.
Saved setup from 2 min ago
Will it work on Windows?
Unless explicitely noted, all utilities should work under Windows, Linux or macOS operating systems which have Python 3.10 - 3.13 support.
Then run powershell -ExecutionPolicy Bypass -File .\setup.ps1. It stops at the first error and is safe to run again. Servers and tests aren't started; it lists them at the end. Read it first.
Compare yours with the README's “Compatibility” list above before installing anything.
Needs Git: winget install Git.Git
git clone https://github.com/platomav/BIOSUtilities.git cd BIOSUtilities
Python >= 3.10
winget install Python.Python.3.10
python -m venv .venv .venv\Scripts\Activate.ps1 pip install -r requirements.txt pip install -r requirements-dev.txt
python main.py
There are two different possible flows when using the BIOSUtilities project:
You can use either one or the other, depending on your needs. Most end-users should probably choose the "Main" flow, which is very simple to use and automatically attempts to process one or more input files against all available utilities in one run. The "Package" flow is for those who are more familiar with python and/or need to use the project programmatically as a library/dependency.
The "main" script provides a simple way to check and parse each of the user provided files against all utilities, in succession. It is ideal for quick drag & drop operations but lacks the finer control of the "Package" method.
If you use Linux, macOS, or the Windows command prompt/terminal, you may also call "main.py" via arguments and options, as such:
usage: main.py [-h] [-e] [-o OUTPUT_DIR] [-u UTILITY] [paths ...]
positional arguments:
paths
options:
-h, --help show this help message and exit
-e, --auto-exit do not pause on exit
-o, --output-dir OUTPUT_DIR extraction directory
-u, --utility UTILITY utility class name
python ./main.py "/path/to/input/file.bin" --output-dir "/path/to/output/folder"
python ./main.py "/path/to/input/file.bin" -e -o "/path/to/output/folder" -u AmiUcpExtract
If no arguments/options are provided, the "main" script requests the input and output paths from the user. If no output path is provided, the utility will use the parent directory of the first input file or fallback to the runtime execution directory.
Enter input file or directory path: "C:\P5405CSA.303"
Enter output directory path: "C:\P5405CSA.303_output"
Each utility is derived from a base "BIOSUtility" template and all utilities form the "biosutilities" python package, which can be installed from PyPi:
python -m pip install --upgrade biosutilities[pefile,lznt1]
Installing the python package is the recommended way to call one or more utilities either via the CLI (main.py script) or programatically (python imports, utility arguments).
biosutilities --help
biosutilities "/path/to/input/file.bin" -o "/path/to/output/folder/" -u PhoenixTdkExtract -e
from biosutilities.ami_pfat_extract import AmiPfatExtract
ami_pfat_extractor = AmiPfatExtract(input_object='/path/to/input/file.bin', extract_path='/path/to/output/folder/')
is_supported = ami_pfat_extractor.check_format()
is_extracted = ami_pfat_extractor.parse_format()
from biosutilities.dell_pfs_extract import DellPfsExtract
with open('/path/to/input/file.bin', 'rb') as pfs_file:
pfs_data = pfs_file.read()
dell_pfs_extractor = DellPfsExtract(input_object=pfs_data, extract_path='/path/to/output/directory/', padding=8)
is_supported = dell_pfs_extractor.check_format()
is_extracted = dell_pfs_extractor.parse_format()
Each BIOSUtility expects the following required and optional arguments to check and/or parse a given file format:
input_object: str | bytes | bytearray = b''
extract_path: str = runtime_root()
padding: int = 0
If the required arguments are not provided, placeholder values are set so that it is possible to use the BIOSUtility-inherited instance to access auxiliary public methods and class constants. However, checking and/or parsing of file formats will not yield results.
Once the BIOSUtility-inherited object is initialized with arguments, its two public methods can be called:
Check if input object is of specific supported format
is_supported: bool = check_format()
Process input object as a specific supported format
is_extracted: bool = parse_format()
No reports for Windows yet.
GitManual AI Agent reads the 4 key files and writes a step-by-step guide for Windows. Once written, it's saved for everyone.