手元の HTC One (M7_UL) を完全に Google Play Edition にする

f:id:espresso3389:20141126001024j:plain

今更なんですが、手元の HTC One (M7_UL) を Google Play Edition にしてみようと思いました。
というのも、そろそろ、 Android 5.0 (Lollipop) の OTA が来るらしいので、今、GPEにしておけば、直ぐにアップデートできるんじゃなかろうかという思惑もあるからです。

何か、既に Google からストップがかかっているらしく、少し遅れているらしいですけど・・・。

基本的には、下記の記事に従っています:

とりあえず、ここでは、 Android SDK とか adb については説明しません。適当にインストールしてパスが通っていることが前提です。

S-OFF する

完全に Google Play Edition のふりをするためにはいろいろと弄らないといけないんですが、これには S-OFF (Security Offかな?)しないといけません。

adb が繋がっていれば(そして繋がっている Android デバイスが1台だけならば: 誤爆とか防ぐためにも作業対象の Android 端末以外は全部、外しておくべきです)、

C:\work>adb reboot-bootloader

とやれば、 HTC One がブートローダーモードで起動します。ここで、ボリュームキーで、 FASTBOOT を選択して、電源ボタンでモード変更します。

で、ここで、 fastboot というコマンドが使えるようになるはずです。
試しに、次の様に打ってみましょう:

C:\work>fastboot getvar modelid
modelid: PN0710000
finished. total time: 0.004s

なんですが、 Windows 8/8.1 だと反応がない状態になると思います。そういう人は、

を参考にして頑張ってください。

あとは、 revone とか moonshine とか rumrunner とかをダウンロードしてきて、実行すれば、ほぼ自動でS-OFFできますので頑張ってください。


modelid を書き換える

さて、既に最初の記事の内容を無視しますが、ここで提供されている ROM (RUU-HTC_One_GE-2.14.1700.15.zip っていうファイル)が PN0712000 という modelid を前提にしています。
僕の持っている M7_UL だと、PN0710000 なので、最初に modelid を PN0712000 に書き換えないといけません。これには次の記事を参考にします。


PL83IMG.zip をダウンロードする

最初に下記のファイルをダウンロードします。
このファイルは、 modelid を書き換えるための一時的なROMとなります。


PL83IMG.zip を展開して、 android-info.txt を書き換える

PL83IMG.zip を展開すると、中に、android-info.txt というテキストファイルがあるのですが、コレの中の、 modelid, cidnum, mainver を現在の環境に合わせて修正します。

これら(modelid, cidnum, mainver)の値は、それぞれ、 fastboot getvar で取得します:

C:\work>fastboot getvar modelid
modelid: PN0710000
finished. total time: 0.004s
C:\work>fastboot oem readcid
...
(bootloader) cid: HTC__001
OKAY [  0.013s]
finished. total time: 0.013s
C:\work> fastboot getvar mainver
mainver: 2.24.401.8
finished. total time: 0.003s

僕の場合は、 modelid=PN0710000, cidnum=HTC__001, mainver=2.24.401.8 でした。
なので、 android-info.txt を

modelid: PN0710000
cidnum: HTC__001
mainver: 2.24.401.8
btype:1
aareport:1
hbootpreupdate:12

のように書き換えます(改行コードはLFであることに注意)。そして、そのまま、android-info.txt, HBOOT.nb0 を圧縮して、ZIPを作り直します。ここでは、 PN0710000.zip という名前にしました(zipの名前は何でも良い)。

rebootRUU

ROM 書き換えモードに切り替えます。

C:\work>fastboot oem rebootRUU
...
(bootloader) Start Verify: 0
OKAY [  0.047s]
finished. total time: 0.049s

切り替えが終わると、 HTC のロゴの画面になります。

f:id:espresso3389:20141125222450j:plain

ROM 書き換え

さっき作ったファイルで ROM を書き換えます:

C:\work>fastboot flash zip PN0710000.zip
sending 'zip' (475 KB)...
OKAY [  0.246s]
writing 'zip'...
(bootloader) zip header checking...
(bootloader) zip info parsing...
(bootloader) checking model ID...
(bootloader) checking custom ID...
(bootloader) start image[hboot] unzipping & flushing...
(bootloader) [RUU]UZ,hboot,0
(bootloader) [RUU]UZ,hboot,43
(bootloader) [RUU]UZ,hboot,99
(bootloader) [RUU]UZ,hboot,100
(bootloader) [RUU]WP,hboot,0
(bootloader) [RUU]WP,hboot,100
(bootloader) ...... Successful
OKAY [  2.227s]
finished. total time: 2.477s

一度リブート

書き込んだ ROM を有効にするために、一度、再起動します。

C:\work>fastboot reboot-bootloader
rebooting into bootloader...
OKAY [  0.036s]
finished. total time: 0.038s

再起動後の画面がバグってないっていうと嘘ってぐらい恐ろしいことになるけど、気にしなくて良いです。

f:id:espresso3389:20141125224054j:plain

modelid の書き換え

恐ろしい画面のままでも、 fastboot は使えるはずなので、
ここで、 modelid を書き換えます。

C:\work>fastboot oem writemid PN0712000
...
(bootloader) Start Verify: 0
OKAY [  0.079s]
finished. total time: 0.080s

念のためにチェック:

C:\work>fastboot getvar modelid
modelid: PN0712000
finished. total time: 0.004s

マジで modelid が書き換わってる。

cid の書き換え

同じように cid も書き換えます。

C:\work>fastboot oem writecid GOOGL001
...
(bootloader) Start Verify: 0
OKAY [  0.018s]
finished. total time: 0.019s

こっちも念のためにチェック:

C:\work>fastboot getvar cid
cid: GOOGL001
finished. total time: 0.004s

Google Play Edition の ROM を焼く

これでやっと書き換えたい先の ROM に書き換えられます。
Google Play Edition事態の ROM は下記からダウンロードできます:

https://mega.co.nz/#!3cwxzAoR!cNNlvVTqzO1wTnmZLytV2mIHtrtOOFXGMyMQjH-KsIo

でこれを fastboot flash zip で書き込みます:

C:\work>fastboot flash zip RUU-HTC_One_GE-2.14.1700.15.zip
sending 'zip' (467625 KB)...
OKAY [ 17.247s]
writing 'zip'...
(bootloader) zip header checking...
(bootloader) zip info parsing...
(bootloader) checking model ID...
(bootloader) start image[hboot] unzipping for pre-update check...
(bootloader) start image[hboot] flushing...
(bootloader) ...... Successful
FAILED (remote: hboot pre-update! please flush image again immediately)
finished. total time: 18.321s

ここですかさず、もう一度、同じコマンドを実行!

C:\work>fastboot flash zip RUU-HTC_One_GE-2.14.1700.15.zip
target reported max download size of 1526722560 bytes
sending 'zip' (467625 KB)...
OKAY [ 19.929s]
writing 'zip'...
(bootloader) zip header checking...
(bootloader) zip info parsing...
(bootloader) checking model ID...
(bootloader) checking custom ID...
(bootloader) start image[adsp] unzipping & flushing...
.....<省略>....
(bootloader) [RUU]WP,radio,100
(bootloader) ...... Successful
OKAY [181.350s]
finished. total time: 201.282s

あとは、デバイス側にブートローダーの画面が出てくるので、 REBOOT を選んで再起動すればうまく行くんじゃないでしょうか。

f:id:espresso3389:20141125224941j:plain

おしまい!あとは、何度もOTAで降ってくるアップデートをこなすだけの簡単な作業です。

2度目のコマンド入力が間に合わないと・・・・

画面が真っ暗になって・・・・何にも反応がなくなります・・・・・うきゃー
じゃなくて、とりあえず、電源とボリューム下長押しで再起動させます。

そうすると、 HBOOT の画面が表示されますので、ここで、 実機の画面で、FASTBOOT を選択して、 fastboot モードに切り替えます。

そうして、もう一度、ROM 書き換えモードに切り替えます。

C:\work>fastboot oem rebootRUU
...
(bootloader) Start Verify: 0
OKAY [  0.047s]
finished. total time: 0.049s

今度こそって気持ちで、 ROM のアップデート:

C:\work>fastboot flash zip RUU-HTC_One_GE-2.14.1700.15.zip

でどうにかなります。テレビとか見ながらやってるとビックリすることになります(自分)。

Intel Edisonで遊ぶ

全然まとまっていません。
自分用の作業履歴的な状態です。

一言で言うと、この大きさでメモリ1GB、x86 Linuxが動いて、Wi-Fi, Bluetoothも使える。
gcc/g++も動くよんという。遅いけど、いろんな物をセルフビルドも出来る。

f:id:espresso3389:20141101014648j:plain

最初の起動

8 J16 をUSBで接続

Edisonに給電する。J21とか、J2でも給電できるが、今回は、マスストレージでマウントしたいので、いずれにしてもJ16を接続する。

8 J3 をUSBで接続する

Windows 8.1だと、シリアルのドライバは自動インストールされる。

Edison に接続

putty とか、 poderosa とか、あるいは、 TeraTerm などお好きな物でどうぞ。
COMポートとかあんまり使ってないマシンの場合は、COM3になってることが多いようです。(デバイスマネージャで、 USB Serial Port という名前のポートを探してください)
注意点としては、接続スピードを、 115200 にすることだけ。他のパラメータは弄る必要なし。

[Enter]を何回か叩いたらログイン画面が出るので、 root でログイン、初期状態ならパスワードなしのはず。

configure_edison --help でいろいろと分かる。

usage: configure_edison [-h] [--server]
                        [[--setup | --name | --password | --wifi]
                        [--showWiFiIP | --version | --latest-version | --upgrade | --disableOneTimeSetup | --enableOneTimeSetup | --flash <version> [<release name> ...]
                        | --showNames]

optional arguments:
  -h, --help            show this help message and exit
  --server              Starts the server (testing only)
  --setup               Goes through changing the device name, password, and
                        wifi options
  --name                Changes the device name
  --password            Changes the device password
  --wifi                Changes the wifi options
  --showWiFiIP          IP address associated with the wireless interface
  --version             Gets the current firmware version
  --latest-version      Gets the latest firmware version
  --upgrade             Downloads the latest firmware
  --disableOneTimeSetup
                        Disable one-time setup and WiFi access point
  --enableOneTimeSetup  Enable one-time setup and WiFi access point
  --flash <version> [<release name> ...]
                        Downloads and flashes an image
  --showNames           Show device name and SSID

ログイン出来たら、 マシン名とか、Wi-Fiを設定しよう。

configure_edison --setup

これで、ネットワーク越しにsshできるようになる。Edisonでは、mdns(Bonjour/Zero Configuration)が動いているようで、
名前を、 hogehoge にしたら、

slogin root@hogehoge.local

で接続できるようになるはず。

opkg

Edisonは、opkgでパッケージ管理をしていて、install/update/upgradeといったコマンドで簡単にパッケージをインストールしたりできる。
ただ、標準状態では、いろいろと困るので、参照するリポジトリを設定する。

http://nonnoise.github.io/Edison/#id5

が参考にはなりますが、結論だけ書くと、/etc/opkg/下に、

base-feeds.conf:

src/gz all http://repo.opkg.net/edison/repo/all
src/gz edison http://repo.opkg.net/edison/repo/edison
src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32

intel-iotdk.conf:

src intel-iotdk http://iotdk.intel.com/repos/1.1/intelgalactic
src intel-all     http://iotdk.intel.com/repos/1.1/iotdk/all
src intel-quark   http://iotdk.intel.com/repos/1.1/iotdk/quark
src intel-i586    http://iotdk.intel.com/repos/1.1/iotdk/i586
src intel-x86     http://iotdk.intel.com/repos/1.1/iotdk/x86

みたいな感じで*.confファイルを作成して、その中に参照するURLを記述していけばOK。
これをやった後に、

opkg update
opkg upgrade

とすると、いろいろとアップグレードされる。
欲しいパッケージをインストールするときには、

opkg list

とかで利用できるパッケージ一覧を眺めてから、

opkg install bash

などとやれば良い。

Edisonのファームというかシステムを最新にする

僕のEdisonは、最初、 edison-weekly_build_56_2014-08-20_15-54-05 だったんですが、新しいファームウェアだと、

configure_edison --upgrade

でもアップグレードできそうです。

configure_edison 自体が古くて出来ない場合は

https://communities.intel.com/docs/DOC-23192

に書いてある方法でアップグレードできます。いろいろと書いてあるけど、やることは簡単:

Edison Yocto complete image をダウンロードする

https://communities.intel.com/docs/DOC-23242

ここから、 Edison Yocto complete image をダウンロード。 zipを展開して、Edisonのストレージ上に展開する。ストレージの直下にそのままファイル群が展開されるようにする。

f:id:espresso3389:20141102071455j:plain
※画像は上記サイトからの引用です

そして、ターミナルから次の様に入力する。

reboot ota

これで、OTAモードでリブートする。
しばらくすると、ストレージにコピーされたファイル群を認識して、自動的にアップグレードが始まる。

この辺は、sshより、シリアルコンソールからやった方が良いと思う。
ネットワークは途中で切られるので、何が起きているのか把握しにくい。

電源

電源は、USBから取れるので、別にポータブルバッテリーでも何でも利用できるんですが、小さいLi-Po使いたいという人のために。
Edisonは、普通のLi-Po (3.7V)で駆動できるようになっているだけでなく、実は、100mAでの充電にも対応しており、300mAH以上の容量のもの使えとあります。
なので、僕が使っているのは、次のバッテリーです:

  • SFE-PRT-10718 リチウムイオンポリマー電池400mAh

http://www.switch-science.com/catalog/821/

ただ、直接結線すると後が面倒そうなのと、スイッチも付いていると便利なことを考えて、次の部品も使っています:

  • ADA-1863 2ピンJST-PHコネクタ・ピッチ変換基板(スイッチ付き)

http://www.switch-science.com/catalog/1776/

1.48Whもあると、Edisonは、最大1Wらしいので、最低でも90分ぐらいは稼働するのではないかと。正確なところは、電力消費を計ってみないとわかりませんが。

Xperia Z2 Tablet は以外と小さい

今日、初めて気づいたことなんですが、 Xperia Z2 Tablet は、milesto の小さいポーチ?メッセンジャーバッグ?って奴に入ります。

f:id:espresso3389:20140829181144j:plain

ジッパーは閉まらなくなるわけですが、防水ですし、中に極端に小さな物を入れない限り、あんまり困らないのかなぁと思いました。

僕みたいに、傷を気にせず、道具として利用しようっていう感覚の人間なら、このバッグに、デジカメ、スマフォ、Xperia Z2 Tabletっていうのでも全然悪くない感じだと思います。

Surface Pro 3のタイプカバーは撥水加工

さすがに、タッチカバーみたいにラバーじゃないので、キーボード側にコーヒーとかをこぼすとどうなるのかは不明ですが、裏側なら、

f:id:espresso3389:20140807173252j:plain

f:id:espresso3389:20140807173237j:plain

何ともありません。
拭き取ればコーヒーの匂いすら残りません!

Surface Pro 3用のUS配列タイプカバー入手

やっと届いたよん!

f:id:espresso3389:20140806192040j:plain

転送業者を使う

僕は、US配列信者ですので、実のところ、PCの調達には特定のメーカーを使わざるを得ないという問題があります。Lenovo, Apple辺りは問題無くUS配列が選択できますが、SonyというかVaioは最近、残念ながら方針転換してしまったようです。

ということで、Surface Pro 3のタイプカバー(US配列版: RD2-00077)をどうにかして入手したかったのですが、今回は、スピアネットの転送サービスを利用しました。

金額としては、

キーボード(RD2-00077) $129.99
Amazonの業者の配送料・手数料 $8.74
スピアネットの送料(宅配:日通) $22.00
スピアネットの手数料 $9.00
合計 $169.73

ぐらいです。レートにもよりますが、クレジットカードだと、18000円ぐらいでしょうか。安いのか高いのかは・・・。日本のAmazonに出品している業者だと、24000円ぐらい、ebayだと、20000円強ぐらいでした。まぁ、いろんな手間との天秤です。

で、USでもタイプカバー自体はかなり品薄の様で、Amazon.comでポチったのが、7/20(PST)、出荷されたのが、7/24(PST)、スピアネットの倉庫に届いたのが、7/30(PST)です。
つまり、US内だけで、10日もかかってる。

スピアネットでの手続きは直ぐに行ったので、荷物は、8/1(PST)にはポートランドの空港に。手続き後、8/2 14:04(PST)には飛行機に搭載され、8/3 16:09(JST)には成田に来ました!

・・・で、日通のいつものパターンですが、成田で2泊ほど。Lenovoとかでも同じ奴を良く食らいます。東京の我が家に届いたのは、8/6 12:45(JST)です。早いのか遅いのか。

転送はトラブルがなければ十分に早いのです。悪いのは日通ですが、これは安いから仕方がない。EMSとかPMIだと、日本に届いてからが早い「可能性」があります。(税関の手続きとかはいろんな事に影響するので必ずしも早いとも言えない。)

f:id:espresso3389:20140807012709p:plain

さてさて

Microsoft直販限定(?)の赤です。

f:id:espresso3389:20140807001703j:plain

f:id:espresso3389:20140807001810j:plain

f:id:espresso3389:20140807001744j:plain

カワイイです。キーを叩くと、下が空洞なのでペコペコですが、意外と悪くない打ち心地です。また、タッチパッドの感度は素晴らしく、Macbook Airとかにも劣らないというのは言い過ぎかも知れませんが、悪くないです。少なくとも、ThinkPad X1 Carbon (2014)よりも良いです。

以下、今更レビューしてもしょうがないんですが、これだけは自分のためにもメモしておきたいことを書いておきます:

ファンクションキーが普通に使えるようにする

例えば、デフォルトでは、[F1]を押すには、[Fn]+[F1]ですが、[Fn]+[CapsLock]を押すと、[Fn]の状態がトグルされます。

タッチパッドのタッチによるクリックをOFFにする

これ、ぱっと見、どこでやるのかわかりません・・・。一番下の、「入力中に誤ってカーソルを動かさないように、タップを無効にするか、タップが作動するまでの待ち時間を変更します。」ってやるのドロップダウンの中に、「タップの無効化」というのがあります。

f:id:espresso3389:20140807013045p:plain

ちなみに、この画面に行くためには、個人的には、Windows 8.1の検索を使うのが一番早いと思います。

f:id:espresso3389:20140807013222p:plain