Ubuntu Phone - How to install Android
Update 15/06/15: bq has released the MediaTek flash tool for Linux enabling users to perform this flash operation without Windows. I've added a section near the end of this guide with relevant links and information for this operation.
If you're like me, you ordered an Aquaris E4.5 Ubuntu Phone from bq and found it almost unusable -- it's just not ready for primetime. And it's hard to believe, given the amount of high-quality marketing Canonical is giving their OS. Luckily, there is nothing wrong with the phone hardware itself. Some users with more expensive Android handsets may scoff at the specs, but I assure you that this is a capable device when running Android. Given that, this guide will tell you what you need to know to convert the bq Aquaris E4.5 Ubuntu Edition into a fully-functional1 Android phone.
Given the nature of what we're doing -- flashing firmware -- you should be aware that you follow my instructions at your own risk (bricked device, wasted afternoon, etc). The support I can offer you with this process is minimal, so you can't expect me to bail you out if you muck it up proper.
Basic requirements and prep
- A PC running Windows Vista or better with Administrator privileges.
- OR a PC running Ubuntu 14.10 or better.
- A fully-charged Aquaris E4.5.
- A microUSB sync cable.
- A working knowledge of Windows file management, saving batch files, and the Device Manager.
- Quick hands.
You'll need access to a Windows PC to perform the flash operation detailed in this part of the guide. It is also possible to perform the flash on Ubuntu. If you are using Ubuntu, jump to the section near the end of this guide.
I attempted to perform this using a Windows guest in VirtualBox with a Mac OS X host, but I ended up using my gaming desktop running Windows to perform the flash operation. There is no reason it should not work, so if you get virtualized Windows2 to flash your device, let me know.
Additionally, before you get started, it is worthwhile to note that it is best to leave your E4.5 unplugged from your computer while performing the following steps. This will help to avoid any confusion regarding the drivers.
The firmware we will need for the Android Aquaris E4.5 is available from bq's support website. The most recent version as of writing is
1.5.0 2.0.1 which is running Android 4.4 and enables an OTA update to Lollipop3. (Links may become outdated)
Once you download the firmware zip file, extract it to a handy location. I'll warn you to create a new directory -- all of the files are at the root level of the archive.
Download drivers and flash tool
The tool we need to use has been packaged up by bq with the USB drivers required for detecting the device in its "meta" mode. Strangely enough, the flash tool download is not listed on the E4.5's page. Instead we'll head over to the support page for the Aquaris E5 HD and grab it there.
When you extract the RAR file to your handy location, you'll get three directories.
Drivers Hard Reset and
Herramienta MTK Flash Tool.
Installing the drivers
Drivers Hard Reset directory and you'll see a bunch of files. The one of slight interest to us is
Install.bat. This batch file is supposed to take care of the driver installation for us, but it is actually pretty bad at that (read: doesn't work). Instead, I've written a replacement batch file that will do the job for us. It is a simple adaptation of the original
To use the script, you can replace the contents of
Install.bat with the contents of my Gist or you can create a new batch file like I did. I named mine
When you run
fixed_install.bat, you will be prompted several times about unsigned drivers. You must install these. If you have any issues during this step, you may try running the script as Administrator, but simply double-clicking
fixed_install.bat worked for me.
IMPORTANT: The above script assumes 64-bit windows. If you are running 32-bit Windows, you should change the end of line 4 to say
x86 instead of
Test out the drivers
Before performing the following steps, it may help to turn the sound on. The sound that plays when connecting and disconnecting USB devices can be helpful. Also make sure your E4.5 is powered off completely, but not plugged into the computer.
- Open the Device Manager and expand the Ports (COM & LPT) section.
- Connect your E4.5 to the computer by plugging in the USB cable.
- You should hear the device connected sound and the Device Manager will refresh one or a few times. During this time you may see an "Unknown Device" listed.
- Windows will begin attempting to install device drivers. You can click the bubble to watch it, but it will appear to fail as the device will become unplugged. (Not by your action)
- Unplug your E4.5 and wait a moment.
- Plug in your E4.5 again. If everything went well, you should see "Preloader USB VCOM Port" (or something very similar) under Ports (COM & LPT) for a few seconds before it disappears again.
If you reached step 6 with no issue, then we are ready to flash. Unplug your E4.5.
MediaTek Flash Tool
Navigate to the
Herramienta MTK Flash Tool directory and launch
flash_tool.exe. The Mediatek Flash Tool uses the word "Download" to indicate the transfer of data to your device. Thus, we'll need to go to the "Download" tab in the application.
To get ready to flash your device, we need to tell the tool about the firmware's scatter file. Click the button titled "Scatter-loading" and in the "Open Scatter File" window that opens, navigate to the directory that you extracted the firmware to earlier. Inside, there should be a file named
MT6582_Android_scatter.txt which you should select.
Now the bottom half of the tool should show a series of lines indicating the start and end addresses of the various partitions we are about to flash along with the local filename of their images.
Finally, in the drop-down box, make sure you choose "Firmware Upgrade".
Now we are ready to flash.
Flashing the ROM
Your E4.5 should still be powered off and unplugged at this point.
Before we go through the following steps, do you remember how the powered-off device only showed up in device manager for a few moments before disconnecting? Well, those moments are the period of time we have for the Flash Tool to recognize the E4.5's preloader and begin the flashing process. I was a bit slow doing step 2 the first time. Just unplug the phone and start again if you miss it.
Plug in your device
A series of colored bars should appear at the bottom of the flash tool along with a status.
Remove the USB cable from your phone.
Linux MediaTek Flash Tool
It was brought to my attention in the comments4 below that bq has released the Linux version of the flash tool. The Qt-based tool bears the same interface as its Windows counterpart, and the same limitations on plugging up your device and quickly pressing "Download" still apply. Using the same firmware zip (and included scatter file) from the windows part of this tutorial will also work. You will need to run the tool as root to perform the operation.
On the plus side, there is no driver installation necessary with the Linux version of the tool. You just need to unzip the archive and then run the
flash_tool binary as root. Head over to the freshly-updated bq support page for the downloads:
Aquaris E4.5 Android Firmware 1.5.0 (Same link as in the Windows part of this guide)
Ubuntu Touch Firmware Download (Flash the phone back to its original state)
(These links may become outdated, so check the official page for any updates.)
bq's Aquaris E4.5 is a great device, but the Ubuntu Touch 14.04 was just not what we had hoped for. With Android running on it, we should get a bit more use out of it. That said, I hope this article has helped you, and if it has, please let me know.
"Fully-functional" meaning the "Back", "Home", and "Recent" capacitive buttons are still below the screen, but the Ubuntu Phone's faceplate does not have any cut-outs for the lights to shine through. ↩
In theory, a guest OS should be able to perform the flash operation if the Preloader USB device is automatically connected to the guest (and is done so quickly enough) when you plug in your device to the host OS. ↩