Release Note of Android (v3.5)

Release Date Feb/21/2017 KST
Release Type Regular release
Release Files Self-installation Image (MD5SUM: 6f0d71c293350bf80602bfe62a8ec4ad)

File name : selfinstall-odroidc2-eng-s905_5.1.1_master-294-v3.5.img

Official Mirrors by mdrjr
In Germany

Notes for KODI on 4K/UHD display

  • Audio passthrough for both AC3 and DTS sources where every few seconds there's an audio dropout.

Workaround: Write the codec value to /sys/class/audiodsp/digital_codec sysfs file before executing the media player.


$ echo 2 > /sys/class/audiodsp/digital_codec


$ echo 3 > /sys/class/audiodsp/digital_codec

If there is no sound or frequent sound drop when using HDMI passthrough, then please reboot the system.

Self Installation

You can install the release to your MicroSD or eMMC with the tool dd in Linux or Etcher in Windows. Please refer this for more detail.

We've reported that some of users can not watch Android logo on their TV while installing even though installation is proceeded. So please wait for 5 minutes since power on and red and blue LED is on. If blue led is started blinking then installation is proceeding, ODROID-C2 will reboot when finished.

Upgrade Installation

Since Android release 2.0, we provide you update package which can upgrade your device without rewrite your SD card or eMMC. This package can be downloaded and upgrade on ODROID Utility.

  • Update server setting
    • You can set your own update server and path where you upload your custom update package. Ordinary users does not need to run this and change the detail, it is already set with Hardkernel's official download server for ODROID-C1/C2.
  • Check online update
    • This will start to check latest update from Hardkernel's official download server and start to download and install if new version is discovered. Your ODROID-C1/C2 device must be connected through the network.
  • Package install from storage
    • This will help you to install the official upgrade package downloaded manually or custom update package. You can store a update file to external storage and select it to install.

Fastboot Update

Your can update the release by fastboot if you have MicroSD or eMMC already Android installed. If you have USB-Serial kit, you can enter to Fastboot mode when you execute the command fastboot on U-boot command line. Or if you run execute reboot fastboot from Android shell command line, your ODROID-C2 will reboot and get into fastboot mode immediately. You can check if your ODROID-C2 is attached via USB with the command fastboot devices in your desktop.

$ sudo fastboot flash bootloader u-boot.bin
$ sudo fastboot flash dtb meson64_odroidc2.dtb
$ sudo fastboot flash boot kernel
$ sudo fastboot flash recovery recovery.img
$ sudo fastboot flash logo hardkernel-720.bmp
$ sudo fastboot flash system rootsystem.img
$ sudo fastboot flash cache cache.img
$ sudo fastboot reboot

You can checkout Android source tree, please refer this page for more detail. Please note, Android source tree is uploading and would be completed in 1-2 days.


$ mkdir odroid-c2
$ cd odroid-c2
$ repo init -u -b s905_5.1.1_master
$ repo sync
$ repo start s905_5.1.1_master --all

ODROID Utility

$ packages/apps/Utility
setenv dtbaddr 0x1000000
setenv loadaddr 0x20000000
# Resolution Configuration
# 'hdmimode' must be one of below to configure display resolution within
# supported by your TV or monitor.
#    Symbol             | Resolution
# ----------------------+-------------
#    "480p60hz"         | 720x480 Progressive 60Hz
#    "576p50hz"         | 720x576 Progressive 50Hz
#    "720p60hz"         | 1280x720 Progressive 60Hz
#    "720p50hz"         | 1280x720 Progressive 50Hz
#    "1080p60hz"        | 1920x1080 Progressive 60Hz
#    "1080p50hz"        | 1920x1080 Progressive 50Hz
#    "1080p30hz"        | 1920x1080 Progressive 30Hz
#    "1080p24hz"        | 1920x1080 Progressive 24Hz
#    "1080i60hz"        | 1920x1080 Interlaced 60Hz
#    "1080i50hz"        | 1920x1080 Interlaced 50Hz
#    "2160p60hz"        | 3840x2160 Progressive 60Hz
#    "2160p50hz"        | 3840x2160 Progressive 50Hz
#    "2160p30hz"        | 3840x2160 Progressive 30Hz
#    "2160p25hz"        | 3840x2160 Progressive 25Hz
#    "2160p24hz"        | 3840x2160 Progressive 24Hz
#    "2160p60hz420"     | 3840x2160 Progressive 60Hz YCbCr 4:2:0
#    "2160p50hz420"     | 3840x2160 Progressive 50Hz YCbCr 4:2:0
#    "640x480p60hz"     | 640x480 Progressive 60Hz
#    "800x480p60hz"     | 800x480 Progressive 60Hz
#    "800x600p60hz"     | 800x600 Progressive 60Hz
#    "1024x600p60hz"    | 1024x600 Progressive 60Hz
#    "1024x768p60hz"    | 1024x768 Progressive 60Hz
#    "1280x800p60hz"    | 1280x800 Progressive 60Hz
#    "1280x1024p60hz"   | 1280x1024 Progressive 60Hz
#    "1360x768p60hz"    | 1360x768 Progressive 60Hz
#    "1440x900p60hz"    | 1440x900 Progressive 60Hz
#    "1600x900p60hz"    | 1600x900 Progressive 60Hz
#    "1600x1200p60hz"   | 1600x1200 Progressive 60Hz
#    "1680x1050p60hz"   | 1680x1050 Progressive 60Hz
#    "1920x1200p60hz"   | 1920x1200 Progressive 60Hz
#    "2560x1080p60hz"   | 2560x1080 Progressive 60Hz
#    "2560x1440p60hz"   | 2560x1440 Progressive 60Hz
#    "2560x1600p60hz"   | 2560x1600 Progressive 60Hz
#    "3440x1440p60hz"   | 3440x1440 Progressive 60Hz
setenv hdmimode "1080p60hz"
setenv rootopt "root=/dev/mmcblk0p2 rw init=/init rootwait"
setenv consoleopt "console=ttyS0,115200"
setenv androidopt "androidboot.hardware=odroidc2 androidboot.serialno=${fbt_id#}"
setenv logoopt "osd1,loaded,${fb_addr},${hdmimode}"
setenv selinuxopt "androidboot.selinux=disabled"
# HDMI/DVI Mode Configuration
# This will enforce the signal type of display
# "hdmi" - For HDMI interface
# "dvi" - For DVI interface
setenv vout_mode "hdmi"
# Display Auto Detection
# "false" or "true"
setenv display_autodetect "true"
# HPD enable/disable option
setenv disablehpd "false"
# Overscan offset configuration
# All offsets are zero and can be tuned by manual or ODROID Utility
setenv overscan_top "0"
setenv overscan_left "0"
setenv overscan_bottom "0"
setenv overscan_right "0"
setenv led_onoff "on"
# max cpu frequency in dvfs table / in MHz unit
# setenv max_freq "2016"  # 2.016GHz
# setenv max_freq "1944"  # 1.944GHz
# setenv max_freq "1920"  # 1.920GHz
# setenv max_freq "1896"  # 1.896GHz
# setenv max_freq "1752"  # 1.752GHz
# setenv max_freq "1680"  # 1.680GHz
# setenv max_freq "1656"  # 1.656GHz
# setenv max_freq "1536"  # 1.536GHz
setenv max_freq "1536"
# max cpu-cores
# setenv maxcpus "1"
# setenv maxcpus "2"
# setenv maxcpus "3"
setenv maxcpus "4"
# disable vu7
setenv disable_vu7 "false"
# gpio power key : J2 (2x20) Pin#35, GPIOY.BIT3
#setenv gpiopower "214"
# usb timing tweak
setenv usbmulticam "false"
if test "${display_autodetect}" = "true"; then usb pwren; hdmitx edid; fi
if test "${hdmimode}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi
setenv bootargs "${rootopt} ${consoleopt} hdmimode=${hdmimode} ${cmode} hdmitx=${cecconfig} vout=${vout_mode} disablehpd=${disablehpd} logo=${logoopt} ${androidopt} ${selinuxopt} suspend_hdmiphy=${suspend_hdmiphy} led_onoff=${led_onoff} max_freq=${max_freq} maxcpus=${maxcpus} disable_vu7=${disable_vu7} usbmulticam=${usbmulticam}"
showlogo ${hdmimode}
#usb pwren
movi read dtb 0 ${dtbaddr}
# load kernel from vat or boot partition.
movi read boot 0 ${loadaddr}
#fatload mmc 0:1 ${loadaddr} Image
booti ${loadaddr} - ${dtbaddr}