Skip to content

Latest commit

 

History

History
executable file
·
73 lines (63 loc) · 3.27 KB

TODO.md

File metadata and controls

executable file
·
73 lines (63 loc) · 3.27 KB

TODO

Kernel features

Done

  • add monitor mode support for internal Wi-Fi chipset (with Wi-Fi packet injection);
  • add KernelSU support.
  • add DM-Verity and Force Encrypt disabler.

Left

  • add DriveDroid(-like) support.

Build process features

Done

  • add an asset downloader (ROM, Magisk, etc.);
  • add CI/CD pipelines;
  • add option to save logs to a file;
  • add option to build in Docker container;
  • add multidevice support, with appropriate manifest;
  • improve log level setting throughout all stages of the build;
  • improve file/directory cleaning mechanism in a form of a dedicated module;
  • improve Clang download mechanism;
  • add build counter mechanism for CI/CD pipelines;
  • add codename specific elements to final kernel zip;
  • add a simpler and slimer bundle creator (kernel+ROM);
  • add return types to functions;
  • add requirements.txt for pip;
  • add proper OS detection for preventing local builds in unsupported systems;
  • add static analysis for the wrapper;
  • add a single-point manifest with main info on the tool;
  • improve documentation;
  • apply OOP paradigm;
  • switch to uv for dependency management;
  • switch to pathlib;
  • add a FAQ page;
  • refactor Docker/Podman command formation;
  • fix Podman usage (.dockerignore);
  • add a separate method for multiline patching in files;
  • add a dataclass for wrapper's arguments;
  • add PA ROM support;
  • decompose run() method in ContainerEngine;
  • skip building Docker/Podman image if it's already present in local cache;
  • for containerized build, download the contents of manifests during image build;
  • add a new argument responsible for Linux kernel version selection;
  • add 4.14 Linux kernel version builds;
  • decompose run methods into separate methods as much as possible;
  • switch to pydantic;
  • add type checks with pyright;
  • add unit tests with coverage checks;
  • switch to __enter__ and __exit__ Python's magic methods for container engines.

Left

  • add published Conan package validator;
  • create a commit-based lockfile system for reproducible kernel builds;
  • dedicate kernel source patchers as separate modules (LineageOS, AOSP, AOSPA etc);
  • make kernel building and assets collection processes asynchronous when launching the bundle option;
  • add a GitHub workflow for checking PRs;
  • add system app debloater;
  • move device-specific modifications into appropriate folder with custom Modificator (sub)classes;
  • switch to exec commands for Docker and Podman instead of a single run command;
  • replace ccmd.launch() to just launch() (or any other name);
  • embed newlines usage (from both sides) into messages functions as arguments;
  • add tests on cases of custom wrapper edge case exits (kernel build on Windows, ROM-only asset collection for a ROM-universal kernel etc.);
  • break down (or create inheritance from) KernelBuilder into LineageOsKernelBuilder, ParanoidAndroidKernelBuilder, XKernelBuilder etc;
  • investigate project restructuring to avoid circular import;
  • consider creating a separate "errors" subpackage for all errors;
  • add GKI kernels support;
  • use logging facility for logs.