Release Note of Android (v3.6)


Release Date Nov/05/2018 KST
Release Type Regular release
Release Files Self-installation Image (MD5SUM: d32656a4f815008eb001ebfab4840c1a)

File name : selfinstall-odroidc2-eng-s905_5.1.1_master-311-v3.6.img

Official Mirrors by mdrjr
In US
http://www.odroid.in/mirror/dn.odroid.com/S905/Android/ODROID-C2
In Germany
http://de.eu.odroid.in/?directory=.%2Fmirror%2Fdn.odroid.com%2FS905%2FAndroid%2FODROID-C2%2F

/* SAMSUNG HDMI capacitive Screen */
#define USB_VENDOR_ID_SAMSUNG_2619	0x2619
#define USB_DEVICE_ID_LH65DMEXTBC	0x5620

/* SAMSUNG HDMI capacitive Screen */
#define USB_VENDOR_ID_SAMSUNG_04E8	0x04E8
#define USB_DEVICE_ID_LH55PMFXTBC	0x20A6

/* Planar PS5562T HDMI capacitive Screen */
#define USB_VENDOR_ID_PLANAR_2309	0x2309
#define USB_DEVICE_ID_PLANAR_PS5562T_TOUCH	0x1005

/* CJTouch HDMI capacitive Screen */
#define USB_VENDOR_ID_CJTOUCH	0x24b8
#define USB_DEVICE_ID_CCA_UL01_DM	0x0001
  • Added a few requested USB-Multitouch VID/PID. Forum Thread
/* NEC HDMI capacitive Screen */
#define USB_VENDOR_ID_NEC_1926  0x1926
#define USB_DEVICE_ID_V652_TM   0x036A
/* NEWHAVEN DISPLAY capacitive Screen */
#define USB_VENDOR_ID_NHD      0x0461
#define USB_DEVICE_ID_NHD_7_0_HDMI_N_RSXN_CTU  0x0022
/* WAVESHARE HDMI capacitive Screen */
#define USB_VENDOR_ID_BYQDTECH    0x0483
#define USB_DEVICE_ID_BYQDTECH_7  0x5750

/* SHARP HDMI capacitive Screen */
#define USB_VENDOR_ID_SHARP    0x04dd
#define USB_DEVICE_ID_SHARP_TSLV238    0x991c
  • Reduced disconnection problem with Wifi #3.
  • Added test_mt_v[p]id boot arg(Hexadecimal string) to test USB Multitouch device without Kernel building.
  1. Run “adb shell” and edit boot.ini.
  2. Or mount eMMC or SD card on your Desktop Computer and edit boot.ini in fat partition.
vi /internal/boot.ini
setenv test_mt_vid "1f2b"
setenv test_mt_pid "000a"
  • Adding a workaround to the 'mediaserver' to handle deadlock case that a video playing is requested when the current video player instance is not properly released yet.

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.

AC3

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

DTS

$ 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.

Android

$ mkdir odroid-c2
$ cd odroid-c2
$ repo init -u https://github.com/hardkernel/android.git -b s905_5.1.1_master
$ repo sync
$ repo start s905_5.1.1_master --all

ODROID Utility

$ packages/apps/Utility
boot.ini
ODROIDC2-UBOOT-CONFIG
 
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
# ----------------------+-------------
#    "480x320p60hz"     | 480x320 Progressive 60Hz
#    "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"
suspend_hdmiphy=0
 
# Force HDMI to use RGB colorspace regardless of TV request
setenv hdmi_forcergb "0"      # Disabled
# setenv hdmi_forcergb "1"        # Enabled
 
# 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"
 
# invert touch screen x,y
setenv touch_invert_x "false"
setenv touch_invert_y "false"
 
# gpio power key : J2 (2x20) Pin#35, GPIOY.BIT3
#setenv gpiopower "214"
 
# usb timing tweak
setenv usbmulticam "false"
 
setenv hdmitx "hdmitx=${cecconfig}"
if test "${hdmi_forcergb}" = "1"; then setenv hdmitx "hdmitx=forcergb"; fi
 
if test "${display_autodetect}" = "true"; then usb pwren; hdmitx edid; fi
if test "${hdmimode}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi
 
# Enable backlight_pwm
# disable : backlight "no"
# ODROID-VU5/7 : backlight "yes"
# ODROID-VU8 : backlight "invert"
setenv backlight_pwm "no"
 
setenv test_mt_vid "0000"
setenv test_mt_pid "0000"
 
showddrclk
 
setenv bootargs "${rootopt} ${consoleopt} hdmimode=${hdmimode} ${cmode} ${hdmitx} 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} touch_invert_x=${touch_invert_x} touch_invert_y=${touch_invert_y} usbmulticam=${usbmulticam} gpiopower=${gpiopower} backlight_pwm=${backlight_pwm} ddrclock=${ddrclock} test_mt_pid=${test_mt_pid} test_mt_vid=${test_mt_vid}"
 
save
 
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_android
booti ${loadaddr} - ${dtbaddr}