I purchased two of this, for about 35 € each. They came with different firmware, also the remote control is different and not interchangeable.
|Date of purchase||2016-04||2016-10|
|Firmware build number||MXQ.V2.0.201601260953||KOT49H.20151225 test-keys|
|CPU||ARMv7 revision 1||ARMv7 revision 1|
|Machine||Amlogic Meson8B||Amlogic Meson8B|
|Total RAM memory||1022 MiB||1022 MiB|
|NAND Storage||8GiB||8 GiB|
|WiFi driver||RTL871X: rtl8189es||RTL871X: rtl8189es|
|Remote factory_code||0x40400001 remote.conf||0xfe010001 remote.conf|
|Recovery mode||Yes, toothpick method||Only from external SD card|
|Note||Time from the internet sometimes does not work.||Overscan problem: image borders drop out of the screen.|
The device does not have a clock inside, it relies on the time it gets from the internet. With the latest firmware (2016-01-26) there is a very annoying bug: from the Android settings we enabled time from the internet and set the proper timezone, this settings works just once, after a reboot the time is almost always unset.
For some insight of partitions content, see the post Boot Android from SdCard.
root@m201d:/ # cat /proc/partitions major minor #blocks name 253 0 512000 zram0 250 0 524288 cache 250 1 32768 logo 250 2 32768 recovery 250 3 32768 misc 250 4 32768 boot 250 5 1048576 system 250 6 5275648 data
|Size||Free (at factory)|
From various posts on the internet it seems that very similar devices are shipped with different remotes. The two of mine are different and are not interchangeable. Remote factory code and configuration is stored into
No need to root the device on model m201d, because it is already. You can install a terminal application and issue the
su command. If you don't want to register into Google to access the Play Store from the MXQ, you can get the .apk file somewhere, put it into the SD card, browse the folders and install it. Another useful app to install is an SSH server, used to open a shell session from a PC into the device or to transfer files via scp. There is also an FTP server, etc.
If the device does not have its
su binary installed, you have to boot in TWRP recovery mode and install superuser from a zip file. You need an update .zip archive, not the .apk Android package, this is why the SuperSU app is distributed also as a zip file (see below for download link). Save it into an SD card along with the TWRP recovery, boot from it and install.
su binary installed by SuperSU is not standalone: when invoked (e.g. from the command line) it will bring-up the graphical interface of SuperSU, which asks to allow superuser privileges to the requesting app. May be there are superuser binaries which does not require this (e.g. the one shipped with model m201d).
Like others Android devices, this one too can boot into Recovery Mode. This is a minimal operating system where it is possible to delete all or some user data and files, perform system updates, etc.
Unlike many Android devices, the MXQ can boot from any recovery image, it does not need a signed one and it is not required to root the device to select a non-stock recovery.
To enter the recovery mode follow the toothpick method. It should be possible to sart the built-in (stock) recovery, or pick one from the SD card. My device with firmware 2016-01-26 is unable to start from the built-in, it just keep on rebooting, so it definitely needed one on the SD card.
recovery.imgon its root directory (FAT32 format).
NOTICE: the recovery image must be unzipped and renamed recovery.img before copying it into the root direcotry of the SD card.
Some Recovery images are very limited, e.g. the stock one installed at factory. This is much like the one I extracted from the OpenELEC 184.108.40.206 archive (which has a build version KOT49H.20151225 test-keys, see web resources for the download link) you can get a copy here: recovery-openelec-220.127.116.11.tgz. It does not permit backup and it has just some basic functions:
A totally different recovery is TWRP, which needs a mouse and support a ton of functions, I reccomend it to make a full backup of the firmware before re-flashing it. See web resources below for the original link, a copy of the image is here: recovery-twrp-amlogic-mxq.tgz (TWRP v.3.0.2, md5sum a5e5cc5faa4cdddd58b8e62470c18ff9). It can perform backup and restore of partitions, it can install packages from zip files on the external SD card, can copy or delete files, …
In Android world, the backup of NAND flash memory partitions is called a NANDroid backup; it contains everything, from operating system to user data. Beware that backup images created with one tool (e.g. TWRP) are generally not compatible with another tool (e.g. CWM Recovery).
Once booted into TWRP, you can click the Backup button and save the images of installed firmware. The archives will be stored into the internal storage of the MXQ, under the directory
/storage/sdcard0/TWRP/mxq/ (really a link into
/mnt/shell/emulated mounting point). In my case it required 1.5 Gb, where the free space was about 3.9 Gb. The saved images are (see below for info about their content):
: Some of the backup files created by TWRP are not readable from the internal storage where TWRP crated them, they give permission denied even if accessed as root. Is this a bug? Is there something I miss? The unreadable files are data.ext4.win and system.ext4.win.
A workaround is to move them from the internal storage to the external SD card using the Advanced ⇒ File Manager function in TWRP.
Flashing a different firmware can be useful to upgrade or downgrade the stock software, or to flash a totally different image, e.g. OpenELEC or LibreELEC (we need a version specifically built for our hardware/model).
Some posts tell to flash a new firmware using a Windows PC and the AMLogic USB Burning Tool, while the MXQ device is connected via an OTG USB cable. We don't have a Windows PC and our MXQ box does not have the OTG USB socket, so we definitely go with the alternative SD card method.
For the SD card method we need to find a firmware archive which contains three files:
factory_update_param.aml just tells what is the archive to use for the upgrade and if erasing user data is required, this is an example:
--update_package=/sdcard/m201-ota-20150915.zip --wipe_data --wipe_cache --wipe_media
The update zip file is actualy a JAR archive, it can be extracted using
jar xvf file.zip. Into the root directory of this archive there is the
/system directory and there are also the images to flash into the relative partitions. This is an example:
| || The most important file is
| ||May contains patches to be applied to the recovery.|
| ||Contains the software that will be flashed into the system partition. It can be the full structure of directories and files, or a single image of a squashfs filesystem, …|
| || Image usually raw-flashed into
| || The u-boot image (much like a DOS/MBR boot sector). This is the first boot loader ( which is flashed where?). When Android is running there is a
| || Image usually raw-flashed into
| || Image usually raw-flashed into
: What image to flash (LibreELEC?), how to do it…
See this paragraph about Android partitions.
It is the raw dump of
/dev/block/logo partition, it contains the BMP files of boot logos packed into a special Amlogic format. There is a tool called aml-imgpack which was able to extract the image files. Browsing the partition image you can see the Amlogic magic number 0x27051956 and the magic number of several BMP images (which is BM).