We are glad to release a new version of Android 5.1.1 (Lollipop) for all our platforms: BD-SL-i.MX6 (SABRE Lite), Nitrogen6x, Nitrogen6_Max (Quad and QuadPlus), Nitrogen6_SOM, Nitrogen6_SOMv2, Nitrogen6_Lite, Nit6_SoloX and Nitrogen6_VM.This release went under the same testing as our previous releases.We now recommend this release for new designs.
For the impatient
You can download images from here:
- l511-nitrogen6x-20171205.img.gz for Nitrogen6X, SABRE Lite, Nitrogen6_Max, Nitrogen6_SOM and Nitrogen6_SOMv2
- l511-nitrogen6x-bcm-20171205.img.gz: for Nit6Q_W_BCOM or any of the above with the Murata WiFi module
- l511-nit6xlite-20171205.img.gz for Nitrogen6_Lite
- l511-nitrogen6sx-20171205.img.gz for Nit6_SoloX
As usual, you'll need to register on our site and agree to the EULA because it contains Freescale content. The image is a 4GB SD card image that can be restored using zcat
and dd
under Linux.
~$ zcat l511*.img.gz | sudo dd of=/dev/sdX bs=1M
For Windows users, please use Alex Page's USB Image Tool.
What's new?
First of all, this release includes all the features that were previously available in our last Android 5.0.0 release. We will only describe the changes brought either by the OS update itself or changes in features that have been enabled in last release.Since the Beta hasn't been publicly available, we will also re-enumerate the features from the Beta.
OS update
Here is a non-exhaustive list of noticeable changes between Android 5.0.0 and 5.1.1:
- Quick Settings drawer allows now to access some menu such as WiFi selection
- Notifications have been heavily changed and now offer an option to temporarily dismiss them
- Change the system volume level while music is playing
- Fixes most memory leaks reported in 5.0.0 and 5.1.0
For a more complete changelog between the two versions, we invite you to look at the very nice Opersys website which lists all the different commits between every version:
Also, it is worth noting that Freescale/NXP took take of patching the security flaws discovered in the Android media server.
Linux Kernel 3.14.52
This is the first Android release based on a 3.14 kernel which brings:
- Latest and greatest drivers support
- Vivante graphics libraries v5.0.11 p7
- i.MX6 Quad/Dual Plus support
- i.MX6 SoloX support
- No more earlysuspend mechanism as recommended by the AOSP folks
Another change is to be noted regarding our display plug-and-play experience. Since the switch to device tree, it has been hard to keep a simple/readable 6x_bootscript that fits all our platforms/displays. So we went ahead and tried another approach having a default node for display timings which U-Boot is in charge to populate. This approach requires an update of U-Boot (see next section).
U-Boot changes
First you need to update U-Boot (after flashing the sdcard image provided above). First you need to download the latest U-Boot binaries available:
Then, you need to set a uboot_defconfig
variable which is unique per platform:
nit6xlite
for Nit6xlitenitrogen6_max
for Nitrogen6_MAXnitrogen6q
for Nitrogen6x/BD-SL-i.MX6nitrogen6sx
for Nit6_SoloX
Below is an example for Nitrogen6x.
U-Boot> setenv uboot_defconfig nitrogen6q
U-Boot> run upgradeu
Then everything should work out of the box again. But in case you wonder how to specify a specific display, here are some useful commands:
U-Boot> fbpanel
clock-frequency hactive vactive hback-porch hfront-porch vback-porch vfront-porch hsync-len vsync-len
hdmi: 1280x720M@60:m24:74161969,1280,720,220,110,20,5,40,5
74161969 1280 720 220 110 20 5 40 5
hdmi: 1920x1080M@60:m24:148500148,1920,1080,148,88,36,4,44,5
148500148 1920 1080 148 88 36 4 44 5
hdmi: 1024x768M@60:m24:64998375,1024,768,220,40,21,7,60,10
64998375 1024 768 220 40 21 7 60 10
lvds: lg1280x800:j24:71108582,1280,800,48,80,15,2,32,6
71108582 1280 800 48 80 15 2 32 6
...
U-Boot> setenv fb_lvds lg1280x800
U-Boot> saveenv
U-Boot> reset
The example above uses fbpanel
to list all the available settings for this particular platform. Then the LVDS display is set to be the LG1280x800 display by setting fb_lvds
. The same can be done for HDMI or LCD displays through fb_hdmi
and fb_lcd
.Behind the curtain you can have a look at the cmd_hdmi
, cmd_lvds
and cmd_lcd
variables which are now being run from the 6x_bootscript
in order to setup the display timings and resolutions.More information on those U-Boot changes on a previous blog post:
Miscellaneous additions
- Our multi-display/multi-app demo is now part of the standard image
- https://boundarydevices.com/android-lollipop-dual-display-imx6/
- You can now test it yourself as soon as you have 2 displays connected.
- ExFAT and NTFS support for all external media
- A USB drive and/or additional SD card doesn't need to be FAT32 formatted any more to be recognized as a valid external storage.
- Ext4 support only works with SELinux disabled or permissive since it would require to modify AOSP base sepolicy.
- Basic Fastboot support
- Implied to switch to a GPT partition table.
- Ext4 versions of boot.img and recovery.img are now created.
- Formatting isn't supported yet due to our legacy layout.
- Mmc card index has to be fixed in the U-Boot configuration, it is set to flash mmc1 for all configurations except for Nit6xlite:
- Nitrogen6_MAX example: https://github.com/boundarydevices/u-boot-imx6/commit/f4df69de
- If you need to change it, please modify the CONFIG_FASTBOOT_FLASH_MMC_DEV in your board configuration and re-build U-Boot.
- But you can now flash all the images on an already formatted GPT disk as follows:
~/$ adb shell reboot bootloader
~/$ fastboot flash boot $OUT/boot.img
finished. total time: 3.762s
~/$ fastboot flash recovery $OUT/recovery.img
finished. total time: 3.402s
~/$ fastboot flash system $OUT/system.img
finished. total time: 52.153s
~/$ fastboot continue
resuming boot...
- Support of our HDMI to MIPI daughter board by default
- See our BD_HDMI_MIPI product page
- F-Droid app store
- F-Droid is an installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform. The client makes it easy to browse, install, and keep track of updates on your device.
- Although it is not installed on our release by default, it has been tested on our platforms and seemed very interesting so we thought it would be worth sharing it here:
- Installing another app is now as simple as using Google Play:
- All the source code is available for both client and server side which means you can easily put that in place for your project/company and control what the users have access to.
- Here is a quick procedure to install the app to your platform:
~/$ wget https://f-droid.org/FDroid.apk ~/$ adb install FDroid.apk
- Let us know if you'd like to have it installed on our next releases.
Source code access
For the newcomers, please make sure to read our "Android Getting Started Guide" since it contains all the information you need to download, build and flash an Android image.
For those already familiar with our releases, here is a condensed version to get the source code:
~/$ mkdir myandroid
~/$ cd myandroid
~/myandroid$ repo init -u git://github.com/boundarydevices/android-manifest.git
-b boundary-imx-l5.1.1_2.1.0-ga
~/myandroid$ repo sync
~/myandroid$ source build/envsetup.sh
~/myandroid$ lunch
... choose nitrogen6x / nit6xlite / nitrogen6sx from the list of boards
~/myandroid$ make 2>&1 | tee build.out
As always, let us know your experiences (both good and bad) when you test out this image.