h1. Bootloader interfaces |_. Device |_. Bootloader | cmdline from boot.img | cmdline from bootloader environment | Compatible with upstream Linux | Flashing protocols | Image formats | filesystems | Loads a TrustZone OS | | N/A | upstream u-boot | ? | Yes | Yes | * DFU * Fastboot * Thor[1] * Other? | * Android Boot.img files * U-boot uImages * RAW / zImage * Other | Yes, various | Not on 32bit ARM | | N/A | upstream Barebox | ? | Yes | Yes | * DFU * FAstboot * Other? | * Android Boot.img files ? * U-boot uImages * RAW / zImage * Other | Yes, various | Not on 32bit ARM | | Galaxy S (GT-I9000) | [[GTI9000Bootloader]] | | | ? | * Thor[1] | * RAW / zImage | RAW, KERNEL partition only | Probably not | | Galaxy SII (GT-I9100) | [[GTI9100Bootloader]] | | | [[BootloadersIncompatibleWithLinux#Devices-with-the-Exynos-4412-2|Probably not]] | * Thor[1] | * RAW / zImage | RAW, ? partition only | Probably not | | Galaxy SII (GT-I9100G_CHN_CHN) | [[GTI9100GBootloader]] | | | ? | * Very unreliable[2] Thor[1] | ? | RAW, KERNEL partition only | ? | | Galaxy Nexus (GT-I9250) | [[I9250Bootloader]] | used | ignored | ? | * Reliable[3] Thor[1] * Fastboot | * boot.img | boot and recovery partitions only | ? | | Galaxy SIII (GT-I9300) Galaxy SIII 4G (GT-I9305) Galaxy Note II (GT-N7100) Galaxy Note II 4G (GT-N7105) | [[MidasBootloader]] | ignored | used | [[BootloadersIncompatibleWithLinux#Devices-with-the-Exynos-4412|No]] | * Somewhat reliable[4] Thor[1] | * boot.img | RAW, BOOT and RECOVERY partitions only | | | [[GT-N5100Bootloader]] | | | | | | | Yes, And the OS is nonfree and signed! | | Galaxy Note (GT-N7000) | [[GTIN7000Bootloader]] | | | ? | * Thor[1] | * RAW / zImage | RAW, KERNEL partition only | ? | | Galaxy Tab 2 7.0 GSM (GT-P3100) | | ignored | Yes[6]? | | * Thor[1] | * boot.img | RAW, KERNEL and RECOVERY partitions only | ? | | PinePhone v1.1 Braveheart (stock?[5]) u-boot | [[PinePhoneBraveheartBootloader]] | ? | Yes | Yes (u-boot) | ? | ? | ? | Probably (arm64), fully free software | fn1. Thor is the protocol used by Heimdall, Odin, "u-boot":https://gitlab.denx.de/u-boot/u-boot/-/raw/master/drivers/usb/gadget/f_thor.c and several nonfree bootloaders. u-boot has a free software fn2. It didn't work on GNUtoo desktop computer at all, while it worked fine on his laptop. With the stock Android 2.6.3 bootloader you could also end up stuck on the PC screen without a computer where heimdall works fine. fn3. Under IO (disk or SSD) load, a computer can easily flash SYSTEM or even DATA partitions with heimdall. fn4. Under IO (disk or SSD) load, a computer typically fails at flashing SYSTEM or big DATA partitions with heimdall. Boot and recovery partitions are typically fine though. fn5. Someone lent me a Pinephone Braveheart and beside testing many distributions, nothing low level was attempted when I got it. fn6. Boots upstream with custom dts without patches, unknown if it works for all build configurations (like CONFIG_STACKPROTECTOR_PER_TASK=y) h2. See also * [[UART]]: How to get the serial console. Very useful to interact with the bootloader and see boot logs. * [[IsorecRecoveryIssue]]: An issue affecting the bootloaders of the Galaxy SII (GT-I9100), Galaxy Note (GT-N7000), Galaxy S II (GT-I9100G)