How to edit prebuilt Android images

How to edit the parameters in Android distributions

For almost any Olimex Allwinner board there are Android images provided. These are ready-to-use images with all the settings already configured. The images are generally two types: suitable for NAND memory boot of the boards; or suitable for a microSD card boot.

We often get asked to provide Android images with different set of settings or support for custom resolutions. Unfortunately, we are unable to compile Android images for every possible resolution and every possible Alwinner board. This article would provide algorithms that would allow you to edit the Android parameters by yourself.

The easiest approach is to edit an already existing image as explained below. The other method would be to create an Android image from scratch.

Note that the method for editing Android image suitable for NAND memory is completely different compared to the method for editing Android image suitable for microSD card.

The sources for the Android images can be found in this repository (if decide to rebuild the images from scratch): https://github.com/hehopmajieh/olinuxino_configs

The algorithm to edit the Android image for the NAND memory

To edit the configuration of official Android image suitable for the NAND memory follow the algorithm below:

  • 1. Download the latest official Android image for NAND from the wiki article of your board.
  • 3. Start the program from DragonFace.exe and let it update on first launch.
  • 4. After the update is complete and the interface of the program is available click on the "Firmware" button and then load the *.img file that we got in point 1.
    • During the opening of the firmware additional processes might attempt to start. Windows user account control might prompt for your approval. Make sure that you allow those.
    • If you receive an error loading the image: ensure that the torrent program or any local or remote program or process that might interfere with the image had been closed and the link to the image had been terminated. If the image you are going to edit is open by another program you will not be able to edit it via DragonFace - the error that usually gets displayed in such a case is: "DragonFace: Firmware does not support the tools to modify, make sure that the firmware version: OK".
  • 5. After the load is complete navigate to the "Advanced Settings" tab. In the tab select "System Configuration". This would open the configuration in simple text form in your default text editor. Refer to the picture below:
    Df1.png
  • 6. Now we can edit parameters. More information on what the parameters mean and what values they might have is found here: http://linux-sunxi.org/Fex_Guide
    • For example, to enable FullHD video output at 60Hz we need to change screen0_output_type and screen0_output_mode as follows: screen0_output_type = 3; screen0_output_mode = 10
  • 7. After we are done we save the text file and close it. Then we click the button "Save" at the bottom of the DragonFace interface. A prompt windows would appear and would allow us to specify a save location and name for the edited image.
    • During the save operation of the firmware additional processes might attempt to start. Windows user account control might prompt for your approval. Make sure that you allow those.
  • 8. Voila - we have an image with custom settings. We are ready to burn it to the NAND memory of the board.


The algorithm to edit the Android image for microSD card

To edit the configuration of official Android image suitable for the micrSD card memory follow the algorithm below:

  • 1. Identify what type of Android image for microSD card you have downloaded
    • There are two types of Android images for microSD card that we usually provide and each of them can be edited in a different way. The image provided for microSD card is either the native Android image that can be edited with a tool like the DragonFace mentioned above or an image taken from an already prepared microSD card which can't be loaded in DragonFace.
    • It is possible that only one of the types mentioned above is available for a specific board.
    • Why did you make two types of images microSD card images with Android? The original image was a bit hard to load to a microSD card and you had to use PhoenixSuit - a not-so-consistent program. Something more - it had no Linux alternative. The images that were a copy of a prepared microSD card are easier to deploy and use - just write the image to the microSD card.
    • But how to tell which image is which? It's simple - if the Android image for microSD card (that you downloaded from the wiki) opens successfully in DragonFace then it is the first type. If it doesn't load successfully - it is the second type. If the image is the first type go to step 2. If the image is the second type skip to step 3.
  • 2. If the image is the first type (an image suitable for DragonFace) then simply follow the algorithm in the previous section: "The algorithm to edit the Android image for the NAND memory". That would allow you to modify the configuration and then you can upload it to your board using PhoenixSuit.
    • Note that the images suitable for DragonFace, generally, are smaller than 1 GB of size, while the images that were copied off a prepared card are 4GB or 8GB of size.
  • 3. It is most likely that the image is the second type - not the original Android image card, but a copy of the memory of an already-prepared card. In that case to edit the configuration you would need to download the image to the card and edit the script.bin file located inside the card. You would need a card reader to do so.
    • Note that the card is prepared in EXT4 file system which is not native for Windows. This means that if you are using Windows you would probably have trouble editing the image and saving the changes. I've tested Windows tools that are supposed to do the job (like "Ext2Fsd", "ext2expolerer" and "DiskInternals Linux Reader") but I was unable to write the script.bin back onto the image. Thus, my only advice is to use a Linux computer or Linux virtual machine to explore the microSD card and change the configuration.
  • 4 At this point you have located the script.bin file. However, you can't edit the script binary file directly so you would need to convert it to text format (it is called .fex in this case), then edit the parameters via a text editor and finally switch it back to the binary format.
    • The different options for the script are explained here: SUNXI FEX GUIDE
    • IMPORTANT! ADJUSTING SCRIPT.BIN WITH IMPROPER VALUES MIGHT BREAK YOUR ANDROID IMAGE AND IT IS ALWAYS RECOMMENDED TO KEEP A BACK-UP OF YOUR DEFAULT SCRIPT.BIN
    • To convert back and forth the script.bin you might use different tools. You can find Windows tools here: SUNXI TOOLS FOR WINDOWS . For Linux convertors please check the sunxi tools here: SUNXI TOOLS