Modify the Android source code to work with MTP.
Android 4.1.2
Android Base source
http://dn.odroid.com/4412/Android/4.1.2_Jan-27-2014/BSP/
Last patch
http://dn.odroid.com/4412/Android/4.1.2_Mar-26-2014/BSP/
Download odroidu.zip
https://www.dropbox.com/s/lc981iwno5kth7a/odroidu.zip
unzip and overwrite device/hardkernel/odroidu/ folder
and edit package/app/Utility because MTP android is changed vfat path.
$ svn diff packages/apps/Utility/
Index: packages/apps/Utility/src/com/hardkernel/odroid/MainActivity.java
===================================================================
--- packages/apps/Utility/src/com/hardkernel/odroid/MainActivity.java (리비전 2163)
+++ packages/apps/Utility/src/com/hardkernel/odroid/MainActivity.java (작업 사본)
@@ -20,6 +20,7 @@
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
+import android.os.Environment;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
@@ -44,7 +45,7 @@
public final static String MIN_FREQ_NODE = "/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq";
//private final static String BOOT_INI = "/storage/sdcard1/boot.ini"; //"/mnt/sdcard/boot.ini";
- private final static String BOOT_INI = "/mnt/sdcard/boot.ini";
+ private String BOOT_INI = "/mnt/sdcard/boot.ini";
public int mCurrentMaxFreq;
public int mCurrentMinFreq;
@@ -371,6 +372,14 @@
tv.setVisibility(View.GONE);
}
+ File sdcard1 = new File("/storage/sdcard1");
+ if (sdcard1.exists()) {
+ Log.e(TAG, "MTP");
+ BOOT_INI = "/storage/sdcard1/boot.ini";
+ } else {
+ Log.e(TAG, "Mass Storage");
+ }
+
File boot_ini = new File(BOOT_INI);
if (boot_ini.exists()) {
try {
build android for MTP instead of Mass storage.
prepare android rootfs(system.img) for MTP and Ubuntu.
or download
system.img
https://drive.google.com/file/d/0B5aZmgmqP9rONjkzbGV2WlpiczQ/edit?usp=sharing
https://www.dropbox.com/s/z875qglex71qh3c/system.img
backup rootfs of Ubuntu.
$ mkdir boot
$ sudo cp -a /media/codewalker/BOOT/* boot/
$ mkdir rootfs
$ sudo cp -a /media/codewalker/rootfs/* rootfs/
edit rootfs/usr/local/sbin/odroid-config
mmcblk0p2 -> mmcblk0p3
40 do_expand_rootfs() {
41
42 p2_start=`fdisk -l /dev/mmcblk0 | grep mmcblk0p3 | awk '{print $2}'`
43 fdisk /dev/mmcblk0 <<EOF
44 p
45 d
46 3
47 n
48 p
49 3
50 $p2_start
51
52 p
53 w
54 EOF
55 ASK_TO_REBOOT=1
56
57 # now set up an init.d script
58 cat <<\EOF > /etc/init.d/resize2fs_once &&
...
71
72 case "$1" in
73 start)
74 log_daemon_msg "Starting resize2fs_once" &&
75 resize2fs /dev/ mmcblk0p3 &&
76 rm /etc/init.d/resize2fs_once &&
77 update-rc.d resize2fs_once remove &&
78 log_end_msg $?
79 ;;
80 *)
81 echo "Usage: $0 start" >&2
82 exit 3
check u-boot date.
You must use u-boot at least Jan 12 2014 than later.
http://dn.odroid.com/4412/Android/4.1.2_Feb-12-2014/
OK
U-Boot 2010.12-svn (Jan 27 2014 - 15:07:10) for Exynox4412
CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9]
APLL = 1000MHz, MPLL = 880MHz
DRAM: 2 GiB
PMIC VERSION : 0x00, CHIP REV : 3
TrustZone Enabled BSP
BL1 version: 20121128
Checking Boot Mode ... EMMC4.41
REVISION: 2.0
Manufacturer TOSHIBA [ 7456MB ]
NAME: S5P_MSHC4
MMC Device 0: 7456 MB
MMC Device 1: 0 MB
MMC Device 2 not found
*** Warning - using default environment
USB3503 NINT = OUTPUT LOW!
ModeKey Check... run normal_boot
No ethernet found.
Hit any key to stop autoboot: 0
Exynos4412 #
make new partition table for dual booting.
entry u-boot prompt.
fdisk -c [boot device:0] [system] [userdata] [cache] [vfat]
Exynos4412 # fdisk -c 0 512 -1 128 300
Count: 10000
NAME: S5P_MSHC4
fdisk is completed
partion # size(MB) block start # block count partition_Id
1 306 1462846 626934 0x0C
2 517 134343 1059817 0x83
3 6362 2089780 13031271 0x83
4 131 1194160 268686 0x83
Exynos4412 #
mount eMMC or SD on PC and format.
$ sudo fdisk -l
Disk /dev/sdX: 7818 MB, 7818182656 bytes
253 heads, 59 sectors/track, 1022 cylinders, total 15269888 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdX1 1462846 2089779 313467 c W95 FAT32 (LBA)
/dev/sdX2 134343 1194159 529908+ 83 Linux
/dev/sdX3 2089780 15121050 6515635+ 83 Linux
/dev/sdX4 1194160 1462845 134343 83 Linux
Partition table entries are not in disk order
[~]$ sudo mkfs.vfat /dev/sdX1
mkfs.vfat 3.0.16 (01 Mar 2013)
[~]$ sudo mkfs.ext4 /dev/sdX2
mke2fs 1.42.8 (20-Jun-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
...
[~]$ sudo mkfs.ext4 /dev/sdX3
mke2fs 1.42.8 (20-Jun-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
...
[~]$ sudo mkfs.ext4 /dev/sdX4
mke2fs 1.42.8 (20-Jun-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
...
check your partition on gparted.
copy Ubuntu files.
boot -> /dev/sdX1 (fat)
rootfs -> /dev/sdX3 (ext4 userdata partition)
replace current UUID to default UUID.
cat /media/codewalker/5145-2E60/boot.scr
1 '^E^YVOÚ<9f>7R}->^@^@^A<^@^@^@^@^@^@^@^@^E^?ß9^E^B^F^@boot.scr for X with HDMI auto-pr^@^@^A4^@^@^@^@setenv initrd_high "0xffffffff"
2 setenv fdt_high "0xffffffff"
3 setenv bootcmd "fatload mmc 0:1 0x40008000 zImage; fatload mmc 0:1 0x42000000 uInitrd; bootm 0x40008000 0x42000000"
4 setenv bootargs "console=tty1 console=ttySAC1,115200n8 root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro mem=2047M"
5 boot
$ sudo tune2fs /dev/sdX3 -U e139ce78-9841-40fe-8823-96a304a09859
tune2fs 1.42.8 (20-Jun-2013)
entry u-boot and stop u-boot prompt.
#fastboot
write system.img via fastboot.
$ fastboot flash system system.img
$ fastboot reboot
ODROID-U3 is booted Ubuntu.
run configure
Expand Filesystem and configure HDMI.
open terminal.
Ubuntu -> Android
root@odroid:~# su
root@odroid:~# cd /media/boot/
root@odroid:/media/boot# mv boot.scr boot.scr.ubuntu
android booting
and run Utility app and make boot.ini.
Android -> Ubuntu
root@android:/ # cd /storage/sdcard1/
root@android:/storage/sdcard1 # mv boot.ini boot.ini.android
root@android:/storage/sdcard1 # mv boot.scr.ubuntu boot.scr
open terminal.
Ubuntu -> Android
root@odroid:~# cd /media/boot/
root@odroid:/media/boot# mv boot.scr boot.scr.ubuntu
root@odroid:/media/boot# mv boot.ini.android boot.ini
VIDEO