EPC VIA WM8650(開梱・所感)2011/06/02 12:02

激安が話題になった9,800円のAndroidノート「EPC VIA WM8650」を入手した。
aPad専門SHOPの通販で予約して、購入。中華端末の品質を考えると、いろいろ不安要素もあるし、店頭での購入ならその場で動作確認も可能だけど通販では無理って事もあって、ニコニコ制度(保証)も利用したため、結構高い買物になってしまった。まぁ、香港界隈にでもよく行く人なら、現地で買えば5千円ちょっとで買えるらしいから、そういう所で買うって選択肢もあるんだろうな…。

お店の方から、メールで入荷の連絡と購入意思の再確認があって、すぐ送って欲しい旨、メールで返信するが、なぜか電話での確認があってやっと発送された。
5/22(日)に届いて、早速、開梱。購入したのは「赤」だ。この色を選んだのは、オモチャ感が一番強そうだったからだ。黒や白だと、普通のミニノートとかに見えてしまい、注目されない。赤とか緑とか、そういう色の方が絶対に面白い!
外箱は、中華なおねえちゃんが壁紙になってWindowsCEが動作している写真が印刷されて、大きく「EPC」とだけ書かれたシンプルなものだ。

epc01

中身は、いかにもオモチャって感じの安っぽいプラスチックの筐体の本体。

epc02

それから、ACアダプタと薄っぺらい説明書だけだ。
この説明書、「Minibook User Manual EPC VIA WM8650 6.98”」と書かれていて
中身はWindowsCEの説明になっていた。

epc03

説明書がWindowsCEだったので、一抹の不安がよぎるが、ACアダプタを繋いで起動
してみると、ちゃんとAndroid2.2が立ち上がった。あぁ、赤の筐体は外側だけで、
内側はこんな平凡な色だ。そうそう、もうひとつ。液晶画面には保護用のシート
が貼られている。剥すためのタブがアセンブル(組み立て工程)時に、中に入り込ん
でしまっている(その辺が中華品質な訳だけど)ので、そのまま剥すことが出来ない
が、ガムテープ等の粘着性の強いテープを隅に貼って、引き剥がせば良い。この
保護シートには、薄っすらと三角マークが印刷されているので、貼ったままだと
邪魔なのだ! 液晶画面自体は、ノングレアで発色も良い。

epc04

ACアダプタは、DC出力が9V 1,500mAのものだ。PSEマークは付いていないので、
利用は自己責任で安全に注意して…ってところだろう。コンセントに差し込む時、
初期の突入電流が大きく、プラグとの間に火花が飛ぶので、電源ラインにノイズが
乗ると困る場合(古いオーディオ機器とかは、モロに影響を受けて、再生音にノイ
ズが乗っちゃう)、注意が必要だ。

epc05

本体の右側面には、USB-Aのポートが2口ある。左側面には、SDカードスロット、
ヘッドホン端子、マイク端子。背面は、USB-Aのポート、LAN端子、電源端子。
有線のLANが使えるのはUNIX系サーバーのメンテナンスとかには都合が良いかも
しれない。

epc06

epc07

epc08

キーボードは、こんな感じだ。WindowsCEで使用するのが前提でキー配置されてい
る感じなので、Androidで使うには、ちょっと不便かもしれない。その辺は、追っ
て調べて行こう。タッチパッドは静電式らしい。ペンとかで突いても反応しない。

epc09

底面は、こんな感じだ。バッテリー部分は、ビス留めされた蓋が付いている。

epc10

底面の銘板の表記にメーカー名は一切ない。

epc11

バッテリーカバーを外してみた。バッテリーは、1,800mAh 7.4Vで、平型2セルの
リチウムイオンバッテリーだ。2線で本体に繋がっているので、充電時の温度管理
はできない(T端子がない)。充電は、涼しいところで行い、異様な発熱があったら
すぐに充電を止める等の注意は必要だろう。この手のバッテリーパックは、秋葉原
界隈なら、電子部品を扱っている店で転がっていそうなので、機会があったら探し
てみようと思う。

epc12

epc13

購入直後のホーム画面は、こんな感じだ。「App Market」があるので、期待したん
だが、これはかなり機能制限されたものみたいで、欲しいと思うアプリを検索して
も、全然ヒットしなかった。「File Browzer」は、結構使える。こいつで、SDカー
ドにいれた、apkファイルを指定すればアプリがインストールできる。野良アプリ
なら、ガンガン入れちゃう事ができる。特筆すべきは、画面キャプチャーのアプリ
が入っている点だ。画面右上の通知領域部分で時刻表示の隣に目の形のアイコン
がある。これをクリックすれば画面をキャプチャーできる。なかなか便利だ。

epc14

そうそう、ロケールは日本にセットされていた。でも、フォントは中華フォント。
フォントはいろいろ気になるので、別途対策が必要だ。そのためにもroot奪取が
必須なのだが、これが、非常に大変だった。

EPC VIA WM8650(root奪取編)「rootを狙え!」2011/06/02 13:26

Android端末なら、やっぱり、rootを取って、あれこれ自由にいぢりたいよね。
Android2.2系なら、SuperOneClick で一発OK。そう思っていたが、大問題が発覚。SuperOneClick って、PC(Windows)からUSB接続してrootを奪取するものだ。ところが、このEPCは、3つもあるUSBポートのすべてが、USB-Aタイプで、かつ、マスターモード(ホスト)で動作する。PCと接続するには、スレーブモードにならないとダメだ。これでは、PCと接続できない。古いAndroidなら、z4root という便利なアプリがあって、Android端末本体だけで簡単にルートが取れたんだが、z4rootが利用しているセキュリティーホールは、既にふさがれているらしく、z4root はもう使えない。他にroot取りのツールを探すも、使えそうなものは発見できず。
rootへの道は完全に絶たれた。

でも、rootは何としても取りたいよね。そこで、調べまくって、1週間も掛かってしまったが、糸口を発見。そして、牙城を崩せた。

非常に厄介な問題だったが、SuperOneClickで、どうやってrootを取るのかを調べてみると糸口があった。psneuterというファイルをAndroid端末に転送して、Android端末上で実行してrootを取っているようだ。psneuterであれこれ検索してみたら、参考になる情報が出てきた。

NexusOneにUbuntuを
[HOWTO] Root Nexus One 2.2.1 FRG83D without OEM unlock

psneuterは、adb(Android端末のアプリ開発で使用するデバッガー)の脆弱性を利用しているようだ。psneuterによりadbの脆弱性を突いて、一時的にrootを取るらしい。つまり、rootを取れても、adbで接続された先(つまり、デバック用で繋いでいるPC)から操作しないと何もできないって訳だ。やはり、USB経由で繋げないとダメなのか…

更に調べてみると、adbはネットワーク越しでも接続できるようだ。
ここの情報が参考になる。

SmartQ5 Android 開発Tips 1 (デバッグ方法)

なかなか奥深い。これらを参考にさせていただき、EPC のrootを取ってみる。

1. 必要なものを集める
  準備は、PC(Windows)上で行う。先ず、SuperOneClick を入手して、必要なものを取り出そう。

    [APP]SuperOneClick v1.9.1

  ここから、SuperOneClickv1.9.1-ShortFuse.zip をダウンロードする。ちなみに、xdaからのダウンロードには登録(無料)が必要なので、未登録なら、登録の作業はしておこう!
  このZIPファイルを解凍すると、その中に以下のファイルがある。

    Exploits\psneuter
    Root\Superuser.apk
    Root\su-v3

  もうひとつ、必要なものがある。Android端末上であれこれコマンドを実行するので、端末エミュレーターが必須となる。以下から入手しておこう。

    Android Terminal Emulator v1.0.29 apk
 
  ここから、ダウンロードすると、Term.apk が手に入る。

  SDカードを用意する。これらの4つのファイルをSDカードのルートフォルダーにコピーする。su-v3は、名前をsuに変更しておこう。これで、SDカードには以下の4つのファイルが入った。

    psneuter
    Superuser.apk
    su
    Term.apk

  上記以外に、PCからEPCへネットワーク越しにデバッグモードで接続する為に、adbも必要となる。Android SDK(開発環境)のインストールが必要になるところだが、利用したいのはadbだけだ。実は、先ほど入手した SuperOneClickv1.9.1-ShortFuse.zip の中にも adb が入っているので、それを使用すればよい。

    ADB\adb.exe

  これは、後ほど使用する。

2. EPC VIA WM8650での準備
  上記のSDカードをEPCにセットする。上部の通知領域に「SDカードの準備中」とかメッセージが出てから、消えるまで待つ。それから、以下の手順で操作。

・端末エミュレータのインストール
  ホーム画面にある「File Browser」を起動する。カーソルキーで選択してからEnterキーを押せば起動できるので、タッチパッドを操作しなくても起動可能だ。「File Browser」が起動したら。右カーソルキーで「SD」を選択してEnterでSDカードの内容を表示させる。カーソルキーで、「Term.apk」を選択してEnterを押せば、インストールが始まる。確認の画面が出るので、「インストール」を選んでEnter。「アプリケーションをインストールしました」が表示されたら、「完了」で一旦終了させる。「File Browser」の画面に戻るので、Escキーで終了させる。

・端末エミュレータの設定
  インストールしたままだと、フォントが小さかったり、画面の色が見にくかったりするので、端末エミュレータの設定を少し変更しておこう。
  ホーム画面右下隅の小さい四角が4×4並んでいるアイコンでアプリケーション一覧を表示させて、そこから「端末エミュレータ」を起動する。コンソール画面に切り替わるので、キーボードの「Zzz」キーを押してメニューを表示させて、設定で設定メニューを表示させよう。ここに、フォントサイズや色があるので、好みに合わせて設定する。設定が済んだら「Esc」キーでコンソール画面に戻ろう。
  端末エミュレータは、「exit」と入力してから「Esc」キーで終了できる。

・ネットワークへの接続とIPアドレスの確認
  自宅で無線LANを導入しているなら、ホーム画面の「Wi-Fi設定」から接続の設定をして、接続する。
  有線のLANで接続するのでもOK。PCと同じネットワークに繋いでおく。
  ここで、IPアドレスを確認する。端末エミュレータを起動して、以下のコマンドを実行する(「$ 」はプロンプトなので、「ifconfig」だけキーイン) 。

    $ ifconfig

  ここで表示される情報で、Link encap が Ethernet となっている方に表示されているinet addrの値(例: 192.168.12.34)をメモしておく。端末エミュレータは一旦、終了させる。

・ホーム画面の「設定」から、以下の2つにチェックを入れておく。
    「USB」→「ADB]
    「アプリケーション」→「開発」→「USBデバッグ」

  準備はここまで。

3.root取り
  以下は、PC(Windows)上から作業する。

・コマンドプロンプトを開く
  スタートメニューの「すべてのプログラム」の「アクセサリ」の所に「コマンド プロンプト」があるので、それを起動する。

・adbのあるフォルダーへ移動
  cdコマンドで、SuperOneClickv1.9.1-ShortFuse.zipを解凍したフォルダーへ移動する。さらに、そこのADBフォルダーに移動する。

・以下のコマンドを実行
  以下のコマンドで、EPC のadbサーバーに繋いで起動する。

    set ADBHOST=<先ほど調べたIPアドレス>
    adb kill-server
    adb start-server

  実行例: (「~>」部分はプロンプトなので、実行環境に合わせた表示になる)
    ~>set ADBHOST=192.168.12.34
    ~>adb kill-server
    ~>adb start-server
    * daemon not running. starting it now on port xxxx *
    * daemon started successfully *

    ~>

  上記の例の様に、「* daemon started successfully *」が表示されれば、OKだ。

・一時的なroot取り
  続いて、以下の手順でEPC に入りこんで、一時的にrootを取る。先ず、以下のコマンドでEPCに接続する。

    adb shell

  接続できると、「$ 」のプロンプトが表示される(「# 」と出るかもしれないが気にせず、そのまま続けよう)。これで、EPC をコマンド操作できるようになる(この時点では、まだrootにはなっていない)。ちなみに、EPC では、既にbusyboxが入っているので、いろいろコマンドが使える。
  ここからroot取りに入る! 以下のコマンドを順番に実行(「$ 」はプロンプトなので、入力しない事)。

    $ cd /tmp
    $ cp /sdcard/psneuter ./
    $ chmod 755 psneuter
    $ ./psneuter

  ここで、以下のメッセージが出て(出ない場合もある)、adbの接続が切れる。
  Windowsのコマンドプロンプト側に戻ってきて、「~>」なプロンプトが表示される。

    property service neutered.
    killing adbd. (should restart in a second or two)

    ~>

  ちょっと待ってから、以下のコマンドで、もう一度つなぎなおす。

    adb kill-server
    adb start-server
    adb shell

  今度は、「# 」のプロンプトが表示されるはずだ。そこで、rootが取れたかを以下のコマンドで確認する。

    # id

  以下の表示になればrootが取れている。

    uid=0(root) gid=0

  これ以外の表示になったら失敗しているので、初めからやり直し。

・恒久的にrootを取れるようにする
  suコマンドで、恒久的にrootを取れるように、suコマンドをセットする。以下の順に、コマンドを実行。

    # cd /sbin
    # cp /sdcard/su ./
    # chmod 4755 /sbin/su
    # exit

  これで、Windowsのコマンドプロンプト側に戻ってきて、「~>」なプロンプトが表示されたら、PC側からの作業は終了。

  ここからは、EPC で作業する。

・Superuserのインストール。
  Superuserは、rootの権限を管理するアプリだ。ホーム画面にある「File Browser」を起動して、「SD」を選択してEnterでSDカードの内容を表示させる。カーソルキーで、「Superuser.apk」を選択してEnterを押し、インストール。

・rootが取れているか確認
  一度、EPCの電源を落とす。電源ボタン長押しで、「電源を切る」を選んで、完全に電源を落とす。それから電源を入れ直して、再起動させる。
  起動したら、「端末エミュレータ」を起動。suコマンドを実行してみる。

    $ su

  ここで、Superuserのアプリが動いて、Superuserアクセスの許可を求めてくるので、「許可」する。「端末エミュレータ」の画面に戻って、プロンプトが「# 」に変わっていれば、root取りの確認完了だ。とりあえず、exitコマンドを2度実行して、「端末エミュレータ」を終了させておこう。

    # exit
    $ exit

・後始末
  本来、psneuterは一時的なroot取りしかできないはずだが、EPC では、本体を再起動しても、adbがroot取り状態のままになってしまう。このままでは、公衆ワイヤレスLANとかで接続した場合に、セキュリティーホールになってしまう。「設定」から、以下のチェックを外して、外部から操作されないようにしておくこと。

    「USB」→「ADB]
    「アプリケーション」→「開発」→「USBデバッグ」

  これで、root取り完了なので、後は、正規のマーケットを入れるなり、フォントを入れ替えて、中華フォントとさよならするなり、なんでも自由にできる!!
  その辺は、改めて書く予定だ。


EPC VIA WM8650(マーケット導入編・暫定版)2011/06/03 10:22

※ ちょっと忙しいので、整理できてないけど、暫定公開。

rootも取れたので、ちゃんとしたマーケットを入れる。

最新っぽいマーケットが、ここにあったので、そこからダウンロード。
New Working Market 2.2.7 (apk attached)

ここから、com.android.vending-2.apk を入手。それから、
これのファイル名を「Vending.apk」に変更して、SDカードのルートフォルダーに
コピーする。
端末エミュレーターを起動して、以下のコマンドを実行。

$ su
# cd /system/app
# cp /sdcard/Vending.apk ./
# chmod 644 Vending.apk
# exit
$ exit

リブートして、マーケットを起動してみる。
あれ、一瞬、画面が真っ白になって、すぐ戻ってきちゃう ;_;

ダメだ、何か致命的に足りないんだろうか? 以下にヒントがあった。

Android SDKを使おう

やはり不足するものがあるようで、以下のものを補う必要があるみたい(これら、
3つがすべて必要なのかどうかは不明だけど)。
ここにファイルがあるので、使わせてもらう。

GoogleServicesFramework.apk
MarketUpdater.apk
Development.apk

マーケット本体だけは、com.android.vending-2.apkの方が新しいので、それを
Vending.apkとして使えばよいだろう。これは、既にコピー済みなので、上記の3つ
のファイルもSDカードのルートフォルダーに入れて、EPC VIA WM8650側に持って来
て、端末エミュレーターから、以下のコマンドでコピーしよう。

$ su
# cd /system/app
# cp /sdcard/GoogleServicesFramework.apk ./
# chmod 644 GoogleServicesFramework.apk
# cp /sdcard/MarketUpdater.apk ./
# chmod 644 MarketUpdater.apk
# cp /sdcard/Development.apk ./
# chmod 644 Development.apk
# exit
$ exit

リブートして、マーケットを起動してみる。ちなみに、リブートは、端末エミュレ
ーターから、以下のコマンドでも行える。

$ su
# reboot

上記の作業中なら、exitせずに、rebootコマンドを実行しちゃえば良い。

さて、マーケットを起動してみよう。を! 今度は起動した。Google Accountを作る
か聞いてくる。Nextで、Create(新規)かSign in(既存のアカウントを使う)を選択
するようになっているので、適宜、設定しよう。マーケット利用規約が表示される
ので、「同意する」を選択すれば、やっとマーケットが使えるようになった。