- Specification:
- Where to buy:
- Blogs (factory firmware releases and testing):
- Forums (rooted firmware releases, HW mods, etc.):
- ArmTvTech
- FreakTab
- MiniAnd
- 4PDA (only for registered users can download)
- AndroidForum
- Firmwares (factory, rooted, recovery, etc.):
- Recovery
- Rikomagic’s Original/Factory (FTP site)
- Rikomagic MK802 Forum – firmware rev1 vs. rev2/FW0710B
- Rikomagic MK802 II Forum
- Support for Rikomagic’s devices with official firmware version 0724 (rev03) and firmwares for MK802II and MK802III – there is also a mirror
- Support for Rikomagic’s devices (German mirror)
- the original firmware can be modified by Uberizer (key sequence: d/0 for backup, c/6 for root, b/3 for market fix, e/2 for boot animation, c/13 for root checker apk, and d/0 for final backup)
- Custom ROMs based on the factory firmware
- Uberoid for MK802 – rooted orig. FW0710B with some apks (no kernel or userspace mods)
- duke_srg’s universal firmware for all known versions MK802 based AllWinner A10 (download link)
- patches with overclocked linux kernels to 960MHz, 1008MHz, and 1056MHz – without a heatsink up to 1008Mhz, AnTuTu scores 2667@912MHz (before patched), 3205@1008MHz and 3350@1056MHz (after patched); see also howto overclock and patched kernels for the latest firmware 910
- Special firmware, kernels, and modules for AllWinner CM9 with configuration and description files for UpdateMe application
- DELANET TweakFix for MK802 v0.4 – several non-kernel patches for 910 firmware (howto)
- CM9/AOKP
- ChristianTroy’s CyanogenMod 9 for Allwinner A10 with compatibilities and AOKP for Allwinner A10 with compatibilities – mk802_legacy-compatibility_vX.zip for Android 4.0 needed (the legacy compatibility includes stock kernel with no additional modules, such as DVB-T, etc.)
- CM10
- ChristianTroy’s CyanogenMod 10 for Allwinner A10 with compatibilities – mk802_legacy-compatibility-jb_vX.zip for Android 4.1 needed (the legacy compatibility includes stock kernel with no additional modules, such as DVB-T, etc.)
- Shaun2029’s Unofficial CyanogenMod 10 (Android 4.1.2) – mk802_legacy-compatibility-jb_v5.zip for Android 4.1 needed (the legacy compatibility includes stock kernel with no additional modules, such as DVB-T, etc.), also it may require to reformat the internal SD card by
mkfs.exfat /dev/block/nandi
(in factory firmware, the SD card has partition table, i.e. there is already vfat partition/dev/block/nandi1
) - xplodwild’s CyanogenMod 10 Development – in progress, see GitHub repository
- Uhost U1a – very similar to and firmware only for MK802II (e.g. external mic. and 802.11bgn)
- U1A-404.000.10.* firmwares
- Tatubias Tweak for U1a
- Uhost U1s firmwares
- GNU/Linux
- Linaro distribution with PengPod repository – including accelerated XBMC, VLC, etc.
- Puppy
- Ubuntu
- MK802II Firmwares Gathered on One Place – so far “Android 4.1 Justop Android TV Box V2.0_REV2” seems to be the best one
- How to build Android OS for an embedded A10 device
Firmware
Information
- HW releases (need a specialised firmware)
- MK802 – 512Mb-1Gb, 2 chips, RTL8188CTV
- MK802+ – 1Gb, 4 chips, RTL8188CTV, Microphone
- MK802II – 1Gb/4 IC, RTL8188CUS, Power management IC
- MK802++ – 1Gb, 2 chips, Power management IC
- NAND partitions
- /dev/block/nanda – bootloader (vfat), known as bootfs before, includes boot.axf u-boot.bin etc.
- /dev/block/nandb – enviroment for u-boot
- /dev/block/nandc – boot (kernel+initrd)
- /dev/block/nandd – system, android real rootfs (ext4)
- /dev/block/nande – user data
- /dev/block/nandf – misc
- /dev/block/nandg – recovery (kernel+initrd)
- /dev/block/nandh – android app cache
- /dev/block/nandi – private data (exfat)
- /dev/block/nandj – img backup (MK802II only)
- /dev/block/nandk – udisk (MK802II only)
- Firmware versions – MK802 firmware compatibility (also discussed here)
Upgrade by firmware flashing
- download LiveSuitPack109eng (LiveSuit V1.09) which contains a flashing tool and x86&x64 USB drivers
- download firmware image file (*.img)
- proceed as follows
- press and hold MK802’s reset button (one of the holes near HDMI port)
- connect MK802 via OTG port to PC (still holding the reset button)
- wait while Windows will be looking for driver for the device (~5 seconds) and then, the reset button can be released
- open Windows Device Manager and select “Update driver” on the new “Unknown device”, ser LiveSuit’s folder when Windows starts looking for a suitable driver
- after the driver is installed, you can run LiveSuit (and read or skip emerging help)
- in LiveSuit, select the preffered firmware image (*.img file)
- disconnect and again connect the MK802 device
- flashing starts automatically, when the connected device is recognized (when its driver will be found)
- if error 0x162 will appear during the flashing (around 3%) proceed as follows
- download the image of CWM recovery firmware
- flash the image by means of LiveSuit (it should works for this image)
- connect the device to TV-set/monitor and in CWM perform “format data/factory reset” and power off the device
- now, the flashing of the device should work for any firmware image as usual (that is no 0x162 errors anymore)
Modification of firmware image
- howtos are availabe at XDA and MiniAnd
- the following software is needed
- a tool is able to pack/unpack Allwinner A10 images in the format as used by the Allwinner Livesuit software)
- Linux: awutils open-source toolset, to download use Git as
git clone https://github.com/Ithamar/awutils
- Windows: A10 flash kitchen v2 – the version for ICS, based on the ainol novo 7 soruce drop, but only contains the nescessary files, and has a few batch scripts to automate the process
- Linux: awutils open-source toolset, to download use Git as
- for extracting and building the partitions of the image
- a tool is able to pack/unpack Allwinner A10 images in the format as used by the Allwinner Livesuit software)
- to extract a firmware image
- unpack the firmware image from
original.img
file- Linux: execute awimage tool which will extract the content of the image into original.img.dump directory as
awimage -uv original.img
- Windows: put an image file as original.img into
a10_flash_kitchen_v2/packer_ics
directory as extract_image.bat in the flash kitchen and executeextract_image.bat
- Linux: execute awimage tool which will extract the content of the image into original.img.dump directory as
- directory
_extract
or*.dump
will contain the extracted files which areSYS_CONFIG*
– a command bunch for LiveSuite which tells the app how to flash, what to flash, where, and it configures the device too (screen size, ram info, cpu info, etc)BOOT0_*
andBOOT1_*
– NAND bootloadersFED_*
,FES_*
, andFET_*
– NAND flashing utilities, checksums, hardware scanner, and other tools used during flashing1234567890*
– bootloaders, config files, and tools for SDMMC flashing, if there’s a device with SDMMC internal instead of NAND, these are usedSPLIT_*
– some kind of ID stringRFSFAT16_BOOTLOADER_00000.fex
– the bootloader partition (vfat dump)RFSFAT16_BOOT_00000000000.fex
– the boot image (kernel + initrd)RFSFAT16_RECOVERY_0000000.fex
– the recovery image (kernel + initrd)RFSFAT16_SYSTEM_000000000.fex
– the system partition (ext4 sparse)
- extract
RFSFAT16_BOOTLOADER_00000.fex
by executingmkdir -p RFSFAT16_BOOTLOADER_00000; sudo mount -o loop RFSFAT16_BOOTLOADER_00000.img RFSFAT16_BOOTLOADER_00000
which mounts the vfat dump into./RFSFAT16_BOOTLOADER_00000
directory - extract
RFSFAT16_BOOT_00000000000.fex
by executingtools/split_bootimg.pl RFSFAT16_BOOT_00000000000.fex
which extracts the boot image intoRFSFAT16_BOOT_00000000000.fex-kernel
(kernel) andRFSFAT16_BOOT_00000000000.fex-ramdisk.gz
(initrd) imagesmkdir -p RFSFAT16_BOOT_00000000000 && cd RFSFAT16_BOOT_00000000000; gunzip -c ../RFSFAT16_BOOT_00000000000.fex-ramdisk.gz | cpio -i
which extracts the content of given initrd file intoRFSFAT16_BOOT_00000000000
directory
- extract
RFSFAT16_RECOVERY_0000000.fex
by executingtools/split_bootimg.pl RFSFAT16_RECOVERY_00000000000.fex
which extracts the recovery image intoRFSFAT16_RECOVERY_00000000000.fex-kernel
(kernel) andRFSFAT16_RECOVERY_00000000000.fex-ramdisk.gz
(initrd) imagesmkdir -p RFSFAT16_RECOVERY_00000000000 && cd RFSFAT16_RECOVERY_00000000000; gunzip -c ../RFSFAT16_RECOVERY_00000000000.fex-ramdisk.gz | cpio -i
which extracts the content of given initrd file intoRFSFAT16_RECOVERY_00000000000
directory
- extract
RFSFAT16_SYSTEM_000000000.fex
by executingtools/simg2img RFSFAT16_SYSTEM_000000000.fex RFSFAT16_SYSTEM_000000000.img
which creates an ext4 dumpmkdir -p RFSFAT16_SYSTEM_000000000; sudo mount -o loop RFSFAT16_SYSTEM_000000000.img RFSFAT16_SYSTEM_000000000
which mounts the ext4 dump into./RFSFAT16_SYSTEM_000000000
directory
- replace the original kernels (
boot.img-kernel
andrecovery.img-kernel
) with customised ones and modify extracted files and files in the mounted directories as you wish - get
bootloader.fex
by unmounting./RFSFAT16_BOOTLOADER_00000
directory and renamingRFSFAT16_BOOTLOADER_00000.fex
tobootloader.fex
- pack new
boot.fex
by executingtools/mkbootfs RFSFAT16_BOOT_00000000000 | gzip > boot.img-ramdisk.gz
which creates initrd filetools/mkbootimg --base 0x40000000 --kernel boot.img-kernel --ramdisk boot.img-ramdisk.gz --cmdline 'console=ttyS0,115200 rw init=/init loglevel=8' -o boot.fex
which packs the kernel and the initrd images intoboot.fex
file
- pack new
recovery.fex
by executingtools/mkbootfs RFSFAT16_BOOT_00000000000 | gzip > recovery.img-ramdisk.gz
which creates initrd filetools/mkbootimg --base 0x40000000 --kernel recovery.img-kernel --ramdisk recovery.img-ramdisk.gz --cmdline 'console=ttyS0,115200 rw init=/init loglevel=8' -o recovery.fex
which packs the kernel and the initrd images intorecovery.fex
file
- pack new
system.fex
by executingsudo tools/mkuserimg.sh -s ./RFSFAT16_SYSTEM_000000000 system.fex ext4 /tmp 300M
(the directory should be still mounted when executing the command) - pack the new firmware into output.img file
- Linux: ???
- Windows: use flas kitchen as follows
- move all new *.fex files into
a10_flash_kitchen_v2/packer_ics/_input
directory - open
a10_flash_kitchen_v2/packer_ics/files/image.cfg
file and comment lines withOEM
andVOEM
strings by preceeding semicolon (;) - in
a10_flash_kitchen_v2/packer_ics
directory executecreate_image.bat
to create the firmware image asoutput.img
file
- move all new *.fex files into
- unpack the firmware image from
Upgrade by means of CWM
- download the image of CWM recovery firmware
- flash the image into a device by means of LiveSuit (it should works for this image)
- download *.zip files with a system (e.g. CyanogenMod), a google apps compatible with the system, and a compatibility pack of factory drivers, put them into a SD card, and insert it into the device
- connect the device to TV-set/monitor and in CWM perform “format data/factory reset”
- in CWM install ZIP files from the SD card in order: the system, the google apps, and the compatibility pack; then reboot the device