DO NOT PAY FOR JAILBREAK YOUR DEVICE!

最近、『NTTドコモのSIMカードでLTEを使えるようにする』『ソフトバンクやKDDIで月額を払わなくてもテザリングができるように』などのフレーズで『CommCenter* patch』や各種キャリアバンドルをインストールする代行業者があるようで、たいへん多くの「どのような関係性があるのか」「無償で提供しているように見せかけてカネを取るのか」「いくら儲かるのか」といった問い合わせを受けています。

これらの悪質な業者と我々は、いっさい関係がありません。Jailbreakは無償で提供されるべきものであり、これを商用利用すべきものでもありません。 [続きを読む »]


2010年5月20日木曜日

Motorola Milestone

WXGAのAndroid端末が増えてきて、QVGAのHTC Magicでは動作検証環境として手狭になってきたので、モダンAndroid OSでの動作検証用としてAndroid端末売れ行きNo.1『DROID』のW-CDMA版『Milestone』を買いました。

Motorola Milestone

DROID/Milestoneは、iPhoneとほぼ同じサイズ(長辺が5mmほど長く、逆に短辺は5mmほど短い、厚みは3G/3GSとほぼ同じ)の筐体に3.7インチ480x854ピクセルのWXGA液晶とシートキーによるスライド式QWERTYキーボードを搭載した、Motorolaの意欲作です。

割と〝尖った〟仕様の端末なので、日本にも個人輸入して利用しているアーリーアダプタの方々がそこそこ見受けられます。先人の方々の記録のおかげで使用感のレビューや環境構築に関する情報源は豊富なのですが、Nexus OneやDesireなどのHTC端末ほど入手性がいいわけでもないため、最近の環境へのフォローアップが日本語文献では存在しないようなので、そういった点を中心にまとめます。

以下の記事では、(さすがにこの端末をAndroid初心者が購入するとも思えないため)Android OSの基礎的な知識があり、Android OS SDKがPCへ導入済みであることを前提にしています。また、Motorolaが一部ツールをWindows向けにしか提供していないため、Windows XP以降が動作する環境が必要となる部分があります。

また、筆者が所有するものよりもあとに出荷された端末ではBootloaderやビルドが異なる可能性があり、さらに別の(もしかしたらまったく異なる)手順が必要な場合があります。

* 2010年3月以降(?)出荷モデルの相違点

MilestoneはAndroid OSが2.0(Eclair)のころにリリースされた端末ですが、購入した筐体には既に最新版であるAndroid OS 2.1-update1が導入されていました(ちなみに今後、Android OS 2.2(Floyo)へのアップデートも予告されています)。Bootloaderは、『RSD Lite』上で〝9078〟と表記されているため、90.78と思われます。

本体に〝0102〟(2010年2月?)、バッテリーに〝20100328〟(2010年3月28日?)とそれぞれ製造日のようなタグがあるので、おそらく3月以降出荷モデルなのだと思われます。ビルド番号は〝SHOLS_U2_02.31.0〟となっています。

ビルド番号が〝SHOLS_U2_01.15.0〟以降の端末は、これまでの手法ではいわゆる〝rooted〟にすることができません(脆弱性が修正されています)。また、Bootloaderが〝90.78〟以降の端末は、Recovery Modeに入るための操作が〝Camera + Power〟から〝X + Power〟に変更されています(Recovery Modeでメニューを出すためのキーは、Camera + Volume upで変更なし)。つまり、最近出荷された端末ではこれまでの手法でrootedにすることが出来ません。

また、SHOLS_U2_02.31.0~SHLA_U2_03.05.0の端末には、アラームが設定時刻から10分ほど遅れる不具合があるようです。

その他の最新の不具合情報は、『ModMyMoto』のMilestoneフォーラムによくまとまっていますので、上記に該当しないようなパターンを見かけたらこちらもチェックしてみるといいでしょう。 http://modmymoto.com/forums/showthread.php?t=531385

* SIMカードについて

MilestoneはSIMフリー端末のため、日本国内ではW-CDMA 2100MHz帯を採用するNTTドコモおよびソフトバンクモバイルの3Gサービスで使用することができます。NTTドコモの『FOMAプラスエリア』は800/1700MHz帯に対応していないため利用できず、同じく1700MHz帯のイーモバイルも対応していません(auはCDMA 2000のため、通信方式が異なります)。

NTTドコモのデータ回線に関しては電波測定方式が独自のため、データ契約のSIMカードを挿した場合、常に圏外表示となります。データ回線のMVNOであるウィルコム『CORE 3G』や日本通信『b-mobile 3G/SIM/doccica』なども同様です。

なお、これらのSIMカードがAndroid OS 1.5以降で認識されない場合、そのビルドのATコマンドが一部異なっていることが原因のため、システムファイルを書き換えることで対応できることがあります。コムギドットネットさんのエントリ http://komugi.net/archives/2010/05/03182013.php などが参考になるかもしれません。個人的には、こういったSIMカードは『Huawei E5830』や『b-mobileWiFi』などの3G-WiFiルーターに挿して使用したほうが手軽に運用できると思います。

筆者は、ソフトバンクモバイルの3Gプリペイドサービス『プリモバイル』のSIMカードを挿して利用しています。データ通信に関しては、日本通信『b-mobileSIM』を『Huawei E5830』に挿してのWi-Fi経由が主な手段です。

* 日本語圏での使用について

Milestoneの販売は基本的に欧州圏を中心とした展開のため、デフォルトの状態では日本語に関しては表示のみしか対応していません。日本語を入力するためにはAndroid Marketから『OpenWnn/Flick』(FlickWnn)を導入することで、ユーザーインタフェースを日本語にするためには同じく『More Locale 2』を導入することで、それぞれ解消されます。

なお、日本語IMは他にも『Simeji』や『OpenWnnPlus』などがありますが、これらはキーボードからの入力に完全対応していません。FlickWnnに限り、Shift+Spaceで日本語と英数モードを切り替えることができ、Spaceで変換候補を選択することができます。

Milestoneのシステムフォントは、デフォルトではDroidSansFallback.ttfですが、このUnicodeフォントは日本語領域が国際化された字形のために、大半の人にとっては違和感が強いと思われます。日本国内で発売されているAndroid端末と同じ、DroidSansJapanese.ttfを /system/fonts/ へ追加することで、フォントの違和感は解消されるでしょう。この作業のためには、rootedである必要があります。


$ su
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
# cd /system/fonts
# cp /sdcard/DroidSansJapanese.ttf /system/fonts/
# mount -o ro,remount -t yaffs2 /dev/block/mtdblock3 /system
# reboot

* 〝rooted〟について

Android OSでの〝rooted〟とは、本来ではプログラムをユーザー権限でしか動作させないよう制限されているAndroid OSのポリシーを書き換えて、superuser(≒管理者)権限でプログラムを動作できるように変更することを指します。

これを行うと、Android Marketで配布されているプログラムのうち、superuser権限を要求するものを動作させられるようになり、デフォルトでは(権限不足によって)無効化されているシステム領域の書き換えが可能となります。

基本的には、rootedにしたことによって既存のプログラムが動作しなくなるなどの不具合は原理的に起こらないはずですが、無保証です。想定範囲外の利用方法であるため、メーカーの保証などはなくなると考えてください。このあたりの扱いは、iPhone OSにおける〝Jailbreak〟と同様と考えるといいでしょう。

* Bootloaderのダウングレード

rootedにしたい場合、まずはBootloaderを〝SHOLS_U2_01.14.0〟相当の〝90.78〟へダウングレードさせます。この書き換え作業のためには、Motorolaが提供するWindows用ツール『RSD Lite』が必要となります。

http://modmymoto.com/forums/showthread.php?t=530112

* 『Open Recovery』によるroot権限奪取

『Open Recovery』は、Recovery Mode自体を書き換えて高機能化するものです。HTC端末における『Hard-SPL』のようなものと考えると近いと思います。Open Recoveryにrootedにするための〝Root Phone〟メニューが存在するため、Recovery Modeから(これまでの手法より簡単に)root奪取を行うことができます。

http://www.modmymoto.com/forums/showthread.php?t=531599

* 購入したアクセサリ・周辺機器など

日本国内ではほとんど入手できないMilestoneのアクセサリや周辺機器ですが、いくつかのベンダーが国内にもこれらを供給しています。また、AmazonやeBayなどから入手する手段もあります。

筆者は液晶保護シートとしてピーワーク『スーパーミラープロテクター』 http://www.pwork.com/ を、USB Mini B端子からMicro-USB端子への変換アダプタとしてミヤビックス『Micro-USB変換アダプタ(mini USB Bタイプ 通信・充電切替スイッチ付き)』を購入しました。液晶保護シートはミヤビックス『Overlay Plus』が好みですが、Milestone用は残念ながらタイミング悪く品切れしていました。

* SHOLS_U2_02.34.3 について

香港・マカオ地域で販売された端末に対して、5月下旬くらいからOTAで上記バージョンのアップデートが順次配信されるようです。筆者の端末には6月上旬にダウンロード通知が表示されました。

Milestone SHOLS_U2_02.34.3

このアップデートは、どうやらアラームの遅延問題と繁体中文におけるフォントの問題を解消するもののようですが(原文によれば…… 開機核心:亞洲繁中(已解決鬧鐘遲響問題) ……とある)、適用するといわゆる〝unroot〟の状態に戻されます。

参考: http://www.mobile01.com/topicdetail.php?f=567&t=1567132&p=1

アラームの遅延問題に関してはすでに解決策(SHOLS_U_03.10.0のカーネルに入れ替える; 参考: http://rapidshare.com/files/378277372/2.1-03.10.0-kernel-only.rar)が提示されていますので、このファームウェアを適用しないという選択肢がいちばんですが、適用してしまった場合は以下のようにして再びrootedにすることができます。

re-rooted

最初に、rootを奪取するための update.zip をmicroSDカードに用意します。以前に使用した〝Open Recovery〟を使用してもいいですし、よくある milestone_root.zip などをリネームしたものでも構いません。

参考: http://modmymobile.com/forums/401-motorola-milestone/530112-new-sbf-flash-only-rootable-recovery.html

上記ファイルの配置が終わったらmicroSDカードを挿してMilestoneを起動し、PCからRSD Liteを使用して vulnerable_recovery_only_RAMDLD90_78.sbf などをflashします。このflash作業が終了して端末が再起動したら、Motorolaロゴが出る前にXキーを押し続けてRecovery Modeに入ります。Volume up + Cameraキーでメニューを表示して update.zip を適用します。適用が完了したら端末を再起動してください。起動したら、rootedになっています。

とてもトリッキーな手法ですが、どうやらこのバージョンからは通常の手法でRecovery Modeを起動した場合に update.zip のチェックサムや署名の正当性を検証するルーチンが変わったようで、単純に(野良ビルドの) update.zip を適用しようとしてもエラーを吐いて終了してしまいます。どうやら、上記のようにflashを行った直後の起動ではRecovery Modeの動きが違って、このチェックが省略されるようです。このため、今までのように update.zip を適用することが可能、ということのようです。

なお、上記手順でRAMDLD90_78なファイルを例に挙げたのは、単に適用自体がすぐに完了して再起動に至るまでが短いからで、原理的には他のファイルでも構いません。

0 件のコメント:

コメントを投稿