2015/05/26

Nexus9 を Android 5.1.1 にアップデートするとか

他の人が普通にできるのに、それがなぜかうまくいかない無銘闇人です。

最近、ブログを更新してなかったわけですが、久々に技術的なネタを見つけたので、備忘録的な意味合いでの更新です。

今回は Nexus9 の Android 5.1.1 アップデートについて。
以下、経緯ですが、経緯とかはどうでもいいって人はスキップ ↓

=====
昨年の11月末に Nexus9 (Wifi 版) を購入したわけですが、どうもこの端末、無銘闇人と実に相性が悪いみたいです…。メモリリーク起こして、重くなったり、起動画面ループになったり、端末の上部が熱くなったり、キーボードフォリオが早々にご臨終したり…。(最後のは関係ないか)

で、今回、躓いたのが Android 5.1.1 へのアップデート。
通知領域にアップデートができますとなったので、早速アップデートを実行しましたが、途中で画面中央に「エラーです」の一言のみ表示して再起動。

メモリリークが解決すると噂されていただけに、期待を早々に裏切られました。orz。そもそも、「エラーです」って表示で、ユーザにどうしろと言いたいのかと開発者に小一時間問い詰めたいくらいです。せめて、エラー内容でも表示すればいいのに…。

その後、何度か繰り返しましたが失敗が続いたので、PCからの操作に踏み切りました。

が、リカバリーモードの sideload でのアップデート失敗。しかも、中途半端にアップデートが適用されたがために、初期化された Nexus9 には「unfortunately, NFC service has stopped」などのエラーメッセージの嵐で、ブートローダ以外は操作できず…。

fastboot からのインストールも、system.img をインストールする段階で「data length is too long」のエラーでアップデートできず。その解決方法も掲示板でイメージファイルが壊れているとか、fastboot のバージョンが古いとか全然役に立たない情報ばかりで、もう散々です…。

でも、何とか回避策を見つけたので、紹介したいと思います。
=====

以下、私と同じエラー (flash-all.sh をやって、"data length is too long") が出る人用の回避手順です。環境はもちろん、LinuxMint (おそらく、Ubuntu でも可。読み替えれば Windows でも可です)。

ここでやっているのは結局、OS データの新規インストール (ROM焼き) となりますので、バックアップを取ってから試して下さい。なお、自己責任でお願いします。
  1. Nexus9 側の作業
    1. OEMロックの解除 (この段階で初期化されます)
      →「Nexus 9のBootloaderアンロック方法 | Gadgen(ガジェン)」を参考に解除
    2. 上記のサイトの最後の写真のような状態にしておく
      ※「Devide State - UNLOCKED」や「FASTBOOT USB」と表示されている状態
    3. USBケーブルでPCに繋ぐ
  2. PC側の作業
    1. fastboot のインストール
      端末 (terminal) を開いて以下を実行
      $ sudo apt-get install android-tools-fastboot
      あるいは、「[TOOL] [LINUX/MAC] Nexus Tools 2.6 (Featured… | Development Tools | XDA Forums」の #1 の bash ... のコードをコピペして端末で実行
    2. Factory Images for Nexus Devices - Nexus Files for Developers — Google Developers」から自分の Nexus9 に合った Factory Image をダウンロード
      私は Nexus9 (Wifi 版) なので、「"volantis" for Nexus 9 (Wi-Fi)」の「5.1.1 (LMY47X)」の「LINK」からダウンロードしました。866.1 MBくらいあるので、時間がかかります。
    3. 端末 (terminal) を開き、ダウンロードしたディレクトリに移動
      $ cd ~/Downloads
      ※「~/Downloads」の所が、ダウンロードしたディレクトリになります。
    4. 端末 (terminal) から md5sum を実行して、ファイルがおかしくないかチェックします。
      $ md5sum volantis-lmy47x-factory-3efdc8d4.tgz
      a63624b4b42caf1d8327c4e19d7005e5  volantis-lmy47x-factory-3efdc8d4.tgz
      「a636...」 に当たる部分がファクトリーイメージのサイトにある自分がダウンロードしたイメージの「MD5 Checksum」のコードと同じだと OK です。
    5. 多くのサイトでは、ここで flash-all.sh (Windows では flash-all.bat) を実行とありますが、そのまま実行すると、「data length is too long」と出て、アップデートできない場合があります (私がそうでした)。おそらく、flash-all.sh の最後の行の「fastboot 〜 update 〜」でこけているので、fastboot が .zip をうまく読み込めてないのではないでしょうか? なので、地道にインストールしていきます。 まずは、flash-all.sh の最初の部分を実行
      $ fastboot flash bootloader bootloader-flounder-3.44.1.0123.img
      $ fastboot reboot-bootloader
    6. コケる原因である image-○○○.zip を展開します。(○○○はイメージファイルによって異なります)
      $ unzip image-○○○.zip
    7. 展開したディレクトリ image-○○○に入ります。
      $ cd image-○○○ 
    8. 中に .img ファイルがあるので、順番に Nexus9 に書き込んでいきます。
      $ fastboot flash boot boot.img
      $ fastboot flash cache cache.img
      $ fastboot flash recovery recovery.img
      $ fastboot flash system system.img
      $ fastboot flash vendor vendor.img
      ※2015/12/25 上の recovery の部分に不足がありましたので、修正しました

      あるいは、まとめて for 文でもできちゃいますね。
      $ for i in *.img; do
      > fastboot flash ${i%.img} $i
      > done
      ※ 「>」は入力しません。 
    9. 全ての書き込みで「OKAY 〜」と表示されていたら問題なく作業が完了しているので、以下のコマンドを実行して、Nexus9 を再起動
      $ fastboot reboot
      問題がある場合は、再度、上記操作の見直しをする。
これで、Nexus9 には Android 5.1.1のセットアップ画面が表示されているはずです。

参考サイト

2014/07/16

iBusでxmodmapでの設定が消える問題の解決方法とか

備忘録として…。

xmodmap でキーを入れ替えたりしていて、iBus 1.5.5 で日本語入力をしていると起こるかもしれない問題。具体的には、iBus を ON/OFF (つまりは日本語のオンオフ) で、xmodmap で設定したキー入れ替えがリセットされてしまうのです。

nethack や vim、挙句の果てには GUI の操作で Esc キーをよく利用する私*は、xmodmap で無変換キーを Esc キーに入れ替えているので、この問題が生じるようになってから、日本語入力の ON/OFF をする度に xmodmap で再設定していました。

でも、いい加減、再設定するのも疲れてきたので解決方法を探してみた所、ありました。iBus の設定にあるんですね…。
手順としては、iBus の設定を開き、「詳細」タブの「システムキーボードレイアウトを使用する」にチェックを入れればいいだけです。

 


→参考にしたサイト: 「How to stop IBus from removing your xmodmap mappings | tots

* Esc キーまで指を伸ばすのはだるいじゃないですか。

2014/07/06

nemo用のimage-manipulatorに進捗バー付けたよとか

タイトルの通りで、ここ最近開発している nemo 用の image-manipulator に進捗バー付けました。 v 1.1

ダウンロードはこちらから。
ファイルを展開したらホームディレクトリ内の隠しディレクトリ .gnome2/nemo-scripts へぶち込んで下さい。

2014/07/02

nemo用のimage-manipulatorに追加スクリプトとか

前の記事で Nemo/Nautilus 上から画像を加工するスクリプトを紹介しました。

でも、よく考えたら、imagemagick でさらに多様なことをしたいとか、複数の処理を一気に適用したいことってあると思うのですよ。例えば、90 度時計回りに回転させて、サイズを 50% にして、グレースケール化するとか。

なので、ユーザに imagemagick のオプションを指定してもらえば楽なんじゃないかと思い、作ってみましたよ。

当該スクリプト「Execute ImageMagick」はこちら
前に公開したスクリプトと一緒にダウンロードするのなら、こちらから。

インストール方法は前の記事を参考に。
 

今回は変換後、末尾に「_exe」が付きます。「_exe」以外にしたい時は、スクリプトの頭にある「suffix」の中身を変えて下さい。

2014/06/30

nemo用のimage-manipulator作ってみたよとか

以前、「画像操作機能が LinuxMint でもできるようになったとか」で LinuxMint、つまり nemo で画像を編集できるようになったと紹介しました。

しかし、PPA で導入する関係上、Ubuntu 14.04 に対応する LinuxMint 17 ではインストールすることができません。毎回、要望を出したり、自分で PPA などを作ってそれぞれのバージョン用を作るもの大変です。

なので、私がよく使う機能を Nautilus-scripts/Nemo-scripts として作ってみました。