mirror of
https://github.com/ivoszbg/uniLoader.git
synced 2026-05-16 02:00:05 +00:00
eaacd962dbf1007e65ce845482ef6ead490dbd01
- Move main headers from include/ to include/main/
- Split booting logic to boot.c and boot-fdt.c to avoid cluttering main()
- Conditionally compile boot-fdt only if libfdt is used
- Add some better logging
Change was tested on qemu-virt, which succesfully booted a kernel:
$ qemu-system-aarch64 -machine virt -cpu cortex-a72 -nographic -m 512m -kernel uniLoader.o
[INFO] .__.____ .___
[INFO] __ __ ____ |__| | _________ __| _/___________
[INFO] | | \/ \| | | / _ \__ \ / __ |/ __ \_ __\
[INFO] | | / | \ | |__( <_> ) __ \_/ /_/ \ ___/| |\/
[INFO] |____/|___| /__|_______ \____(____ /\____ |\___ >__|
[INFO] \/ \/ \/ \/ \/
[INFO] passed board initialization
[INFO] welcome to uniLoader (e69eba1) - date 2026-02-21 14:01:34 on qemu-virt
[INFO] Booting kernel...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]
[ 0.000000] Linux version 6.12.73+deb13-arm64 (debian-kernel@lists.debian.org) (aarch64-linux-gnu-gcc-14 (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44) #1 SMP Debian 6.12.73-1 (2026-02-17)
[ 0.000000] KASLR enabled
[ 0.000000] random: crng init done
[...]
Signed-off-by: Igor Belwon <igor.belwon@mentallysanemainliners.org>
uniLoader
uniLoader is a minimalistic loader, capable of booting Linux kernels.
It can be used as an intermediate bootloader, providing a clean booting
environment in case of a forced and buggy bootloader.
Supported Architectures
- ARMv7
- ARMv8
Supported Devices
Apple
- N61AP
Amazon
- PW3
- Taimen
Huawei
- Agassi2
itel
- P682LPN
Infinix
- X6710
Nokia
- Essential
Nothing
- Tetris
QEMU
- Virt
Samsung
- A105F
- A127F
- A305F
- A3XELTE
- BEYOND1LTE
- C1S
- HEROLTE
- G0S
- NOBLELTE
- JACKPOTLTE
- ZEROFLTE
- DREAMLTE
- STARLTE
- X1S
- J5LTE
- J4LTE
- GTA4XL
- R0Q
- R8S
Volla
- Algiz
Xiaomi
- Begonia
- Blossom
- Camellia
Make Syntax
make ARCH=$(arch) CROSS_COMPILE=$(toolchain)
Building Example
sudo apt install aarch64-linux-gnu
git clone https://github.com/ivoszbg/uniLoader
cd uniLoader
cp /home/user/linux/arch/arm64/boot/Image blob/Image
cp /home/user/linux/arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb blob/dtb
cp /home/user/ramdisk.gz blob/ramdisk
make ARCH=aarch64 CROSS_COMPILE=aarch64-linux-gnu- dreamlte_defconfig
make ARCH=aarch64 CROSS_COMPILE=aarch64-linux-gnu-
License
This project is licensed under GPLv2.
Languages
C
82.6%
C++
6%
Makefile
4.3%
Assembly
2.9%
Yacc
1.8%
Other
2.4%