Python implementation of the IGEL filesystem.
igelfs
provides various data models and methods to interact with an IGEL filesystem image.
igelfs.models
contains several dataclasses to represent data structures within the filesystem.
Generally, for handling reading from a file/device, use igelfs.Filesystem
,
which provides methods to obtain sections and access the data structures within them,
in an object-oriented way.
Filesystem
also provides simple methods to write bytes/sections.
A command-line interface is also provided for common filesystem operations.
For documentation and other information, please see the wiki.
- Install project:
pip install igelfs
The project page can be found here.
- Clone the repository:
git clone https://github.com/Zedeldi/igelfs.git
- Install project:
pip install .
- or install dependencies:
pip install -r requirements.txt
- rsa - signature verification
- pillow - bootsplash images
- python-magic - payload identification
- pyparted - disk conversion (optional)
- cryptography - encryption (optional)
- PyNaCl - encryption, bindings to libsodium (optional)
- python-lzf - compression, bindings to liblzf (optional)
- pytest - testing, see below
If the project is installed: igelfs-cli --help
Otherwise, you can run the module as a script: python -m igelfs.cli --help
For more information, head over to the wiki.
Tests rely on the pytest
testing framework.
To test the project (or the sanity of a filesystem image), use:
python -m pytest --image="path/to/filesystem" --inf="path/to/lxos.inf" igelfs
Specify -m "not slow"
to skip slow tests.
- IGEL - author of
igel-flash-driver
igelfs
is licensed under the GPL v3 for everyone to use, modify and share freely.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The original source code, from which this project was derived, can be obtained by requesting it from IGEL via their online form or via this GitHub repository.
/boot/grub/i386-pc/igelfs.mod
is licensed under the GPL v3.
Requesting a copy of the source code should provide the igel-flash-driver
kernel module
and initramfs bootreg
code, written in C.
/bin/igelfs_util
is copyrighted by IGEL Technology GmbH.
If you found this project useful, please consider donating. Any amount is greatly appreciated! Thank you 😃