Release Note of Android (v1.7)


Release Date Jan/13/2015 (TBD)
Release Type Regular release
Release Files update.zip (MD5SUM:cf5accb5bed55323de96d88deb3fe0a8)

1. Fix the multi-user mode implementation.

Mount a tmpfs as /storage in order to create a mountpoint, so that Dalvik can later mark /storage as slave in zygotes. Must use tmpfs as rootfs can't be bind mounted (otherwise “mount rootfs /storage /storage bind” would work as an alternative).

Zygote: Restrict slave mountspace so Dalvik apps can mount system-wide volumes

Android 4.2 implements multi-user storage using per-process mount namespaces.
Originally, everything under “/” (the entire filesystem hierarchy) is marked as a recursive-slave mountspace for all zygote instances.
This is done so that user-storage sandbox mounts under /storage/emulated are hidden from other apps and users.
Unfortunately this means that any Dalvik app (actually, any program whose clone/fork ancestry includes a Dalvik zygote, which is everything except services spawned directly from init) cannot mount system-wide volumes.
Thus, apps like CifsManager are effectively broken in Android 4.2, since its cifs mounts are only visible to the CifsManager app itself. All other apps see empty mountpoints instead of the mounted volume.
Furthermore, Linux provides no provision for a process to “escape” a recursive-slave mountspace in versions prior to Linux 3.8 (setns syscall).
Here, we restrict the slave mountspace to /storage (and, due to a possible kernel bug, /mnt/shell/emulated) so that Dalvik apps can mount system-wide volumes elsewhere (with appropriate permission, as in earlier versions of Android), while retaining full multi-user storage compatibility.
This change requires that a tmpfs volume is mounted as /storage in init.rc.
If this volume is unavailable, then Zygote falls back to the previous behavior of marking the entire filesystem hierarchy as slave.
It also implicitly requires that EMULATED_STORAGE_TARGET is path-prefixed by (part of the subhierarchy of) ANDROID_STORAGE, which is the typical case.

2. “edid” default value is changed to 0 in the boot.ini file.

3. Fix the camera initialization issue.

4. Enable the Android Boot animation once you add a line “bootanim.delay=20” in the /build.prop

$ su
# mount -o rw,remount /system
# vi /build.prop
bootanim.delay=20

1. Microphone input on the earphone jack doesn't work.

2. The boot-animation is not correctly working in the portrait mode

$ repo init -u https://github.com/hardkernel/android.git -b 5422_4.4.4_master -m manifeset-5422_4.4.4_v1.7
$ repo sync
$ repo start 5422_4.4.4_master --all

Linux Kernel

We've merged the Kernel source into the Android reop. Android build-script also includes the Kernel compile.

Android Source

$ ./build.sh odroidxu3 platform

NO-EDID 1080P

boot.ini
ODROIDXU-UBOOT-CONFIG
 
setenv fb_x_res "1920"
setenv fb_y_res "1080"
 
setenv vout "hdmi"
 
setenv left     "56"
setenv right    "24"
setenv upper    "3"
setenv lower    "3"
setenv hsync    "14"
setenv vsync    "3"
 
 
setenv hdmi_phy_res "1080p60hz"
 
setenv edid "0"
 
setenv led_blink        "1"
 
setenv bootcmd      "movi read kernel 0 40008000;bootz 40008000"
 
setenv bootargs     "fb_x_res=${fb_x_res} fb_y_res=${fb_y_res} vout=${vout} hdmi_phy_res=${hdmi_phy_res} edid=${edid} left=${left} right=${right} upper=${upper} lower=${lower} vsync=${vsync} hsync=${hsync} led_blink=${led_blink}"
boot

EDID 1080P

boot.ini
ODROIDXU-UBOOT-CONFIG
 
setenv fb_x_res "1920"
setenv fb_y_res "1080"
 
setenv vout "hdmi"
 
setenv left     "56"
setenv right    "24"
setenv upper    "3"
setenv lower    "3"
setenv hsync    "14"
setenv vsync    "3"
 
 
setenv hdmi_phy_res "1080p60hz"
 
setenv edid "1"
 
setenv led_blink        "1"
 
setenv bootcmd      "movi read kernel 0 40008000;bootz 40008000"
 
setenv bootargs     "fb_x_res=${fb_x_res} fb_y_res=${fb_y_res} vout=${vout} hdmi_phy_res=${hdmi_phy_res} edid=${edid} left=${left} right=${right} upper=${upper} lower=${lower} vsync=${vsync} hsync=${hsync} led_blink=${led_blink}"
boot