- 05 Sep, 2025 13 commits
-
-
Stefy Lanza (nextime / spora ) authored
- Ensure root password is properly set and not expired in installed system - Add passwd -u root to unlock account if needed - Add chage -d 99999 root to remove password expiration - Create SSH config allowing root login with password - Fix ensures SSH access works immediately after installation
-
Stefy Lanza (nextime / spora ) authored
- Add cleanup code to remove auto-installer.sh from target system - Remove installation log file from target system - Exclude auto-installer log from rsync copy (but keep script for installation) - Auto-installer now self-destructs after successful installation - Keeps installed system clean by removing installation artifacts
-
Stefy Lanza (nextime / spora ) authored
- Replace zenity-based progress with terminal progress bar - Remove blocking pipe operations that were causing script hangs - Add visual progress bar with filled/empty blocks - Remove zenity completion dialog for terminal compatibility - Clean up unused PROGRESS_PIPE variable - Progress now works reliably in all terminal environments
-
Stefy Lanza (nextime / spora ) authored
Enhanced network configuration with full user interaction: WiFi Support: - Automatic wireless interface detection using iw - Network scanning with SSID selection - Security protocol selection (WPA/WPA2, WEP, Open) - Password input for secured networks Ethernet Support: - Automatic ethernet interface detection - Interface selection from available options IP Configuration: - DHCP (automatic) or Static IP options - Manual IP address, gateway, and DNS server entry - Validation and configuration storage Installation Integration: - Network configuration applied to installed system - Creates /etc/network/interfaces with user settings - Configures DNS resolution for static setups - Preserves WiFi credentials and settings Package Dependencies: - Added iw, wpasupplicant, dhcpcd5 for full WiFi support - Maintains existing comprehensive wireless driver support The auto-installer now provides complete network setup during installation, configuring the target system with user-specified network preferences.
-
Stefy Lanza (nextime / spora ) authored
- Zenity dialog was hanging in terminal environment without proper GUI context - Replaced unreliable GUI dialogs (zenity/dialog) with terminal confirmation - Added clear warning display with colored output for visibility - Simplified confirmation logic with case statement for multiple valid inputs - Auto-installer now continues reliably without GUI dialog dependencies Terminal confirmation is more reliable in live CD terminal environments.
-
Stefy Lanza (nextime / spora ) authored
- Fixed lsblk output parsing that was causing syntax error at line 138 - Added head -1 and tr -d to handle multiple lines or whitespace in lsblk output - Added numeric validation to prevent arithmetic errors - Applied same fix to both disk detection functions (lines 138 and 244) Auto-installer now runs without syntax errors and properly detects disk sizes. Autologin system fully operational - console passwordless, SSH requires password.
-
Stefy Lanza (nextime / spora ) authored
- Openbox autostart was also trying to launch auto-installer using x-terminal-emulator - This created conflict with .xinitrc launch method - Removed installer launch from autostart to avoid duplicate processes - .xinitrc now handles installer launch exclusively with proper timing - Semicolon syntax was actually correct (run next command regardless of exit status) - Prevents multiple installer instances and launch conflicts
-
Stefy Lanza (nextime / spora ) authored
Major Discovery: - live-config scripts 0030-live-debconfig_passwd and 0030-user-setup were setting root password to '*' (locked) during boot - This explains why SSH with configured password was failing - Scripts were also trying to create 'user' account instead of using root Solution: - Created override-live-config-passwd.hook.chroot - Replaces both password-related live-config scripts - Preserves root password set during ISO creation - Prevents account locking by live-config - Forces LIVE_USERNAME=root instead of creating separate user This completes the live-config override suite: - inittab autologin (prevents user login prompt) - password preservation (enables SSH with configured password) - proper root account handling throughout boot process
-
Stefy Lanza (nextime / spora ) authored
- Start openbox-session in background first to establish window manager - Wait 2 seconds for window manager to initialize - Then launch auto-installer in terminal window - Use 'wait' to keep X session alive instead of double-exec - Prevents duplicate Openbox instances and ensures proper startup sequence
-
Stefy Lanza (nextime / spora ) authored
Root Cause Identified: - live-config script /usr/lib/live/config/0160-sysvinit was overwriting inittab at runtime - Script was replacing all getty entries with '/bin/login -f user' instead of root - This happened AFTER our inittab modifications during boot process Solution: - Created override-live-config-sysvinit.hook.chroot to replace the problematic script - New script forces LIVE_USERNAME=root instead of default 'user' - Uses proper traditional getty -a syntax: /sbin/getty -a root 38400 tty1 - Maintains tty2-6 as normal login shells for debugging This should finally resolve the autologin issue by preventing live-config from overwriting our carefully crafted inittab entries during boot.
-
Stefy Lanza (nextime / spora ) authored
- Fix inittab examples in ISO_MODIFICATION_WORKFLOW.md - Replace agetty --autologin with getty -a root syntax - Use standard 38400 baud rate format - Ensure all examples match traditional SysV init compatibility
-
Stefy Lanza (nextime / spora ) authored
- Replace agetty --autologin with traditional getty -a root syntax - Remove bash expansion {2..6} and use explicit tty entries - Remove linux parameter that may not be supported in older systems - Use standard 38400 baud rate format - Ensure compatibility with traditional SysV init systems Traditional SysV inittab entries now: 1:23:respawn:/sbin/getty -a root 38400 tty1 # Autologin 2:23:respawn:/sbin/getty 38400 tty2 # Normal login 3:23:respawn:/sbin/getty 38400 tty3 # Normal login ...etc -
Stefy Lanza (nextime / spora ) authored
Major Changes: - Replaced LightDM/SLiM with direct console autologin using SysV inittab - Fixed root account locking that prevented autologin - Added comprehensive SSH configuration for remote access - Created robust auto-start X session with auto-installer launch - Added terminal emulator support (xterm, lxterminal, xfce4-terminal) Key Features: - tty1: Auto-login as root → auto-start X → auto-installer appears - tty2-6: Normal login shells for debugging access - SSH: Uses root password from ISO creation (not hardcoded) - Installed system: Auto-login + OpenVPN + MBetterClient with --web-host 0.0.0.0 Tools Added: - extract_iso.sh / rebuild_iso.sh: Immediate ISO modification workflow - fix_inittab_in_image.sh: Complete ISO analysis and rebuild - Enhanced cleanup.sh with --no-cache option for faster rebuilds - Comprehensive diagnostic tools and logging Build System: - SysV init compatible (no systemd dependencies) - Clean package list (removed display managers, added xinit) - Proper inittab format compliance (max 4 char ID fields) - Enhanced post-installation system configuration Files Modified: - config/hooks/live/setup-console-autologin.hook.chroot (new) - config/hooks/live/enable-ssh-root.hook.chroot (enhanced) - config/hooks/live/run-autologin-debug.hook.chroot (new) - config/package-lists/live.list.chroot (cleaned, added terminals) - config/includes.chroot/root/.bashrc (auto-start X) - config/includes.chroot/root/.xinitrc (auto-installer launch) - config/includes.binary/setup-installed-system.sh (OpenVPN + MBetterClient) - config/includes.chroot/usr/local/bin/live-autologin-debug.sh (new) - Various diagnostic and logging enhancements
-
- 04 Sep, 2025 27 commits
-
-
Stefy Lanza (nextime / spora ) authored
- Add confirm_installation() function with detailed warning dialog - Show target disk information (size, model, device path) - Warn users that all data will be completely erased - Support graphical confirmation (zenity), text-based (dialog), and terminal fallback - Require explicit 'yes' confirmation before proceeding - Add as step 4 before any disk partitioning or formatting - Update total steps from 8 to 9 and renumber subsequent steps - Installation can be safely cancelled without any changes to target disk - Improves safety by preventing accidental data loss
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
- Use PowerShell Format-Volume cmdlet as primary formatting method - More reliable than diskpart with better error handling - Get drive information before formatting for verification - Keep diskpart as fallback method only - PowerShell doesn't require script files and works more consistently - Should resolve blank diskpart window and script access issues - Modern approach using native Windows PowerShell cmdlets
-
Stefy Lanza (nextime / spora ) authored
- Show script content and file size in debug output - Display exact diskpart command being executed - Capture and display diskpart stdout and stderr - Show diskpart exit code for better error analysis - Use Windows ANSI (cp1252) encoding for better diskpart compatibility - Should reveal why diskpart window remains blank and help identify the root cause
-
Stefy Lanza (nextime / spora ) authored
- Use cp1252 (Windows ANSI) encoding instead of UTF-8 for diskpart script - Diskpart expects ANSI encoding and may not read UTF-8 files correctly - Should resolve issue where diskpart window remains blank - File creation and reading now use consistent Windows-compatible encoding
-
Stefy Lanza (nextime / spora ) authored
- Remove incorrect file existence verification that was triggering stdin fallback - User confirmed script file exists and is visible during execution - Faulty check was causing blank diskpart window (stdin mode) - Now always uses script file approach since file creation is actually working - Resolves diskpart execution issue where working script file was being bypassed
-
Stefy Lanza (nextime / spora ) authored
- Detect when script file disappears after successful creation - Fall back to piping diskpart commands via stdin instead of script file - Bypasses Windows security features that may block/virtualize temp files - More reliable approach when file system access is restricted - Addresses issue where file appears created but doesn't actually exist - Resolves diskpart script access problems on secured Windows systems
-
Stefy Lanza (nextime / spora ) authored
- Add detailed status messages for each directory attempt - Explicit UTF-8 encoding for script file creation - Verify file exists and has content after creation - Enhanced error reporting with specific failure reasons - Better handling of permission errors vs other exceptions - Final verification before using script path - Will help identify exactly where script creation fails
-
Stefy Lanza (nextime / spora ) authored
- Detect if running as PyInstaller executable using sys.frozen - Use different directory priority order for PyInstaller vs development: - PyInstaller: prioritize user home directory and executable location - Development: prioritize current working directory - Include executable directory (sys.executable) as fallback for PyInstaller - Ensures diskpart script creation works reliably in both scenarios - Addresses file access issues when running as compiled executable
-
Stefy Lanza (nextime / spora ) authored
- Replace tempfile.NamedTemporaryFile with manual file creation in Windows temp directory - Use Windows TEMP/TMP environment variables for script location - Add file existence verification before running diskpart - Enhanced error handling for FileNotFoundError and subprocess errors - Robust cleanup that won't fail if file deletion fails - Add specific handling for diskpart exit code 2 (file not found) - Resolves '[WinError 2] the system cannot find the file specified' error
-
Stefy Lanza (nextime / spora ) authored
- Improve diskpart script to use disk selection instead of volume - Add disk number detection for more reliable USB targeting - Add fallback formatting using Windows 'format' command - Handle timeout errors (exit code 2147755049 / 0x80070079) - Add timeout handling with 60-second limit - Enhanced error messages for diskpart-specific issues - Better handling of USB drives that may be slow or busy - Resolves 'Command returned non-zero exit status 2147755049' error
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
- Add is_admin_windows() function to check for administrator privileges - Require administrator privileges on Windows startup with clear instructions - Enhanced error handling in USB writing to detect elevation errors - Provide clear guidance on running as administrator - Handle WinError 740 and other elevation-related errors - Resolves 'The requested operation requires elevation' error
-
Stefy Lanza (nextime / spora ) authored
- Replace placeholder with full Windows USB writing implementation - Use diskpart for USB drive formatting and partitioning - Implement file copying with robocopy and Python shutil fallback - Add bootloader file copying to make USB bootable - Enhance USB device detection on Windows: - Show drive letters, volume names, and sizes - Fallback to Windows API for drive type detection - Better user-friendly device labeling - Resolves 'Windows USB writing not implemented' error
-
Stefy Lanza (nextime / spora ) authored
- Try 7z from PATH first - Fallback to default installation directories: - C:\Program Files\7-Zip\7z.exe - C:\Program Files (x86)\7-Zip\7z.exe - Better error handling for extraction failures - Improves compatibility with standard 7-zip installations on Windows
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
- Fix Qt.AlignCenter -> Qt.AlignmentFlag.AlignCenter (line 227) - Fix QLineEdit.Password -> QLineEdit.EchoMode.Password (password fields) - Fix QMessageBox constants to use StandardButton enum - Fix app.exec_() -> app.exec() for PyQt6 compatibility - Resolves AttributeError issues on Windows with PyQt6
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
- Make icon files optional in PyInstaller spec - Check for icon.ico existence before using it on Windows - Check for icon.icns existence before using it on macOS - Added ICON_INFO.md with instructions for creating icon files - Build will now succeed even without icon files present
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
- Replace Unicode checkmark characters (✓) with ASCII [OK] text - Replace Unicode X marks (✗) with ASCII [ERROR] text - Fixes UnicodeEncodeError with 'charmap' codec on Windows systems - Updated both build_usb_creator.py and BUILD_INSTRUCTIONS.md files
-
Stefy Lanza (nextime / spora ) authored
- Added 9999-cleanup-processes.hook.chroot to terminate only chroot-specific processes - Enhanced build.sh and cleanup.sh with targeted process termination - Only terminate rg/fd processes running inside chroot environment - Added documentation file SYS_UNMOUNT_ISSUE.md
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
✅ FIXED DEPENDENCY DETECTION: - Corrected import testing logic for PyQt6 and PyInstaller - Now properly detects installed packages instead of false negatives - Uses correct import names: PyQt6.QtWidgets and PyInstaller - Eliminates false 'missing dependency' errors when packages are installed TECHNICAL FIX: - Fixed import_tests dictionary for accurate package detection - Proper case-sensitive import checking - Resolves issue where installed packages were incorrectly flagged as missing -
Stefy Lanza (nextime / spora ) authored
✅ SAFER BUILD PROCESS: - Changed install_dependencies() to check_dependencies() - No longer automatically installs PyQt6/pyinstaller - Provides clear instructions if dependencies are missing - User must manually install: pip install -r requirements.txt - Added --check-deps option for dependency verification only TECHNICAL DETAILS: - More secure: doesn't modify user's Python environment - Better control: user chooses when to install packages - Clear feedback: shows which packages are missing - Improved workflow: separates dependency management from building USER WORKFLOW: 1. pip install -r requirements.txt (manual) 2. python3 build_usb_creator.py (checks deps then builds) 3. Executable created if all dependencies satisfied -
Stefy Lanza (nextime / spora ) authored
✅ ENHANCED USB CREATOR with MBetterClient Replacement: - Added optional MBetterClient executable selection (checkbox controlled) - Replace default MBetterClient with custom version in ISO - Updates multiple locations in ISO structure for comprehensive replacement - Validation and file existence checking - Enhanced confirmation dialog showing all customizations TECHNICAL DETAILS: + MBetterClient selection UI group with browse functionality + replace_mbetter_client() method replaces executable in all ISO locations + Updated WorkerThread to handle MBetterClient parameter + Enhanced validation logic for executable file checking + Updated confirmation dialog to show all optional configurations USER WORKFLOW: 1. Select ISO file (required) 2. Choose USB device (required) 3. Set root password (optional) 4. Add OpenVPN config (optional) 5. Replace MBetterClient executable (optional) 6. Create customized USB with all configurations This completes the USB creator tool with full customization capabilities.
-