What is this and why should I flash this to my Odin 2?
LinuxLoader is an open-source bootloader developed by Qualcomm, designed to boot the Android OS while also providing a fastboot interface. Typically located in the abl
partition on Android devices, it is often referred to as ABL
.
However, the stock ABL that comes with the AYN Odin 2 has several limitations. For example, commands such as flash
, erase
, and boot
are disabled in fastboot, hindering the flashing of custom images and the restoration of backups.
Additionally, it cannot load anything from an SD card, making it difficult to boot a custom OS without modifying the UFS.
To address these issues, a custom LinuxLoader has been developed specifically for the Odin 2. This version offers significantly more flexibility as a bootloader. It can directly replace the stock ABL, allowing the device to boot Android, Linux, or any other OS, all without affecting OTA updates.
You can download latest custom LinuxLoader here: linuxloader-release
After finishing the download, extract the odin2_custom_abl
folder to the root of Android internal storage.
Then use Odin settings
-> Run script as Root
to run the backup_and_flash.sh
script.
The custom LinuxLoader can work just fine without an SD card or the configuration file below.
Make sure your SD card has at least one FAT16 or FAT32 partition, then create a new file named LinuxLoader.cfg
in the root of the partition.
#
# Configure the LinuxLoader settings
#
[LinuxLoader]
# Controls on-screen logging
# This setting can persist without config file or sdcard being present
Debug = true
# Boot target. Can be one of the following:
# "default" (ABL default)
# "Linux" (direct Linux Image load)
# "EFI"
# "UEFI Shell" (will execute startup.nsh automatically if found on any FAT partition)
# "Mass Storage" (will mount the UFS LUN specified below as mass storage)
Target = "default"
# Default UFS LUN to mount as mass storage
# Allowed values: 0, 1, 2, 3, 4, 5
MassStorageLUN = 0
# Volume up boot target. Can be one of the following:
# "BDS Menu" (will enter the UEFI boot menu provided by Qualcomm, don't touch anything there unless you know what you are doing!)
# "UEFI Shell" (will execute startup.nsh automatically if found on any FAT partition)
# "recovery"
# "Linux"
DefaultVolUp = "BDS Menu"
# Setting this to *true* will enable USB Host mode in UEFI
# This might be useful if you want to play with UEFI.
# Note that you will need an externally powered type-C hub to connect USB devices. (at least for now)
UsbHostMode = false
# Controls hypervisor UART enablement
#
# Setting *true* here will force enable the hypervisor UART
# Setting *false* here will force disable the hypervisor UART
# Removing this line will avoid changing the default behavior
# Please leave it to *false* unless you know what you are doing
HypUartEnable = false
# Controls display hardware status during exit boot services
#
# The dispcc driver from mainline Linux kernel has a bug, which
# prevents the display hardware from initializing properly if
# the display hardware is not disabled before exiting boot services.
#
# Set this to *true* if you are trying to boot a mainline kernel.
DisableDisplayHW = true
[Linux]
# Accept both gzipped and non-gzipped kernel images
Image = "test/Image.gz"
initrd = "test/initramfs-linux.img"
devicetree = "test/qcs8550-ayn-odin2-hypdtbo.dtb"
cmdline = "clk_ignore_unused pd_ignore_unused panic=30 audit=0 loglevel=8 allow_mismatched_32bit_el0 root=PARTLABEL=arch rw rootfstype=btrfs drm.debug=0x100"
[EFI]
Image = "EFI/BOOT/BOOTAA64.EFI"
# Options to be passed to the EFI Application, could be left empty
Options = "earlycon=efifb,mem"