FleaPhone CP-D02用のClockwork Mod RecoveryとGoogle Play

coviaのFleaPhone CP-D02用のCWM Recovery(Clockwork Mod Recovery)を作成しました。

(2013/05/27: CWMをアップデートしました)


2014/01/30追記
現状の最新firmwareでは、Google Playに標準対応しています。
(CP-D02のファームウェアアップデートのお知らせとお詫び(ver0904,2013/09/27),CP-D02のファームウェアアップデートのお知らせとお詫び(ver1127,2013/12/10))


いまんところ確実に動作させる手段は初期化必須です。
初期化をおこなうと、IMEIが消えるので、メモを忘れずに。

1. MTK Droid Root&Toolsでfirmwareバックアップを取得
手順は「FleaPhone CP-D02を含むMTK系Androidのfirmwareバックアップ」を参照のこと

また、MTK Droid Root & Toolsで表示されるIMEIの値もメモすること。
(MTK Droid Root & Toolsのスクリーンショットを撮っておくといいでしょう)

2. FleaPhone用に作成したCWM Recoveryをダウンロード
cwm-recovery-20130423.zip
cwm-recovery-20130527.zip

3. 上記zipを展開し、中の「cwm-recovery-20130527.img」を、1で取得したfirmwareバックアップのディレクトリに置く

4. /mnt/sdcard/に以下のファイルをコピーする
Google Playなどを含む「gapps-ics-20120429-signed.zip
Root取得用の「Superuser-3.1.3-arm-signed.zip」(AndroidSU.com Superuserより)
これらのファイルは、後ほど、CWM Recoveryで使います

5. SP Flash Toolを入手する
いろいろ入手先があるが、xda-developers:「[Tool]SP FlashTool ||MTK Android FLASHER」あたりから入手してください。
今のバージョンは「SP Flash Tool v3.1224.01」です。

6. MTK USB VCOMドライバを入手する
これも、xda-developers:「[TUT] Instructions MTK6577 USB VCOM Driver Installation」から
署名無しドライバなので、Windows8でインストールするのはいろいろめんどいのでお薦めはしない。

7. Android端末の電源を切る

8. Windowsのデバイスマネージャを起動する。

9. Android端末の電源を切ったままの状態でUSBをつなぐ

10. 一瞬だけMT65xx Preloaderというデバイスが認識されるので、それにUSB VCOMドライバを適用する
preloader
うまく行かないときは、USBをはずして、付け直せば再度認識される。
だいたい3秒ぐらいしか認識されていないので、とにかくがんばってください。

11. 認識したらUSBを外す

12. SP Flash Toolを起動する

13. 「Scatter-loading File」に1で取得したディレクトリにある「MT6577_Android_scatter_emmc.txt」を指定する

14. 「RECOVERY」のファイル名をクリックし、「cwm-recovery-20130423.img」を指定する

15. 「PRELOADER」と「DSP_BL」のチェックを外す
チェックを外したりする前にアプリが異常終了する場合は、1で取得したディレクトリ内のRELOADERとDSP_BLをリネームして別の名前にしてください。

16. 「Format」アイコンをクリックする

17. Android端末の電源切ったままUSBをつなぐ

18. しばらくすると「OK」が出る

19. USBを外す

20. 続いて「Download」アイコンをクリックする

21. Android端末の電源切ったままUSBをつなぐ

22. しばらくすると「OK」が出る

23. USBを外す

24. ボリュームの↑ボタンを押しながら電源を入れる
電源が入った後も↑ボタンは押したまま

25. Clockwork Mod Recoveryの画面に入る

26. 先ほどコピーしたzipファイルを2つインストールする
先ほど/mnt/sdcard/にコピーした「gapps-ics-20120429-signed.zip」と「Superuser-3.1.3-arm-signed.zip」をInstallする。

27. wipe data/cacheをおこなう

28. rebootする

29. 起動したらIMEI再設定をする
MTK系Android携帯でIMEIが消えた時の対処方法

手順としては、これで大丈夫だと思います。

ちなみに、ボリューム↓ボタンを押しながら電源ONすると、テストモードに入ります。

FleaPhone CP-D02はFOMAプラスエリアにちゃんと対応してるみたい

証拠画像とかがあるわけじゃないんですが、FleaPhone CP-D02は、ちゃんとFOMAプラスエリア対応みたいですね。

私は、東京から会津若松に行くのにあたり、良く会津鉄道ルートで行ってます。

会津鉄道~野岩鉄道の区間は、2100MHzのみ対応だとトンネル以外でも圏外が結構発生するのですが、
先週、FleaPhoneを使いながら乗ってみたところ、トンネル内およびトンネル連続地帯ぐらいしか、圏外になりませんでした。

このことから考えると、ちゃんとFOMAプラスエリアとして動作しているようですね。

FleaPhone CP-D02を含むMTK系Androidのfirmwareバックアップ

coviaのFleaPhone CP-D02などのMTKチップ採用のAndroidのfirmwareバックアップについてご紹介。

(2013/04/26追記:別記事として「Google Play導入記事」があります。合わせて参照ください。)

firmwareバックアップに際して、必要なこと
・adb接続できるWindowsパソコン
MTK Droid Root & Tools v2.4.3
・MTK Droid Root & Toolsでroot取得できること

なお、取得したfirmwareバックアップは、SP Flash Toolsで焼くことができます。

1. adb接続できるようにします。
FleaPhoneの場合は「FleaPhone CP-D02をadb接続して覗いてみる」を参照してください。
もちろんAndroid端末側では「USBデバッグ」を有効にします。

2. MTK Droid Root & Toolsを入手します。
ロシアの本家:Программа для рута, бэкапа и создания рекавери на MT65**
XDAの支店:[UTIL][WIN][MT65xx] MTK Droid Root & Tools | MediaTek Android Smartphone

3. MTK Droid Root & Toolsを実行します。
MTK-Droid-tool-11
最初は空欄が多いと思いますが、徐々に項目が埋まっていくかと思います。
MTK-Droid-tool-01a

ここで表示される「IMEI」の値は必ず記録しておいてください。
SP Flash Toolsでfirmwareを書き込むと、IMEIが消えてしまいますので、記録しておいた値を元に「MTK系Android携帯でIMEIが消えた時の対処方法」で書き込んでください。

ちなみに「Blocks Map」をクリックすると↓のようなものが表示されます。
MTK-Droid-tool-02
これは、まぁ、パーテーション構造みたいなものです。

4. 「root」ボタンを押して、root取得手順を開始します。
MTK-Droid-tool-12

5. Android端末側に↓の画面が出ます。
MTK-Droid-tool-13
「データの復元をする」を選択します。

6. しばらく待つと自動的にAndroid端末が再起動されます。

7. 再起動直後のAndroidロゴが↓のように化けますが、無視してください。
MTK-Droid-tool-15

8. Android端末側の再起動完了を待ちます。
完了した頃にはMTK Droid Root&Toolsは↓のように「Root」ボタンが消えていると思います。
MTK-Droid-tool-16

7. 「root,backup,recovery」タブをクリックします。
MTK-Droid-tool-17

8. 「Backup」ボタンを押すと、バックアップが開始されます。
MTK-Droid-tool-18a

9. そこそこ時間がかかります。

10. バックアップが終わると「Packing backup?」と聞かれます。
MTK-Droid-tool-19
「はい」を選ぶと、zipファイルを作成します。
「いいえ」で特に問題ありません。

11. 「task is complete」と右側に出たらバックアップ完了です。
MTK-Droid-tool-20a

12. Android端末を再起動して作業完了です。

ちなみに、私は、この手順、Windows8 64bit環境でやりました。
(なお、SP Flash Toolによる書き込みの方は、ドライバの兼ね合いでVista環境でやってます)

FleaPhone CP-D02にGoogle Playを導入してみた(速報)

coviaのFleaPhone CP-D02にGoogle Playを導入してみた。

(2013/04/26追記:CWM Recoveryを作成し、Google Play導入記事書きました。)


2014/01/30追記
現状の最新firmwareでは、Google Playに標準対応しています。
(CP-D02のファームウェアアップデートのお知らせとお詫び(ver0904,2013/09/27),CP-D02のファームウェアアップデートのお知らせとお詫び(ver1127,2013/12/10))


CWM Recoveryがまだ用意できていないので完全手動でやった。

とりあえずは、概要説明だけ

1. MtkDroidToolsを使ってrootの仮取得
2. MtkDroidToolsを使い、SP Flash Tools用フォーマットでのfirmwareバックアップ
3. root取得した状態で、http://goo.im/gapps から持ってきた gapps-ics-20120429-signed.zip の中身を/system以下に「適切に展開」
4. /dataパーテーションを初期化

そうすると↓にあるようにPlayストアをインストールした状態に持ってくことに成功。
device-2013-04-18-013908

途中で手順に失敗すると起動しなくなりますので、必ずfirmwareバックアップをとっておくこと。

いろんなツールへのリンクや手順詳細については、後ほど、きちんとまとめてから公開します。


2013/04/24追記
GooglePlayをインストールする為の手順、「FleaPhone CP-D02用のClockwork Mod Recovery」、を公開しました。

FleaPhone CP-D02をadb接続して覗いてみる

coviaのFleaPhone CP-D02の中身を見てみる。

パソコンにつなぐと認識されるのは「VID_0BB4&PID_0C03&REV_0255」というデバイス。
しばらく待つとCD-ROMとして以下が認識される。
cdrom
「Micro-USB_1.01.pdf」のみで、中身はmicroUSBコネクタの規格書・・・なぜに入ってる?
入れ間違いなんだろうか?

adb接続用のデバイスは以下のように未認識。
device

手動でドライバを適用する。

adb-01


adb-02


adb-04

これで、adb接続が可能になりました。

とりあえずdfをたたいてみる。

shell@android:/ $ df
df
Filesystem             Size   Used   Free   Blksize
/dev                   236M    52K   236M   4096
/mnt/asec              236M     0K   236M   4096
/mnt/obb               236M     0K   236M   4096
/system                502M   268M   234M   4096
/data                  502M    57M   445M   4096
/cache                 502M     8M   494M   4096
/mnt/cd-rom              1M     1M     0K   2048
/system/secro            4M     4M   792K   4096
/mnt/sdcard              3G   192K     3G   32768
/mnt/secure/asec: Permission denied
/mnt/sdcard2             2G    12K     2G   4096
shell@android:/ $ mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/emmc@android /system ext4 ro,noatime,user_xattr,commit=1,barrier=1,data=ordered,noauto_da_alloc 0 0
/emmc@usrdata /data ext4 rw,nosuid,nodev,noatime,user_xattr,barrier=1,data=ordered,noauto_da_alloc 0 0
/emmc@cache /cache ext4 rw,nosuid,nodev,noatime,user_xattr,barrier=1,data=ordered,noauto_da_alloc 0 0
/dev/block/loop0 /mnt/cd-rom iso9660 ro,relatime 0 0
/emmc@sec_ro /system/secro ext4 ro,relatime,user_xattr,barrier=1,data=ordered 00
/dev/block/vold/179:97 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:97 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
/dev/block/vold/179:6 /mnt/sdcard2 vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
shell@android:/ $

本体内部に/mnt/sdcard/相当があり、microSDスロットは「/mnt/sdcard2」として認識されるタイプでした。

とりあえず、/system/build.propを確認。

shell@android:/ $ cat /system/build.prop
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=IMM76D
ro.build.display.id=ALPS.ICS2.MP.V1.19
ro.build.version.incremental=eng.ser3.1364980065
ro.custom.build.version=1364980065
ro.build.version.sdk=15
ro.build.version.codename=REL
ro.build.version.release=4.0
ro.build.date=2013蟷エ 04譛・03譌・ 譏滓悄荳・17:20:31 CST
ro.build.date.utc=1364980831
ro.build.type=user
ro.build.user=ser3
ro.build.host=ser3System-Product-Name
ro.build.tags=test-keys
ro.product.model=covia_CP-D02
ro.product.brand=VOTO
ro.product.name=htt77_ics2
ro.product.device=htt77_ics2
ro.product.chivinproduct=covia_CP-D02
ro.product.chivinversion=0502G032_MH011S-T8100PM15E
ro.product.customversion=0502G032_20130403
ro.product.board=htt77_ics2
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=alps
ro.product.locale.language=ja
ro.product.locale.region=JP
ro.wifi.channels=
ro.board.platform=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=htt77_ics2
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=htt77_ics2-user 4.0 IMM76D eng.ser3.1364980065 test-keys
ro.build.fingerprint=HTT:4.0/IMM76D/1364980065:user/test-keys
ro.build.flavor=
ro.build.characteristics=default
# end build properties

# begin mediatek build properties
ro.mediatek.version.release=ALPS.ICS2.MP.V1.19
ro.mediatek.platform=MT6577
ro.mediatek.chip_ver=S01
ro.mediatek.version.branch=ALPS.ICS2.MP
# end mediatek build properties
#
# system.prop for generic sdk
#

rild.libpath=/system/lib/mtk-ril.so
rild.libargs=-d /dev/ttyC0


# MTK, Infinity, 20090720 {
wifi.interface=wlan0
# MTK, Infinity, 20090720 }

# MTK, mtk03034, 20101210 {
ro.mediatek.wlan.wsc=1
# MTK, mtk03034 20101210}
# MTK, mtk03034, 20110318 {
ro.mediatek.wlan.p2p=1
# MTK, mtk03034 20110318}

# MTK, mtk03034, 20101213 {
mediatek.wlan.ctia=0
# MTK, mtk03034 20101213}


# MTK, TeChien {
ro.media.enc.hprof.file.format=3gp
ro.media.enc.hprof.codec.vid=m4v
ro.media.enc.hprof.vid.width=720
ro.media.enc.hprof.vid.height=480
ro.media.enc.hprof.vid.fps=30
ro.media.enc.hprof.vid.bps=3400000
ro.media.enc.hprof.codec.aud=amrnb
ro.media.enc.hprof.aud.bps=12200
ro.media.enc.hprof.aud.ch=1
ro.media.enc.hprof.aud.hz=8000

ro.media.enc.mprof.file.format=3gp
ro.media.enc.mprof.codec.vid=m4v
ro.media.enc.mprof.vid.width=352
ro.media.enc.mprof.vid.height=288
ro.media.enc.mprof.vid.fps=30
ro.media.enc.mprof.vid.bps=990000
ro.media.enc.mprof.codec.aud=amrnb
ro.media.enc.mprof.aud.bps=12200
ro.media.enc.mprof.aud.ch=1
ro.media.enc.mprof.aud.hz=8000

ro.media.enc.lprof.file.format=3gp
ro.media.enc.lprof.codec.vid=h263
ro.media.enc.lprof.vid.width=176
ro.media.enc.lprof.vid.height=144
ro.media.enc.lprof.vid.fps=30
ro.media.enc.lprof.vid.bps=384000
ro.media.enc.lprof.codec.aud=amrnb
ro.media.enc.lprof.aud.bps=12200
ro.media.enc.lprof.aud.ch=1
ro.media.enc.lprof.aud.hz=8000
# MTK, TeChien }

#
wifi.tethering.interface=ap0
#

ro.opengles.version=131072

wifi.direct.interface=p2p0
dalvik.vm.heapgrowthlimit=64m
dalvik.vm.heapsize=128m


# Encrypt phone function
ro.crypto.tmpfs_options=mode=0771,uid=1000,gid=1000
ro.crypto.fs_type=ext4
ro.crypto.fs_real_blkdev=/emmc@usrdata
ro.crypto.fs_mnt_point=/data
ro.crypto.fs_options=noauto_da_alloc
ro.crypto.fs_flags=0x00000406

# USB MTP WHQL
ro.sys.usb.mtp.whql.enable=0

# Power off opt in IPO
sys.ipo.pwrdncap=2

ro.camera.sound.forced=1

ro.sys.usb.storage.type=mtp,mass_storage
#HTT liujihui {
ro.setupwizard.mode=DISABLED
ro.com.google.locationfeatures=1
ro.com.google.networklocation=1
persist.sys.timezone=Asia/Shanghai
#HTT liujihui }

#
# ADDITIONAL_BUILD_PROPERTIES
#
fmradio.driver.chip=1
ril.external.md=1
ro.sf.hwrotation=180
ril.current.share_modem=1
launcherplus.allappsgrid=2d
launcher2.allappsgrid=3d_20
curlockscreen=2
ro.mediatek.gemini_support=false
persist.radio.fd.counter=20
persist.radio.fd.off.counter=20
drm.service.enabled=true
fmradio.driver.enable=0
mediatek.wlan.chip=MT6620
mediatek.wlan.module.postfix=
dalvik.vm.mtk-stack-trace-file=/data/anr/mtk_traces.txt
ro.config.notification_sound=Tinkerbell.ogg
ro.config.alarm_alert=ring4.mp3
ro.config.ringtone=CaribbeanIce.ogg
ro.config.sound_fx_volume=-10
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
shell@android:/ $

MediaTek端末でおなじみの「MAUI」表記。

suは入っていないが、busyboxはインストール済み。

shell@android:/ $ busybox
BusyBox v1.13.2 (2009-02-19 10:46:27 CST) multi-call binary
Copyright (C) 1998-2008 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: function [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as!

Currently defined functions:
        [, [[, addgroup, adduser, adjtimex, ar, arp, arping, ash,
        awk, basename, blkid, brctl, bunzip2, bzcat, bzip2, cal,
        cat, catv, chat, chattr, chgrp, chmod, chown, chpasswd,
        chpst, chroot, chrt, chvt, cksum, clear, cmp, comm, cp,
        cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc,
        dd, deallocvt, delgroup, deluser, depmod, devmem, df, dhcprelay,
        diff, dirname, dmesg, dnsd, dos2unix, du, dumpkmap, dumpleases,
        echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake,
        expand, expr, fakeidentd, false, fbset, fbsplash, fdflush,
        fdformat, fdisk, fgrep, find, findfs, fold, free, freeramdisk,
        fsck, fsck.minix, ftpget, ftpput, fuser, getopt, getty,
        grep, gunzip, gzip, halt, hd, hdparm, head, hexdump, hostid,
        hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifenslave,
        ifup, inetd, init, insmod, install, ip, ipaddr, ipcalc,
        ipcrm, ipcs, iplink, iproute, iprule, iptunnel, kbd_mode,
        kill, killall, killall5, klogd, last, length, less, linux32,
        linux64, linuxrc, ln, loadfont, loadkmap, logger, login,
        logname, logread, losetup, lpd, lpq, lpr, ls, lsattr, lsmod,
        lzmacat, makedevs, makemime, man, md5sum, mdev, mesg, microcom,
        mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp, modprobe,
        more, mount, mountpoint, msh, mt, mv, nameif, nc, netstat,
        nice, nmeter, nohup, nslookup, od, openvt, passwd, patch,
        pgrep, pidof, ping, ping6, pipe_progress, pivot_root, pkill,
        popmaildir, poweroff, printenv, printf, ps, pscan, pwd,
        raidautorun, rdate, rdev, readahead, readlink, readprofile,
        realpath, reboot, reformime, renice, reset, resize, rm,
        rmdir, rmmod, route, rtcwake, run-parts, runlevel, runsv,
        runsvdir, rx, script, sed, sendmail, seq, setarch, setconsole,
        setfont, setkeycodes, setlogcons, setsid, setuidgid, sh,
        sha1sum, showkey, slattach, sleep, softlimit, sort, split,
        start-stop-daemon, stat, strings, stty, su, sulogin, sum,
        sv, svlogd, swapoff, swapon, switch_root, sync, sysctl,
        syslogd, tac, tail, tar, tcpsvd, tee, telnet, telnetd, test,
        tftp, tftpd, time, top, touch, tr, traceroute, true, tty,
        ttysize, udhcpc, udhcpd, udpsvd, umount, uname, uncompress,
        unexpand, uniq, unix2dos, unlzma, unzip, uptime, usleep,
        uudecode, uuencode, vconfig, vi, vlock, watch, watchdog,
        wc, wget, which, who, whoami, xargs, yes, zcat, zcip

shell@android:/ $

/system/appや、/system/frameworkは odex済み。

covia関連のソフトに「T8100」という名前があったが、どういう意味があるのか?
T8100_CoviaPadOTA.apk
T8100_FleaCallRegistration.apk
T8100_FleacallSetting.apk
T8100_fleacall.apk

build.propにある「htt77_ics2」で検索すると「[DEVICE][MT6577] HDC Galaxy S III Plus I9300 / alps htt77_ics2」というのが出てくるが、元機種というわけでもないようだ。
まぁ、要調査、というところ。