CORY's twilight zone > Android 設定備忘録[an error occurred while processing this directive] > Xperia mini Pro SK17a (4.4 = KitKat)
ここでは qwerty 物理キーボードを搭載した、小型の Android 端末、Xperia mini Pro を例に、いわゆる「カスタムROM」を焼く際の大まかな手順を書いておきます。
【公式情報】 LegacyXperia Project、ダウンロード、更新情報、インストール方法、FAQ、サポートフォーラム (xda-developers)、 CyanogenMod の最新情報、Jelly Bean 以前のROMダウンロード、日本語Wiki、Information: Sony Ericsson Xperia Mini Pro ("mango")
【関連情報】 Android 設定備忘録 Xperia mini Pro SK17a (6.0 = Marshmallow)、 Android 設定備忘録 Xperia mini Pro SK17a (4.0.4 = ICS)、 Android クイック スタート ガイド Android Mobile Technology Platform 4.4 (KitKat®)
大きな板状の端末ばかりの最新モデルとは違い、Xperia 2011年モデルには(Xperia mini pro, mini, pro, ray, Active などと)コンパクトで個性的な端末が多く、買い換えようにも代替機種がない、使いやすいから長く使っていきたい、という人も少なくないでしょう。そういう人には嬉しいことに、最新のOSを旧機種向けに構築・提供している Legacy Xperia プロジェクトから、2013年末時点で最新の Android 4.4 "KitKat" が提供され始め、1年かけて、だいぶ安定して動くようになってきました。さらに2015年初頭からは、まだ実験段階という感じですが、CM12 (Android 5.0 Lollipop) の開発も始まったようです。
【参考】2011 Sony Ericsson Xperia Devices Taste Android 4.4 KitKat - xda-developers
携帯機器向けOSの分野では次々と最新バージョンが登場する一方で、2014年1月末をもって Android 4.1 (API Level 16) 以下の端末の新規開発が事実上出来なくなったようだとか、Android 4.3 以前の標準Webブラウザ向けパッチの提供打ち切り、Google Chrome の Android 4.0 サポート打ち切りなど、新しいバージョンへの移行を進めたい Google の姿勢が目立ってきました。しかしユーザの判断でアップデートできるパソコンと違い、携帯端末は基本的にメーカーがサポートを打ち切った時点でアップグレードの道が閉ざされてしまいます。機種とOSバージョンが切り離されていない携帯端末においてこの対応は、利用者不在の感があります。
【参考】 GogoleはAndroid 4.1.x以下でのGoogleアプリ認証受付を終了したという噂(ガジェット通信)、 Google、古いAndroid向けWebViewパッチ打ち切りについて説明 (ITmedia)、 Google、Android 4.0向けChromeのサポート打ち切りへ (ITmedia)
本稿執筆時点、筆者は公式ICSで特に不満はありませんが、とかくOSのバージョンアップが早い携帯端末の分野では、端末はまだ使えるのにアプリが非対応になる(基本的に、開発者が設定する API Level により制限される)等により徐々に不便になってしまいます。せっかく使い慣れた端末を、泣く泣く諦めざるを得ない場面も少なくありません。
その点、Xperia は世界的に利用者が多く、また2011年モデルまでは開発者向けにファームウェア更新がしやすい仕様になっていたので、最新OSを追いかけることができ、嬉しい限りです。 そこで、ここには筆者が試した範囲の備忘録を残しておきます。
なお、本稿の操作を行うとメーカー保証が無くなることはもちろん、端末がどうなろうが全て自己責任であり、誰にも文句を言えません。何かあっても自力で調べて解決してやろうという気概のある人以外、手を出さないことをお勧めします。
【備考】 KK = KitKat = Android 4.4.x, JB = Jelly Bean = Android 4.1/4.2/4.3, ICS = Ice Cream Sandwich = Android 4.0.x, Gapps = Google Apps, CWM = ClockworkMod, CM = CyanogenMod, LX = LegacyXperia, root = Superuser = 管理者権限
▲ 最初に戻る
▲ 参考リンク
▲ はじめに
■ 目次
◆ カスタムROM導入前の準備
◆ カスタムROM導入(LegacyXperia CM11 の場合)
▼ cm-11.0-20140121-NIGHTLY-LegacyXperia-mango を焼いてみた
▼ cm-11.0-20140203-NIGHTLY-LegacyXperia-mango の使い方
▼ cm-11.0-20140320-NIGHTLY-LegacyXperia-mango を使ってみた
▼ cm-11-20140512-UNOFFICIAL-LegacyXperia-mango を使ってみた
▼ cm-11-20140604-UNOFFICIAL-LegacyXperia-mango を使ってみた
▼ cm-11-20140611-UNOFFICIAL-LegacyXperia-mango が動かない
▼ cm-11-20140620-UNOFFICIAL-LegacyXperia-mango は動いた
▼ cm-11-20140703-UNOFFICIAL-LegacyXperia-mango を使ってみた
▼ cm-11-20140718-UNOFFICIAL-LegacyXperia-mango で電池持ちが大きく改善
▼ cm-11-20140814-UNOFFICIAL-LegacyXperia-mango を動かしてみた
▼ cm-11-20140907-UNOFFICIAL-LegacyXperia-mango のsleep問題
▼ cm-11-20141006-UNOFFICIAL-LegacyXperia-mango を入れてみた
▼ cm-11-20141114-UNOFFICIAL-LegacyXperia-mango を入れてみた
▼ cm-11-20141224-UNOFFICIAL-LegacyXperia-mango を入れてみた
▽ cm-12-20150314-UNOFFICIAL-LegacyXperia-mango は動かなかった
▼ cm-11-20150407-UNOFFICIAL-LegacyXperia-mango が良い感じに
▼ cm-11-20150501-UNOFFICIAL-LegacyXperia-mango を入れてみた
▼ cm-11-20150510-UNOFFICIAL-LegacyXperia-mango も一応入れた
▽ 余談:cm-12.1-20150514-UNOFFICIAL-LegacyXperia-mango (Android 5.1) が気になるけれど…
◆ キーボードの配列を入れ替える
▼ POBox Touch を入れる
▼ ftf から POBox Touch (JapaneseIME.apk) を取り出す
▼ Bluetooth HID外付けキーボードを使う
◆ カスタムROM導入(CarbonRom KitKat の場合)
◆ その他
※5,6は後で書き戻す際に必要になる公式ROMイメージを取得・保管するのが目的なので、必須ではなく、以前に行って(データを保管して)いれば今回は不要。ただし、ベースバンド部分はカスタムROMに含まれないので、端末自体がまっさらな場合(書き換えて壊してしまった場合を含む)は、先に公式ROMを焼いておく必要がある。
なお、最近 SONY純正Flashtool (Emma) が出たようで、これを使うとunlockedな端末に公式ROMを書き戻せるようだが、対応端末は限られているし、筆者はまだ試していない。
【参考】Sony MobileがXperiaスマートフォン向けのROM焼きツール(Emma)を公開、カスタムROMから公式ROMに戻すことが容易に | juggly.cn
★一応、Relock すると公式 Update Service が使えるようになる。
【参考】
[GUIDE step by step] How To Re-lock Boot loader on Xperia Arc - xda-developers
※Installation complete! と出れば完了。たまに失敗する時がある(⇒右図)が、手順を間違えたか、ファイルが壊れているか、ファイルを間違えたのだと思われる。
ここでは LegacyXperia を例にしているが、他のカスタムROMでも基本的に上記のような流れ。多くの場合、解説(ほとんど英語)を順に読んでいけば分かるようになっている(その解説の在り処を探すまでが一苦労だったりするが…)。
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\hoge> cd C:\Android\ADT\sdk\platform-tools C:\Android\ADT\sdk\platform-tools> fastboot -i 0x0fce getvar version version: 0.3 finished. total time: 0.000s C:\Android\ADT\sdk\platform-tools> fastboot -i 0x0fce flash boot D:\boot.img sending 'boot' (8448 KB)... (bootloader) USB download speed was 9183kB/s OKAY [ 0.952s] writing 'boot'... (bootloader) Download buffer format: boot IMG (bootloader) Flash of partition 'boot' requested (bootloader) S1 partID 0x00000003, block 0x00000280-0x000002e3 (bootloader) Erase operation complete, 0 bad blocks encountered (bootloader) Flashing... (bootloader) Flash operation complete OKAY [ 1.669s] finished. total time: 2.621s
※bootloader unlock していない端末では "FAILED (remote: The Device must be rooted first)" 等のエラーが出る。
※boot.img ファイルのタイムスタンプが変わっていなくても中身が変わっていることがあるので、アップデートの場合も毎回書き込むことを推奨。
最新の cm-11.0-20140203-NIGHTLY を試してみたが、なぜか「問題が発生したため、Googleアカウントマネージャーを終了します。」となり(いくつかの GApps で試してみたが全て同様)Google関連アプリが使えないので※、ひとつ前の cm-11.0-20140121-NIGHTLY を入れてみた。
初回起動時に言語を選ぶところでは、もちろん日本語も選択できる。続いて、無線LAN、Googleアカウント、CyanogenModアカウントの設定画面が出る(いずれも省略可)。最初に操作方法の案内が出るところまで、一般的なAndroid端末と概ね変わらない。
動作は概ね快適。ざっと見た範囲では違和感なし。これはすごいと思う。
ただし細かく見ると、sleepに入らず(画面も消えない)電池がみるみる減っていくことがあったり、ヘッドホンを認識しない時があったり、音楽再生中に画面キャプチャするとシャッター音がおかしくなったり、時々ホームアプリが不正終了することがあったりと、まだ安定していない様子。 (左記は既知の不具合に書かれている)
Bluetooth は不具合を抱えている(電池を異常に食う)よう。他に Wi-Fi も電池消費が多かった(下手すると3Gのみの時より多いような…?)が、おそらくスリープに入らないといった類の問題があるのだと思われる。
北米モデル(a)でのプラスエリア対応は、前述の方法(予めベースバンドを焼いてからカスタムROMを入れる)で、とりあえず対応しているよう。 電話アプリで *#*#4636#*#* にダイヤルし(SONY専用の *#*#7378423#*#* は使えない)、「テスト中」 > 「携帯電話情報」を表示、メニューボタンを押して「無線バンドを選択」すると、USA Band と JAPAN Band の設定ができる⇒右図。
データ専用SIMではいわゆるセルスタンバイ問題が発生。SMS付きSIMでは発生しない。
モトヤフォントが予め入っているので、標準のままで日本語表示に違和感なし。
日本語入力は、SONY標準の POBox を後から入れる(後述)か、Google Play から他の物を入れ、設定 > 言語と入力 > 現在の入力方法 で選択しておく必要がある。 今回試した範囲では、nicoWnnG と Google 日本語入力 は動作した。
CM11に付属の音楽プレーヤー "Apollo" のデザインや操作性は良いが、ID3tagが Unicode でない曲は文字化けしてしまう。 →その後、曲を追加していたらいつの間にか文字化け解消。原因は不明。
Apollo に限らないと思われるが、音楽再生中はAndroidシステム等による電池消費が大きく、スリープに入ると電源ボタンを押しても画面が出なくなる場合がある(その場合は電池を抜いて10秒程度置いてから再起動)など、不安定な面があった。
初期状態での内蔵ストレージ使用量は下記。
root@mango:/ # df Filesystem Size Used Free Blksize /dev 193.7M 128.0K 193.5M 4096 /sys/fs/cgroup 193.7M 0.0K 193.7M 4096 /mnt/asec 193.7M 0.0K 193.7M 4096 /mnt/obb 193.7M 0.0K 193.7M 4096 /mnt/fuse 193.7M 0.0K 193.7M 4096 /system 450.0M 407.4M 42.6M 4096 /cache 8.0M 1.2M 6.8M 4096 /data 469.5M 178.4M 291.1M 4096 /mnt/media_rw/sdcard0 14.8G 3.4G 11.5G 32768 /mnt/secure/asec 14.8G 3.4G 11.5G 32768 /storage/sdcard0 14.8G 3.4G 11.5G 32768
Link2SD は不具合を起こしていたが、3.1.5 から KitKat に対応し、使えるようになった。
ハードウェアキーボードの配列入れ替えはICS公式ROMの場合と同じ要領でできる。ただしファイル名が /system/usr/keychars/pm8xxx-keypad.kcm になっているのでそれに合わせてファイル名を変更する。
→詳しくは「キーボードの配列を入れ替える」を参照。
Android 4.4 から搭載された新ランタイム「ART」は試しておらず。一応動くらしいが…
【参考】
Xperia mini pro SK17aにLegacyXperia(Android 4.4 Kitkat CM11.0)をインストールする2
cm-11.0-20140203-NIGHTLY を入れるとGoogleアカウントマネージャーが不具合を起こす件、XDA で webview の修正を見つけたので、試しに上記の cm-11.0-20140121-NIGHTLY が動いている端末に cm-11.0-20140203-NIGHTLY-LegacyXperia-mango.zip(2月6日更新) を上書き、さらに cm-11-20140203-webview-fix.zip を入れて cache, Dalvik cache を wipe して再起動。すると問題なく動くようになった。
【参考】 {All 2011}[FAQ][Q&A][CM11.0] LegacyXperia discussion - xda-developers
最新の cm-11.0-20140320-NIGHTLY を入れてみた。起動が遅いのと時々sleepに入らなくなる不具合は相変わらずだが、他に cm-11.0-20140121-NIGHTLY で書いた不具合はほとんど解消されており(Bluetoothは試していない)、また前述のGoogleアカウントマネージャーの不具合もなくなり、目に見えて安定してきた感じ。
ただし(今回に限ったことでないが)Androidシステムがスリープしない時間が長い場合があり、システム自体の問題か、または他にもスリープを妨害する要因があるのかもしれない。
とりわけ、標準で有効になっているウィジェット "cLock" を使っていると、スリープを妨害して電池を食いまくっているようだったので、こいつを外したら少し改善した。 ロックスクリーンからは cLock を外せなかった(方法がわからなかった)ので、天気を出さないようにした。方法は Lock screen > Clock widget > お天気パネル > 天気を表示する のチェックを外す。
セルスタンバイのバッテリードレイン問題(SMS非対応のデータ通信用SIMを使うと通信はできるが圏外100%となり電池消費する)は相変わらず。これは Android OS の仕様な(直す気がない)のかもしれない…
POBox を入れることができたが、キーレイアウトファイルの書き換えが必要(詳しくは後述)。
このように、使っている時の安定感は向上しているが、電池食いの問題など、まだ不安定要素が残っている感じ。
上記の 20140320 が動いていた端末に、boot.img 書き込み、cm-11-20140512-UNOFFICIAL-LegacyXperia-mango.zip インストール、wipe cache、wipe dalvik cache を行って再起動。以前の動作環境は概ね引き継がれている。
今回からzipファイル名が少し変わっているが、起動時に表示される kernel ロゴも変わっていた(boot.img はなぜかタイムスタンプが古いままだが、中身は変わっているので、毎回書き換えておく方が良い)。
Updated to Android 4.4.2_r2, New kernel based on kk_2.7-stable CAF branch, … ということで、今回はOSレベルの変更が主なのかな?使ってみた感覚では、起動が少し早くなったような気がするくらいで、UIに近い部分はあまり変わっていない感じ。時々発症するスリープしない病は相変わらず。
とはいえ、スリープしない故の電池消耗や、時々フリーズする不安定さを除くと、20140320 が概ね実用段階に入っている感があるので、20140512 にしてしばらく様子を見てみたいと思う。
いくつかのkernel周りのバグ修正が入っている模様。
前回と同じ要領でインストール。 見た目には(下記1点を除き)前回と変わらない。ざっと試してみた範囲では、時々スリープしない現象が相変わらず出ているのと、起動の遅さ、ヘッドホン接続時の不安定さ(ヘッドホン接続したまま起動すると認識しない場合があるなど)以外は、普通に使える水準になってきた感じ。
見た目に分かる変更は1点。ホーム画面でメニューボタンを押した時に、「壁紙」「ウィジェット」「テーマ」が表示されるようになった(以前は「壁紙」「ウィジェット」「設定」)。さらにホーム画面の設定(検索バーOFFなど)を変更できるようになっている⇒右図。 設定に入りづらくなってしまったが、右上から中央に向けてスワイプして「クイック設定」を開く(「クイック設定」が表示されない場合は、設定→インターフェース→クイック設定パネル→クイックプルダウン を確認)のが早い。
今回、Bluetoothの電池食いに対策が入っているようだが、筆者はBluetoothを常用していないので未確認。
Updated to Android 4.4.3 ということで、早速インストールしてみた。他にもKernel・ユーザランドの様々な不具合修正がされている模様。
前々回と同じ要領でインストール・起動すると、「問題が発生したため、Trebuchetを終了します。」となり使い物にならない⇒右図。 ただしOS自体は動いているので、「クイック設定」から設定画面に入ることはでき、端末情報で Android 4.4.3 の動作中を見ることはできる⇒右上図。 試しにクリーンインストール(/system, /data, /cache をフォーマットしてからzipをインストール)もしてみたが、結果は同じ。
また、GApps を Android 4.4.3 対応の新しい物に入れ替えて、さらにTrebuchetではなくAndroid標準のホームアプリを動かすようにしてみたが、やはりホームアプリが起動しない⇒右下図。
xda-developers のサポートフォーラムを覗いてみると、すでに同様の不具合の書き込みがあり、解決策も提示されていた(下記)ので、これを試せば動くのかもしれないが、すでに修正候補に挙がっており、じきに修正されると思うので、筆者はそこまで試さず次を待つことにした。
ちなみに端末はアップデート直前のバックアップを書き戻して cm-11-20140604 にて動作中。CWM Recovery でバックアップを取っておけば、何かあっても大抵の場合は書き戻せるので、安心していろいろ試すことができる(^^)。
この他、cm-11-20140611 に同梱の boot.img を端末に書き込んでおくと、USB Keyboard(Android端末を、パソコン等のUSB HIDキーボードして動作させるもの)を利用可能になった。あまり実用性はないと思うけど^^;
cm-11-20140604 が動いている端末に上書き(この時と同じ要領で、boot.img を書き込む、wipe cache partition, wipe dalvik cache, install zip。GApps再インストール不要。)インストールして起動すると、前回はまともに動かなかったホームアプリを含め、問題なく起動。端末情報は Android 4.4.3 になっている。
CM11標準ホームアプリ (Trebuchet) のメニュー画面のアイコンが 4列×5行 になった(従来 (4x4) より詰まった)。横画面では 6列×3行。
音楽再生など何もしていない状態でもスリープしない不具合は、相変わらず時々発症している⇒右図。(Bluetooth と sleep の不具合に関する書き込みがあったが、Bluetoothを使っていなくても影響するのかしら?)
また、音楽再生が時々途切れる感じがする(Apolloでもプチリリでも)。
今回、前回といろいろ不具合修正があるようだが、すぐ見て判る範囲の違いは上記のみ。しばらくこれで試してみたい。
cm-11-20140620 が動いている端末に上書きインストール(この時と同じ要領で、boot.img 書き込み、wipe cache partition, wipe dalvik cache, install zip。GAppsの再インストールは不要。起動後に pm8xxx-keypad.kcm を書き換えて再起動)して、問題なく起動。端末情報は Android 4.4.4 になっている。
今回に始まった事ではないが、現時点で見られる不具合は下記。
言い換えれば、これ以外に目立った不具合は出ておらず、安定してきている印象。
とはいえ公式ROMと比べればかなり不安定。とりわけ電池消費の問題は実用上影響が大きいので、もし今の状況のままRelease版になると、公式ROMからの乗り換えには躊躇するかもしれない(利用状況次第ではあるが)。
今回の目に見える変更点は、音楽再生中、クイック設定パネルにイコライザ(DSPマネージャ)が表示されるようになった(以前から気づいていなかっただけかも?)。 それ以外の一見して分からない変更点はいろいろあるよう。
ちなみに Changelog を見ると今まであった todo が無くなって、FMラジオ、HDMI(本機は関係ない)、WiFi、Bluetooth の修正は半ば諦められている様子。
電池消費についてはサポートフォーラム533ページ以降で時々議論が出ている様子。現象が出ている人と、気にならないという人がいるようだが。
cm-11-20140703 が動いている端末に上書きインストール(この時と同じ要領で、boot.img 書き込み、wipe cache partition, wipe dalvik cache, install zip。GAppsの再インストールは不要。起動後に pm8xxx-keypad.kcm を書き換えて再起動)して、問題なし。
筆者が数日試した範囲では、従来見られた不具合のうち、下記が改善、または発生しなくなっていた。
最近のROMで最大の問題だったsleepしない病が発生しなくなって、実用上大きく改善。 今では公式ROMを使う最大の理由が電池持ちなので、これが改善されて(とはいえ、まだ公式ROMの方が持つように思うけど)実用性が大きく高まった感じ。 ヘッドホンをすぐ認識するようになったのも地味に嬉しい。
ただし、音楽再生中に時々音が途切れる(音飛びする)不具合は引き続き発生している。
この他、電源投入後 VolDown 連打で CWM Recovery を起動したとき、Swipe での操作方法の表示が出てしばらく待たされるようになった。たしかに Swipe で操作できるようになっているが、本機では必要性がないので、単に待たされて鬱陶しいだけ…
(2014.08.03) その後追試したところ、画面が消えない不具合は発生していないものの、Android OS や Playストアがsleepに入らず電池を消費する問題が発生した。発生頻度や原因は不明。
また、Apollo でプレイリストを編集すると不正終了する不具合も発生した。Appolo はシステムのプレイリストを使うので、他にシステムのプレイリストを編集できるアプリを入れてそちらで編集すれば、曲の再生については問題ない。
cm-11-20140718 が動いている端末に上書きインストール(いつもと同じ要領で、boot.img 書き込み、wipe cache partition, install zip。GAppsの再インストールは不要。起動後に pm8xxx-keypad.kcm を書き換えて再起動)して、問題なし。
一見、7月版と変わっていない印象。 Bluetoothを常用していると違いが分かるのかもしれないが、筆者は使っていないので分からず。
更新履歴には「Fixed support for screen casting (eg. Chromecast) - untested」とある。おそらくこれ絡みと思われるが、これも筆者は未確認。
前回改善された、画面が消えない不具合は、引き続き発生していない。 前回改善されていなかった、Android OS が Sleep に入らず電池消費する問題は、引き続き発生中。Google Play が勝手に起動してsleepを妨害していることも多い。 相変わらず(公式 ICS ROM に比べて大幅に)電池消費量が大きく、常用を躊躇う最大の理由になっている。
Apollo のプレイリスト編集時に不正終了する不具合も引き続き発生する。
以前の動作環境から上書き更新を続けてきて、sleepしない病が高頻度で発症しているので、ここいらでクリーンインストールを試してみることに。
fastbootでboot.imgを焼いた後、CWM Recovery を立ち上げて、バックアップした後、format /system, format /data, format /cache を実行し、install zip で cm-11-20140814-UNOFFICIAL-LegacyXperia-mango.zip, 7-29_GApps_Minimal_4.4.4_signed.zip, 7-15_GenieWidget_4.4.4_signed.zip をインストール。
LegacyXperia で配布されているGappsは古い(Android 4.4.2 の頃の物な)ので、今回は新たに BaNkS氏のGappsビルドをインストールしている。 ⇒[Standard/Minimal GApps][0-Day][4.4.4][8-11-… | Nexus 5 | XDA Forum、ダウンロード
これで2週間ほど様子を見てみたが、クリーンインストール前と同様に、Android OS がスリープを妨害し、異常に電池消費する現象が発生している(以前より酷くなった感すらある)。満充電から放っておいて半日も持たず電池が消耗する状況で、常用できる状態ではない。
cm-11-20140814 をクリーンインストールした上記端末に上書きインストール(いつもと同じ要領で、boot.img 書き込み、wipe cache partition, install zip。GAppsの再インストールは不要。起動後に pm8xxx-keypad.kcm を書き換えて再起動)して、一見して動作に問題は見られない。
何日か動かしてみたが、前回の操作せずに放っている状態で Android OS が電池を食い潰す問題は解消している。何も操作しなければ満充電から3日ほど持つ。Sleepしない時間が長くなる不具合も今のところ発生していない。長く引きずっていたsleep問題がようやく解消しつつあるようで、ありがたい。
7月頃から発生していた、CWM-based Recovery 起動時に待たされる問題も解消している。
一方、画面が消えなくなる(電源ボタンを押しても消えない)不具合は依然時々発生している。
強いて言えば、ブラウザ等のアプリ動作が少々重くなった感がある(アプリの方が重くなったのかもしれないが)。 また、Apollo のプレイリスト編集時に不正終了する不具合は相変わらず。音楽再生の音質が少し変わっている感があるが好みの問題か。 それ以外は概ね良好。 ただし Bluetooth や今回の修正項目に多数挙がっているカメラは試していない。
(2014.09.23) 追記
もうしばらく追試した所、sleep問題が再現することがあった。右図のように突然発生し、Android OS がスリープしない時間が異様に長くなっている。 頻度や程度は下がっているが、相変わらず唐突に発生し、再現方法は不明。
画面が消えない不具合も数回見られた。こちらも頻度や程度は下がっているが、再現方法は不明。
また、新たに発生した不具合として、SDカードにアクセスできず、設定等のアプリを起動してもすぐ異常終了する不具合が一度だけ発生した。この時は再起動して復旧、以降発生していない。
上記の端末に上書きインストール(いつもと同じ要領で、boot.img 書き込み、wipe cache partition, install zip。GAppsの再インストールは不要。起動後に pm8xxx-keypad.kcm を書き換えて再起動)して、一見して動作に問題は見られない。
今回の修正対象になっているLED関連は、たしかにキーボードのバックライトが点くようになっていた。
ところが、動作確認中にアプリの異常終了が頻発。標準ブラウザから 3rd party まで様々なアプリが異常終了し、シャットダウンもできない状態になる(電池を抜いて数十秒待ってから電源再投入すれば復帰する)。 この現象は常に発生するわけではないが、電源を入れてしばらく経つと出ているよう。1週間弱の試用期間ですでに数回経験している。
また、今回からではないが、ホーム画面に配置したウィジェットやショートカットが時々消えてしまう問題が発生している。
一見動作はしており、電池の異常消費も緩和されつつある(現時点では前述のsleep問題も出ていない)ものの、依然不安定さは残っている。
上記の端末に上書きインストール(いつもと同じ要領で、boot.img 書き込み、wipe cache partition, install zip。GAppsの再インストールは不要。起動後に pm8xxx-keypad.kcm を書き換えて再起動)。
起動直後、激しくもっさり。アプリがなかなか起動してこない(重い物は起動前に不正終了)。 しばらく放置してから再起動すると、まともに動くようになったが、最近追加したメディアデータ(MP3音楽ファイル)の認識がおかしく、再生時間が 0:00 と表示される(Apollo で試したところ、再生自体はできる)。
CMの更新まで追いかけられていないので、憶測になるが、どうも LegacyXperia よりも CM11 の範疇で、メディアサーバの挙動がおかしいのかもしれない。
LegacyXperia 関連では、今回の修正対象になっている "Testing fix for landscape lockscreen layout" に関係するかは不明だが、横画面に切り替わったときに Trebuchet(CMの標準ホームアプリ)が不正終了する不具合が一度だけ発生。 また先述の画面が消えない不具合が一度だけ発生。
その他は様子を見ているところ。数日動かした範囲では、初回の異常なもっさりを除き、一見動作に支障はなく、電池の異常消費も起きていない。
上記の端末に上書きインストール(いつもと同じ要領で、boot.img 書き込み、wipe cache partition, install zip。GAppsの再インストールは不要。起動後に pm8xxx-keypad.kcm を書き換えて再起動)。
今回はCMの更新のみで、LegacyXperia 特有の変更は(Xperia Play で SDカードの取り外しに対応したという物以外)無いよう。他は起動ロゴが少し変わったくらいで、見た目には変わらない。 しかし今まで以上に、(再)起動直後は激しくもっさり。
その後1-2週間動かしてみたが、先述の画面が消えない不具合や、異常にもっさりする現象が時々発生しているのを除き、一見動作に支障はなく、電池の異常消費も起きていない(近頃のビルドでは、スリープしない病が発生しなければ、丸1日以上持つまでに改善している)。
ただし、困ったことにアプリの動作が不安定。特に筆者的に最重要な K-9 mail が不安定で、一見動作するものの突然落ちたりするので、実用にならなくなってしまった。
次回修正候補に「Set max background services to 4 (previously 8)」があるが、これで改善を期待したい。
12月からしばらく更新されないなぁと思いつつ、年度末の忙しさにかまけて更新履歴をあまり見ていなかったが、3月に入って久々に見たら、なんと CM12 (Android 5.0 Lollipop) ベースのROMが登場していた!
しかし Android 5.0 ではランタイムが ART に切り替わって、最低 RAM 1GB 必須になったと聞くし、最近はメモリリーク問題が話題になっていたりもして、RAM 512MB の Xperia mini pro ではまともに動かないんじゃないかなーと思いながらも、思いきって新規インストール(boot.img 書き込み、wipe data/factory reset, wipe cache partition, install zip。GApps も 5.0 用をインストール)してみた。
OSが立ち上がる所までは行ったが、案の定というか何というか、ホーム画面が出たあたりで操作をなかなか受け付けない状況に。しまいには電池を抜くまで電源も切れないありさま。
さすがに Lollipop(というかARTランタイム)を動かすのは無理じゃね?と思いつつも、見方を変えれば ART が普及しだすと今度は Dalvik しか動かない端末が切り捨てられることも考えられるので、動くものなら動かしてほしいなぁと思いつつ、さりとてまずは Android 4.4 を安定させる方向に向いてほしいなぁと願いつつ、更新履歴を眺める日々に戻る。
上記のCM12を入れた1週間ほど後に CM11 の Nightly build 20150318, 20150326 が出ていたものの、年度末の多忙もあり、CM12を入れてまともに動かなくなった端末はしばらく触ら(れ)ずにいたけれど、今回 CM11 の20150406版を新規で入れてみることに。
上記の端末にはCM12が入っているので、データ領域も消去して新規インストール(boot.img を取り出して fastboot で書き込み、CWM Recovery を起動して wipe data/factory reset, wipe cache partition, install zip。GApps も 4.4 用をインストール。起動後に pm8xxx-keypad.kcm を書き換えて再起動)。
すると、驚くほどに動作が安定。電源投入直後の起動は相変わらず遅いものの、起動後は動作のもっさり感が無く、K-9 mail や地図などのアプリを入れて動かしてみても動作は安定している。
ただし、pm8xxx-keypad.kcm の仕様が変わったのか、キーボードをうまく認識しなくなってしまった。試しに pm8xxx-keypad.kcm の ctrl, meta の指定を削除すると、また動くようになった。これらの値を指定するとエラーが出るようになったのだろう。
また、相変わらず電池の異常消費は時々出ている。
次回修正候補は CM12.1 (Android 5.1) ベースに早くも切り替わっているれど、個人的には、CM11 (Android 4.4) の安定性向上にも取り組んでほしいと願う。
上記のCM11を入れた端末に、CM11の20150501版を上書きインストール(boot.img を取り出して fastboot で書き込み、CWM Recovery を起動して wipe cache partition, install zip)。
今回、Changelog に "Testing hardware key layout changes for mango/iyokan:" という修正項目がある。
ということ。
次のキーボードの項でも書いているように、CyanogenMod に組み込まれているキーボードレイアウトでは、[入力切替] キー(右端の地球マークが印字されているキー)に CapsLock が割り当てられている不具合(欧米人仕様かもしれない)があったが、これが今回修正されていた(/system/usr/keylayout/pm8xxx-keypad.kl にて、以前は key 368 に CAPS_LOCK が割り当てられていたが、今回は LANGUAGE_SWITCH が割り当てられている)。また、pm8xxx-keypad.kcm は大幅に書き換えられている。
新しい pm8xxx-keypad.kl により、筆者作成のキーレイアウトファイルに入れ替えなくてもIMEの切り替えができるようになったが、新しい pm8xxx-keypad.kcm には不具合があるようで、OSに認識されない。そのため、[Alt] キー(左下端の■が印字されているキー)との組み合わせで入力する数字や記号を入力できない(おそらく Generic.kcm が替わりに使われている状態だろう)。
次のキーボードの項に載せている筆者作成の pm8xxx-keypad.kcm ファイルを上書きすれば、従来通りキーボードが使えるようになる。
今回も、相変わらず電池の異常消費やスリープしない病が時々出ているものの、動作がだいぶ安定してきている。
上記のCM11を入れた端末に、CM11の20150510版を上書きインストール(boot.img を取り出して fastboot で書き込み、CWM Recovery を起動して wipe cache partition, install zip)。
今回、Changelog に "Reverted keyboard layout changes until further testing" とあるように、前回の pm8xxx-keypad.kl, pm8xxx-keypad.kcm ファイルの更新が差し戻されてしまった。
たしかに pm8xxx-keypad.kcm ファイルが認識エラーになっていたようだから、kcmだけrevertすればいいのにねぇ。なんで pm8xxx-keypad.kl まで戻しちゃうかな。
そんなわけで、また標準状態ではIMEの切り替えができない(IME切り替えキーに CapsLock が割り当てられてしまっている)状態に逆戻り。 結局、以前と同様、次項(キーボード)に載せている筆者作成の pm8xxx-keypad.kcm ファイルを上書きすればキーボードで日本語入力できるようになる、ということ。
その他の動作は取り立てて変わる所なく。(前回からの変更がセキュリティ修正2件のみのようだから、当然ではあるが。)
入れてみたい気もするけれど、きっと、まともに動かないだろうなぁ…
でも、更新履歴を見ると、
となっていて、ART などの負荷の高い物を工夫している様子。今となっては非力な(発売当時から非力な方だったかもしれないけど^^;) Xperia 2011年モデルのメモリ容量では本来 Android 5.x は動かないけれど、そこを動かすべく試行錯誤されている様子が窺える。
前述の通り「ハードウェアキーボードの配列入れ替えはICS公式ROMの場合と同じ要領でできる」が、ICSに比べてできることが増えているので、本項ではその関係の話を。
pm8xxx-keypad.kcm
【書き換え内容】 [Alt] + [S] → { [Alt] + [D] → " [Alt] + [F] → ' ['] → - [Shift] + ['] → = [Alt] + ['] → _ [Alt] + [Z] → } [Alt] + [C] → ^ [Alt] + [V] → \ [Alt] + [N] → [ [Alt] + [M] → ] [?] → / [Shift] + [?] → ? [Alt]+[Shift]+[?] → | [Shift] + [@] → ~ [Alt]+[Shift]+[@] → ` [Shift] + [,] → < [Shift] + [.] → > [Alt]+[Shift]+[.] → ESC [Camera] → [Ctrl] [入力切替] の不具合修正 (以下おまけ) [Alt] + [Shift] + [F] → Focus [Alt] + [Shift] + [C] → Camera
Android 4.0 以降、ハードウェアキーボードの配列は /system/usr/keylayout/*.kl ファイルと /system/usr/keychars/*.kcm ファイルで定義される。 前者には Linux のキーコードと Android のキーコード (Android key code name) との対応が書かれており、後者にはAndroidキーコードと文字の対応が書かれている。
さらに Android 4.1 からは "User-installable keymaps" に対応しており(ここを開いてから Android 4.1 を選ぶと見られる)、つまりroot権限がなくてもキー配列を追加・切り替えできるようになった。 この機能を使うことで、例えば、「KCM for 日本語106/109キーボード」をインストールして有効にすると、root権限不要で、Android 用と謳われていない日本語キーボードをUSBやBluetoothで接続して使うことができるようになった。
とはいえ、Xperia mini Pro で Android 4.1 以降が動いている場合はカスタムROMだからroot権限の要否はあまり重要でないが、kcm ファイルでできることも幾らか拡張されているようで、そのひとつに、本来は /system/usr/keylayout/*.kl の方で指定するキーコード対応の定義を *.kcm で上書きできるようになっている。 例えば
map key 212 CTRL_LEFT
と書いてやると、キーコード212(CAMERAキー)に左CTRLキーコードを割り当てることができる。(記号入力が不要でCtrlを多用する用途では [記号] キー 127 を割り当てても良いかもしれない。キー番号は /system/usr/keylayout/pm8xxx-keypad.kl を参照)
また、直接入力できないと端末操作では何かと不便な "|" と "`" を shift+alt へ割り当てる。[Shift] と [Alt] の同時押しでも、[Alt] を押し離してから [Shift] を押しても入力できる。(ただし POBox Touch を通すとうまく入力できない。nicoWnnG では入力可。)
そこで、右表のように書き換える(POBox Touch の入力切替に関するCM11の不具合修正にも対応している)kcm ファイルを作ってみた。
→ pm8xxx-keypad.kcm
。
このファイルを /system/usr/keychars/ に置き(元々あるファイルは予めファイル名を変更するなど保存しておく)、パーミッションを644に設定して再起動(下記に例)。
このファイルはアップデートなどでROMを焼き直すと上書きされてしまうので、ROMを焼いた後は毎回、kcmを書き換える作業も必要になる。書き換えた pm8xxx-keypad.kcm は端末上だけでなくsdcardなどにも残しておくと良い。 (外付けキーボードの場合は /data/system/devices/ 以下にディレクトリを作ってそちらに置けば上書きされないが、内蔵キーボードでは /system/usr/keychars/pm8xxx-keypad.kcm が優先されるので、都度書き換えが必要になる。)
カメラキーは押しづらいものの、普段 console をよく使う人なら Ctrl が使えるようになるだけでも何かと便利になるのではと(^_^)。
ただし、[Ctrl] キーは、Android Terminal Emulator での操作や、Jota+ では文字列コピー・切り取り・貼り付け、ファイルを保存・開く、が動作するようになるが、ConnectBot では [Camera] キーが乗っ取られてしまうので期待通りの動作をしてくれない。
cm-11-20150407-UNOFFICIAL-LegacyXperia-mango より、pm8xxx-keypad.kcm に ctrl, meta の指定があるとエラー扱いになってしまうようだ。掲載している pm8xxx-keypad.kcm は、これらの値を削除した物に差替済。
【参考】
下記はUSBデバッグから操作する場合の例。root対応ファイルマネージャや、端末エミュレータから操作してもOK。(要root権限)
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\hoge> cd C:\Android\android-sdk\platform-tools C:\Android\android-sdk\platform-tools> adb push D:\pm8xxx-keypad.kcm /sdcard/ C:\Android\android-sdk\platform-tools> adb shell $ su # mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system # cd /system/usr/keychars # ll -rw-r--r-- root root 12335 2008-08-01 21:00 Generic.kcm -rw-r--r-- root root 14464 2008-08-01 21:00 Virtual.kcm -rw-r--r-- root root 15560 2008-08-01 21:00 pm8xxx-keypad.kcm -rw-r--r-- root root 15840 2008-08-01 21:00 qwerty.kcm -rw-r--r-- root root 15710 2008-08-01 21:00 qwerty2.kcm # mv pm8xxx-keypad.kcm pm8xxx-keypad.kcm.org # cp /sdcard/pm8xxx-keypad.kcm . # chown root:root pm8xxx-keypad.kcm # chmod 644 pm8xxx-keypad.kcm # cd ../keylayout # ll -rw-r--r-- root root 929 2008-08-01 21:00 AVRCP.kl -rw-r--r-- root root 9096 2008-08-01 21:00 Generic.kl ... -rw-r--r-- root root 255 2008-08-01 21:00 cyttsp_key.kl -rw-r--r-- root root 201 2008-08-01 21:00 msm_pmic_pwr_key.kl -rw-r--r-- root root 2000 2008-08-01 21:00 pm8xxx-keypad.kl -rw-r--r-- root root 2577 2008-08-01 21:00 qwerty.kl -rw-r--r-- root root 273 2008-08-01 21:00 simple_remote.kl -rw-r--r-- root root 185 2008-08-01 21:00 simple_remote_appkey.kl # mv pm8xxx-keypad.kl pm8xxx-keypad.kl.org # cp /sdcard/pm8xxx-keypad.kl . # chown root:root pm8xxx-keypad.kl # chmod 644 pm8xxx-keypad.kl # sync # reboot
本機(SK17)のICS公式ROMに入っている POBox Touch 4.4 /system/app/JapaneseIME.apk を予め取り出しておき、カスタムROMを入れた後にインストールすると動作した。(cm-11.0-20140320-NIGHTLY-LegacyXperia-mango 以降で確認)
ただし、/system/app/ に直接置いても動作せず(Dalvik cache を wipe してやればいいのかもしれないが試していない)、パッケージインストーラからインストールする必要がある。設定 > セキュリティ > 提供元不明のアプリ にチェックを入れた後、パッケージ JapaneseIME.apk をインストールする(筆者はESファイルエクスプローラを使ったが、CM11に付いてくるファイルマネージャから開いても問題ない)。
CM11 標準状態で POBox を入れて使うと、英小文字が全て大文字になってしまう(常に CapsLock がかかった状態になる)不具合が発生する。この状態ではローマ字入力で - や . の入力もできなくなる。
これは、CM11 に含まれているキーレイアウトファイル pm8xxx-keypad.kl がおかしい(入力切替キーに [CAPS] が割り当てられている)ためで、前項の pm8xxx-keypad.kcm ファイルではこの不具合修正も行っている。
また、POBox Touch が有効になっている(ステータスバーに"a" または "あ" 表示が出ている)ときは [Ctrl] キーは動作しない([Alt] + [Shift] も動作しない)。Terminal などで Ctrlキーを使う場合は、一旦[Back]キーを押してIMEを無効にしてやると良い。
ちなみに nicoWnnG を使うと上記の一連の問題は発生せず、Ctrlキーも使えるが、記号キーが動作しないのが地味に不便。
他に、POBox Touch 5.1 が入っている端末を持っている人が移植して使えたという報告もあるようだが、筆者は未確認。
POBox Touch (JapaneseIME.apk) はICS公式ROMで動いているうちに取り出すのが手っ取り早いものの、公式ROMのイメージファイルを保管してあれば、そこから取り出すこともできる。
まず、Sony mobile Update Service を使ってダウンロードした FILE_xxxxxxxxx ファイルを flashtool で展開(メニューの Tools > Bundles > FILESET Decrypt)する、または手元に ftf ファイルがあれば拡張子を tgz に変えてから展開すると、複数の sin ファイルを取り出すことができる。
次にその sin ファイルを開くときも、flashtool に搭載されているyaffs2 (Yet Another Flash File System) イメージファイルの extractor(メニューの Tools > Extractors > Yaffs2)を使う。
または、sin は内蔵ストレージのイメージファイルなので、Unix系OSで kernel がyaffs2に対応している場合は mount しても良い(Ubuntuの例)が、yaffs に標準対応しているOSは少ないのではと…
お目当ての JapaneseIME.apk は system 領域に含まれるファイルなので、いずれかの方法で system_*.sin ファイル(ftf から取り出した場合は system.sin ファイル)を展開すると、app/JapaneseIME.apk ファイルを取り出すことができる。
【flashtool の情報(すべて英語)】
※Flashtool 公式ホームページのダウンロードは海外のファイルホスティングサイトに飛び、怪しげなバナー広告が大量に出て、どこへ行けばダウンロードできるのか分かりにくいので要注意。1時間ほどかかるが、会員登録等せずにダウンロードできる。ダウンロードにはプライベートウィンドウ利用を推奨。
Xperia mini Pro はQWERTYキーパッドを内蔵しているものの、座って長文入力する場合などは Bluetooth 外付けキーボードがあると便利。Android 4.1 以降ではキーマップの変更がしやすくなっており、「KCM for 日本語106/109キーボード」を Google Play からインストールしてキーボードレイアウトを選べば、日本語配列キーボードもほぼ違和感なく使えるようになっている。
公式ROM (Android 4.0.4) では外付けキーボード入力に少々不便があるので、キーボードが使いやすくなっている点は、カスタムROMを使う恩恵として分かりやすいかもしれない。
もちろん、root権限があれば自分でキーボード配列を書き換えることも可能。詳しくは『HID外付けキーボードを使う』を参照。
CarbonRom KitKat の最新版、CARBON-KK-NIGHTLY-20140222-1019-mango を試してみた。手順は前述の LegacyXperia の例とほぼ同じ。
「ようこそ」画面の次へボタンと緊急通報が重なっている(右向き▲印の左上あたりを押したら次に行った)。
モトヤフォントが入っていない(LXは入ってるのに!CarbonRomは日本語利用者が少ないのかしら?)。ここの手順でフォントファイルを置いてやれば当然使えるようになるが。
他にLXとの違いは、設定 > Carbon Fibers で細かいカスタマイズができることと、CMアカウントの設定が無いことと、Screen record の設定ができるようになっているくらい?しかし Screen record は正常に録画されない(再生できず、そもそも生成されたファイルが3KB程度しかない)が…
セキュリティ設定の初期状態で「提供元不明のアプリ」「パスワード」にチェックが入っており、「アプリを確認する」にチェックが入っていない。
初期状態(ただしGmailなどが勝手に更新されたのと、ESファイルエクスプローラを入れた後の状態)での内蔵ストレージ使用量は下記。LXに比べて /data の使用量が大きい感じ。
C:\Users\hoe> C:\Android\ADT\sdk\platform-tools\adb shell shell@mango:/ $ su root@mango:/ # df Filesystem Size Used Free Blksize /dev 193.6M 128.0K 193.5M 4096 /sys/fs/cgroup 193.6M 0.0K 193.6M 4096 /mnt/asec 193.6M 0.0K 193.6M 4096 /mnt/obb 193.6M 0.0K 193.6M 4096 /mnt/fuse 193.6M 0.0K 193.6M 4096 /system 450.0M 378.7M 71.3M 4096 /cache 8.0M 1.2M 6.8M 4096 /data 469.5M 246.0M 223.5M 4096 /mnt/media_rw/sdcard0 14.8G 5.6G 9.3G 32768 /mnt/secure/asec 14.8G 5.6G 9.3G 32768 /storage/sdcard0 14.8G 5.6G 9.3G 32768
不具合と思われるが、ホーム画面から メニュー > 設定 で設定に入れない(ランチャーのショートカットからは入れる)。 位置情報を有効にしておくとcLockがやたら位置情報を取得して電池を食っている。 音楽再生時にスクリーンキャプチャするとシャッター音量が異様に大きくなる(CM11同様)。
CarbonRom KitKat の最新版、CARBON-KK-NIGHTLY-20140312-0013-mango が出ていたので試してみた。
CARBON-KK-NIGHTLY-20140222-1019-mango からの上書きアップデート、+ wipe dalvik cache、さらに wipe data して再度インストールも試みたが、いずれの場合も起動直後から「問題が発生したため、プロセス「com.android.phone」を終了します。」(英語では "Unfortunately, the process com.android.phone has stopped.")が繰り返し出て使い物にならず。
最近の Android で一般的な仕様だが、USBデバッグなどを使うためには、設定 > 端末情報 > ビルド番号欄を7回繰り返しタップして、設定画面に「開発者向けオプション」を表示させる必要がある。
Xperia のカスタムROMに関する情報は xda-developers forum(英語)に集まってくるので、ここを見ておくと良い。Android 4.3 まで (JB = Jelly Bean) については安定版のROMも提供されている。
LegacyXperiaプロジェクト、CyanogenMod、nAa kernel、CarbonRom をはじめ有用なコード・バイナリを提供してくださっている開発者、および解説文を書いてくださっている皆様に、この場を借りて感謝申し上げます。
なお、本稿は、先達による様々な調査検証の結果はあれど、それが探しづらいことから、個人的に調べ試した結果を整理してまとめた備忘録です。それ以上の意味はありません。海外端末の利用を推奨するものではなく、あくまで個人的な備忘録として整理したものなので、中には間違いや過不足等あるかもしれませんが、予めご承知おきください。
更新日 : 2016年06月08日 (19035)
CORY's twilight zone > Android 設定備忘録[an error occurred while processing this directive] > Xperia mini Pro SK17a (4.4 = KitKat)