How to Flash Custom Recovery / Kernel With Flashify App

Recent Posts



This is a wiki, so please adjust everything that isn’t detailed enough or would have helped you with porting.

If you have made some progress with a new port, please create a Device page to document your findings. Even if you didn’t get very far and the kernel does not compile, this will help others to continue your work. To create a device page, you will need to register an account on this wiki. (You do not need to provide an e-mail address.)

Running the kernel

There are multiple ways to run a custom-built kernel. The following are known ways suitable for various development scenarios.

Embedding into the Android image build

Copy Image.lz4-dtb to the respective kernel binary location within the AOSP tree and rebuild the boot image.

Alternatively, define the TARGET_PREBUILT_KERNEL variable while using make bootimage (or any other make command line that builds a boot image). This variable is supported by all devices as it’s set up via device/common/ For example:

Flashing and booting kernels with fastboot

Most recent devices have a bootloader extension to streamline the process of generating and booting a boot image.

To boot the kernel without flashing:

Using this method, the kernel isn’t actually flashed, and won’t persist across a reboot.

Identifying kernel versions

You can identify the correct version to build from two sources: the AOSP tree and the system image.

The AOSP tree contains prebuilt kernel versions. The git log reveals the correct version as part of the commit message:

If the kernel version isn’t listed in the git log, obtain it from the system image, as described below.

Kernel version from system image

To determine the kernel version used in a system image, run the following command against the kernel file:

For Image.lz4-dtb files, run:

Why should you flash a custom kernel?

Flashing a custom kernel is one reason why people root their device, which can help improve the battery life and the performance of your device in several aspects. Besides you can benefit a lot from a custom kernel such as you can get a wide range of hardwares compared with generic kernel, it will lower memory usage and can be used on a system with a small amount of RAM. What's more, a custom kernel can have a modified CPU table that allows for speeds well beyond the CPU's original specifications.

Full disk encryption: osk-sdl support

Our charging application charging-sdl uses the same software stack as osk-sdl, so following the instructions should make both components work.

If the display and the touchscreen interface are working, then it’s time to add support for osk-sdl so that you are able to use full disk encryption on the root filesystem. Instructions for adding support can be found here: Porting osk-sdl to New Devices