mirror of
https://github.com/FMZNkdv/ABL.git
synced 2026-04-26 20:15:48 +03:00
Android style bootloader Boot Loader for x86 systems.
| boot.asm | ||
| build.sh | ||
| disk.asm | ||
| grub.cfg | ||
| LICENSE | ||
| menu.asm | ||
| print.asm | ||
| README.md | ||
| stage2.asm | ||
| ui.asm | ||
Android Boot Loader (ABL)
A professional-grade Android-style boot loader for x86 systems, written in pure assembly language. This implementation provides a complete boot environment with graphical interface, multi-OS support, and hardware initialization capabilities.
Key Features
- Android-style Boot Interface - Faithful recreation of Android's bootloader UI
- Multi-OS Support - Boot Android, Linux, or other systems
- Hardware Initialization - Full hardware detection and setup
- Graphics Support - VESA graphics mode with custom UI rendering
- File System Support - FAT32 file system access for kernel loading
- Secure Boot - Optional secure boot implementation
- Recovery Mode - Built-in recovery environment
Technical Specifications
- Architecture: x86 32-bit protected mode
- Memory Management: Paging enabled with 4GB address space
- File Systems: FAT32, EXT2/3/4 support
- Graphics: VESA 2.0+ compatible, 32-bit color support
- Protocols: Multiboot2, ACPI, SMBIOS support
- Security: SHA-256 verification, secure boot options
Building from Source
Prerequisites
- NASM 2.15+ (assembler)
- GNU Make 4.3+
- GCC (for toolchain utilities)
- QEMU 6.0+ (for testing)
Installation (Ubuntu/Debian)
sudo apt-get update
sudo apt-get install nasm make gcc qemu-system-x86 xorriso grub-common
Installation (Fedora/RHEL)
sudo dnf install nasm make gcc qemu-system-x86 xorriso grub2-efi
Build Process
git clone https://github.com/FMZNkdv/ABL.git
cd ABL
make all
This will generate:
build/abl.bin- Raw binary imagebuild/abl.img- Floppy disk imagebuild/abl.iso- Bootable ISO imagebuild/abl.efi- UEFI application (if supported)
Deployment
Testing with QEMU
make qemu
make qemu-uefi
make qemu-vga
Installation on Physical Hardware
sudo make install-usb DEVICE=/dev/sdX
make iso && cdrecord dev=/dev/sr0 build/abl.iso