Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Requiem Installer

Note

Requiem Installer es una solución avanzada de despliegue e instalación de Windows multi-plataforma desarrollada con Flutter Desktop. El proyecto cuenta con dos modos principales de operación: el Modo ISO (una distribución autónoma de Linux Live basada en Debian Bookworm optimizada exclusivamente para instalar imágenes Windows .wim/.swm sin depender de WinPE) y el Modo Tools (una herramienta utilitaria de post-instalación para la activación KMS, personalización OEM e instalación masiva de programas en Windows).


🚀 Propósitos del Proyecto

1. Modo ISO (Distribución Linux Live Installer) 💿

Un entorno autónomo de alto rendimiento basado en Debian Bookworm Live que se ejecuta directamente desde una memoria USB o máquina virtual.

  • Menú GRUB Unificado: Un único punto de entrada principal con parámetros universales del kernel (quiet splash, console=tty0, gfxpayload=1024x768x32,auto) para garantizar compatibilidad gráfica universal en UEFI/BIOS, hardware real, VMware, QEMU/KVM y VirtualBox.
  • Compilación Rápida con Sistema de Caché (build_iso.sh): Incluye un pipeline de construcción optimizado con almacenamiento en caché de 4 niveles (.build_cache):
    • Caché de Debootstrap: Reutiliza el archivo tarball del sistema base Debian (debootstrap_bookworm_base.tar.xz), reduciendo el tiempo de bootstrap de minutos a segundos.
    • Caché de Binarios: Preserva las utilidades precompiladas xorriso-1.5.6, ms-sys y BCD-SYS.
    • Caché de Paquetes APT: Reutiliza los paquetes .deb descargados en /var/cache/apt/archives.
    • Compilación Incremental de Flutter: Mantiene .dart_tool para compilar solo los cambios de código en segundos.
  • Despliegue Directo WIM/SWM: Aplica la imagen de Windows al volumen NTFS desmontado usando wimlib-imagex, preservando ACLs, ADS, reparse points y metadatos NTFS sin requerir WinPE. El progreso se calcula por las fases reales de wimlib (creación, extracción y metadatos), y sólo se acepta el WIM cuando el proceso termina limpiamente; un 100% intermedio no se confunde con la finalización global.
  • Configuración Perfeccionada del Bootloader:
    • Modo UEFI GPT: Reconstruye el almacén BCD usando BCD-SYS o patch_bcd.py (con inyección automática de OS Loader create_minimal_bcd), copia bootmgfw.efi y el cargador de respaldo EFI/BOOT/BOOTX64.EFI, y registra la entrada en NVRAM con efibootmgr. Si la NVRAM está protegida contra escritura por el firmware OEM, continúa la instalación con éxito apoyándose en BOOTX64.EFI.
    • Modo BIOS Legacy MBR: Escribe MBR y VBR NT6+ mediante ms-sys, marca la partición como activa y sincroniza la firma de disco MBR en la colmena BCD.
  • Inyección de Controladores de Almacenamiento Críticos: Activa automáticamente en el registro offline SYSTEM (ControlSet001/ControlSet002) los controladores stornvme, iaStorVD, iaStorA, nvme, vmd, storahci, ahci, msahci, intelide, etc. Previene de forma definitiva las pantallas azules INACCESSIBLE_BOOT_DEVICE (0x0000007B) en SSDs NVMe y procesadores Intel de última generación.

2. Modo Tools (Post-Instalación & Desktop Tools) 🛠️

Una consola utilitaria diseñada para ser ejecutada sobre sistemas Windows ya instalados:

  • Instalación Masiva de Software: Integración con winget y scripts desatendidos para instalar navegadores, entornos de desarrollo y utilidades.
  • Activación de Licencias: Automatización de servicios KMS para la activación oficial de Windows y Microsoft Office.
  • Branding e Integración OEM: Inyección de marca personalizada del fabricante, modelo, soporte técnico y logotipos corporativos en el registro del sistema.
  • Medios personalizados: Descarga la ISO Live simple o genera una ISO autónoma con /requiem/payload/install.wim; el Live detecta el payload y salta directamente a la selección de disco.
  • Puente IPv4: Prepara el WIM en Windows y lo transmite por una red privada al instalador Live, que lo aplica directamente a NTFS sin almacenarlo primero en el cliente.

🛠️ Arquitectura y Tecnologías

Frontend (Interfaz Gráfica)

  • Flutter Desktop (Linux & Windows): Interfaz responsiva moderna con estética glassmorphic, modo oscuro y micro-animaciones dinámicas.
  • Provider (Dart): Arquitectura reactiva y gestión de estado mediante controlador centralizado (MainController).
  • Window Manager: Control nativo de bordes de ventana y comportamiento en pantalla completa.

Backend & Herramientas de Sistema (Live ISO)

  • Base Linux Live: Debian Bookworm Live montado en memoria RAM mediante live-boot.
  • Entorno Gráfico: Xorg Server con gestor de ventanas Openbox en pantalla completa sin bordes.
  • Utilidades del Sistema: wimlib-imagex, sgdisk, parted, sfdisk, ntfs-3g, efibootmgr, hivex (python3-hivex), ms-sys y BCD-SYS.

💻 Flujo de Trabajo para Desarrolladores (Compilar la ISO)

1. Configuración del Entorno WSL2 / Linux

Para preparar el entorno de compilación e instalar el SDK de Flutter de Linux en /opt/flutter:

chmod +x linux_live_iso/setup_wsl.sh
./linux_live_iso/setup_wsl.sh

2. Compilación de la ISO Arrancable

Compilación Rápida (con Caché por Defecto):

sudo ./linux_live_iso/build_iso.sh

La primera ejecución genera la caché en .build_cache. Las compilaciones subsecuentes tomarán solo unos segundos.

Reconstruir desde Cero (Limpiar Caché):

sudo ./linux_live_iso/build_iso.sh --clean

El archivo ISO resultante se generará en la raíz del proyecto: requiem_installer.iso

Distribución oficial

El workflow manual .github/workflows/distribution.yml valida el proyecto, compila el instalador Windows con Inno Setup, genera el bundle portable, construye la ISO híbrida y crea un GitHub Release en borrador. Si el tag ya existe, actualiza sus archivos aunque el Release ya esté publicado, sin cambiar su estado. Todos los nombres, metadatos y el tag se derivan de version: en pubspec.yaml. Consulte docs/distribucion.md para el flujo de publicación y la compilación local.

El instalador y el portable incluyen xorriso y wimlib para las funciones ISO y Puente. El protocolo, las rutas del payload y los requisitos de red se documentan en docs/medios_y_puente_ipv4.md.


📁 Estructura del Proyecto

Requiem/
├── assets/                          # Logotipos y recursos de la aplicación
├── docs/                            # Documentación técnica detallada
│   ├── README.md                    # Índice de documentación
│   ├── arquitectura.md              # Visión general de componentes y servicios
│   ├── diagnostico_errores.md       # Diagnóstico de errores de boot e imágenes
│   ├── fix_etfsboot.md              # Correcciones del pipeline
│   ├── instalacion_windows_desde_linux.md # Flujo técnico del despliegue en Linux
│   └── medios_y_puente_ipv4.md      # Empaquetado WIM y puente de red
├── inno/                            # Script ISS y binarios de instalador Inno Setup
├── lib/                             # Código fuente principal de Flutter / Dart
│   ├── core/                        # Tema gráfico y constantes
│   ├── models/                      # Modelos de datos (discos, particiones, progreso)
│   ├── services/                    # Servicios de backend (discos, despliegue, registro)
│   │   ├── deployment/              # Providers de despliegue para Linux y Windows
│   │   ├── main_controller.dart     # Controlador central de estado
│   │   ├── disk_service.dart        # Gestión de discos y particionado
│   │   ├── registry_service.dart    # Modificación de registro offline
│   │   └── process_service.dart     # Ejecución streaming de comandos
│   └── ui/                          # Pantallas y widgets de la interfaz gráfica
├── linux_live_iso/                  # Constructor y configuraciones de la ISO Live
│   ├── build_iso.sh                 # Pipeline principal de compilación con caché
│   ├── setup_chroot.sh              # Instalación de paquetes dentro del chroot
│   ├── setup_wsl.sh                 # Preparación del entorno WSL host
│   ├── configs/                     # Archivos de configuración (grub.cfg, systemd, xinitrc)
│   └── tools/                       # Parcheador BCD en Python (patch_bcd.py)
└── pubspec.yaml                     # Configuración de dependencias de Flutter

📜 Licencia y Autoría

Software protegido bajo la Requiem Installer Public License (consulte license.txt).

Desarrollado por: Melchor Estrada José Luis — Joss Red — joss.red (web) — josprox.com (web)

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages