Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation


License Build Status Releases Commits

Copyright (C) 2012 Alejandro Mery
For a full list of contributors, see this link or use the command git shortlog -se --no-merges.

Command line utilities to work with devices based on Allwinner SoCs: sun4i, sun5i, ... - that's why the 'x' in the package name.


.fex file (de)compiler

Usage: ./sunxi-fexc [-vq] [-I <infmt>] [-O <outfmt>] [<input> [<output>]]

infmt:  fex, bin  (default:fex)
outfmt: fex, bin  (default:bin)


compatibility shortcut to call sunxi-fexc to decompile a script.bin blob back into .fex format used by Allwinner's SDK to configure the boards.


compatiblity shortcut to call sunxi-fexc to compile a .fex file into the binary form used by the legacy 3.4 kernel ("linux-sunxi").


script interface for USB communication with the FEL handler built in to the CPU. You usually activate FEL mode by pushing the uboot / recovery button at poweron, or by having your device "fail over" to FEL when no other boot option is available. See for a detailed usage guide.

When called with no arguments, sunxi-fel will display a short usage summary.

Note: Unless you select a specific device using the --dev or --sid options, the tool will access the first Allwinner device (in FEL mode) that it finds. You can print a list of all FEL devices currently connected/detected with ./sunxi-fel --list --verbose.


Simple wrapper (script) around sunxi-pio and sunxi-fel to allow GPIO manipulations via FEL


ARM native sdcard bootloader forcing the device into FEL mode


ARM native sdcard bootloader, which is only printing a short "hello" message to the UART0 serial console. Because it relies on runtime SoC type detection, this single image is bootable on a wide range of Allwinner devices and can be used for testing. Additionally, it may serve as a template/example for developing simple bare metal code (LED blinking and other similar GPIO related things).


Manipulate PIO registers/dumps


Tool for manipulating Allwinner NAND partition tables


Tool used to create raw NAND images (including boot0 images)


ARM native boot helper to force the SD port into JTAG and then stop, to ease debugging of bootloaders.


Dump information from Allwinner boot files (boot0 / boot1)

--type=sd	include SD boot info
--type=nand	include NAND boot info (not implemented)


gives information about a phoenix image created by the phoenixcard utility and optionally extracts the embedded boot code & firmware file from their hidden partitions.


Tool for reading DRAM settings from registers. Compiled as a static binary for use on android and other OSes. To build this, get a toolchain and run:

make CROSS_COMPILE=arm-linux-gnueabihf- sunxi-meminfo


A simple tool, which can be executed on a rooted Android device to dump the script.bin blob from RAM via reading /dev/mem. To build this, get a toolchain and run:

make CROSS_COMPILE=arm-linux-gnueabihf- sunxi-script_extractor


Compilation requires the development version of libusb-1.0 (include header and library) to be installed for sunxi-fel. Unless you explicitly pass LIBUSB_CFLAGS and LIBUSB_LIBS to the make utility, pkg-config is also needed. Development versions of zlib and libfdt are also required.

To install the dependencies on Ubuntu 20.04 using package manager:

sudo apt install libusb-1.0-0-dev libz-dev libfdt-dev

Available build targets:

  • make tools builds tools that are useful on the host. This is what most people will want, and our default target (when simply using make).

  • make target-tools builds tools that are intended for the target (Allwinner SoC), using a cross-compiler. The Makefile will try to auto-detect a suitable toolchain prefix, and falls back to arm-none-eabi- otherwise. If needed, you may override this by explicitly setting CROSS_COMPILE.
    Hint: When compiling 'natively' on the target platform you may simply use an empty toolchain prefix here (make target-tools CROSS_COMPILE= or make all CROSS_COMPILE=).

  • make all builds both tools and target-tools.

  • make install-tools builds tools and then copies/installs them to a filesystem location. The destination is affected by settings for DESTDIR, PREFIX and possibly BINDIR. For details, please refer to the Makefile. You may use make install as a shortcut for this.

  • make install-target-tools builds target-tools and then copies/installs them to a filesystem location selected by DESTDIR, PREFIX and possibly BINDIR - see make install-tools above.

  • make install-all builds and installs both tools and target-tools.

  • make misc builds miscellaneous (host) utilities that are not part of our 'standard' suite. Currently this means phoenix_info and sunxi-nand-image-builder.

  • make install-misc builds misc and installs the resulting binaries.


This software is licensed under the terms of GPLv2+ as defined by the Free Software Foundation, details can be read in the file.