CORY's twilight zone > Android 設定備忘録[an error occurred while processing this directive] > Xperia mini Pro SK17a (6.0 = Marshmallow)
qwerty 物理キーボードを搭載した小型の Android 端末、Xperia mini Pro。その大きさとキーボードに惹かれて根強い人気のあった機種のようです。
国内キャリアが販売する Android 端末ではアップデートが提供されないことが多い中、その Xperia 2011年モデル(発売当時の搭載OSは Android 2.3.4)には、まさかのマシュマロ (Android 6.0) がやってきました!もちろん非公式ですが。
遅ればせながら筆者も試してみたので、その Android 6.0 "Marshmallow" ベースのカスタムROM、LegacyXperia CyanogenMod 13 を入れる大まかな手順を書いておきます。
ただし、CM11 (Android 4.4 "KitKat") とは導入方法が変わっているので要注意。とはいえ基本的にはカスタムROMのインストールなので、本稿では左記CM11から変わった点を中心に書いておきます。
また、本機の内蔵ストレージ不足を補うためにmicroSDカードが使われるので、microSDカードは F2FS (Flash-Friendly File System) という、要は本機専用のフォーマットでまっさらに初期化されます。以前のデータが消えるのはもちろん、SDカードを抜き差ししてパソコンで読み込むといったことは出来なくなります(SDカードスロットの無いNexusシリーズのような使い勝手になる)。
最後にお約束。本稿の操作を行った後は、メーカーのサポートを受けられなくなります。また、本稿の内容について筆者は一切の責を負いかねます。要は全て自己責任ですので、よろしくお願いします。
【公式情報(英語)】 LegacyXperia Project、ダウンロード、更新情報、インストール方法、サポートフォーラム (xda-developers)、 CyanogenMod の最新情報、日本語Wiki、Information: Sony Ericsson Xperia Mini Pro ("mango")
【関連情報】 Android 設定備忘録 Xperia mini Pro SK17a (4.4 = KitKat)、 Android 設定備忘録 Xperia mini Pro SK17a (4.0.4 = ICS)
【備考】 M = Marshmallow = Android 6.0.x, 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, CM = CyanogenMod, LX = LegacyXperia, root = Superuser = 管理者権限
▲ 最初に戻る
▲ 参考リンク
▲ はじめに
■ 目次
◆ 導入前の準備
◆ カスタムROM導入(LegacyXperia CM11 の場合)
◆ キーボードを使う
▼ pm8xxx-keypad.kcm を書き換える
▼ POBox Touch を入れる
◆ その他
▼ 「開発者向けオプション」を有効にする
▼ root権限を使う
▼ microSDカードを抜き差ししてパソコンで読み書きするのは現実的でない
▼ USB接続したパソコンから本機内蔵ストレージのファイルを読み書きする
◆ 雑感
▼ cm-13.0-20160418-UNOFFICIAL-LegacyXperia を焼いてみた
※7は後で公式ROMに書き戻せるようにイメージファイルを取得・保管するのが目的なので、以前に行って(データを保管して)あれば今回は不要。ただし、ベースバンド部分はカスタムROMに含まれないので、端末自体がまっさらな場合(書き換えて壊してしまった場合を含む)は、先に公式ROMを焼いておく必要がある。
★一応、Relock すると公式 Update Service が使えるようになる。
【参考】
[GUIDE step by step] How To Re-lock Boot loader on Xperia Arc - xda-developers
操作方法は 公式ページ Unlocking the boot loader(英語)の通り。
この手順を実行すると、メーカーのサポートが無効になり、公式 Update Service 等も使えなくなる。
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.005s C:\Android\ADT\sdk\platform-tools> fastboot -i 0x0fce oem unlock 0xXXXXXXXXXXXXXXXX ... (bootloader) Unlock phone requested (bootloader) Erasing block 0x00001300 (bootloader) Erasing block 0x00001400 (bootloader) Erasing block 0x00001500 (bootloader) Erasing block 0x00001600 (bootloader) Erasing block 0x00001700 (bootloader) Erasing block 0x00001800 (bootloader) Erasing block 0x00001900 (bootloader) Erasing block 0x00001a00 (bootloader) Erasing block 0x00001b00 (bootloader) Erasing block 0x00001c00 (bootloader) Erasing block 0x00001d00 (bootloader) Erasing block 0x00001e00 (bootloader) Erasing block 0x00001f00 OKAY [ 10.312s] finished. total time: 10.312s
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.005s C:\Android\ADT\sdk\platform-tools> fastboot -i 0x0fce flash boot D:\boot.img sending 'boot' (9344 KB)... (bootloader) USB download speed was 199338kB/s OKAY [ 1.061s] 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 [ 2.590s] finished. total time: 3.650s
※bootloader unlock していない端末では "FAILED (remote: The Device must be rooted first)" 等のエラーが出る。
※boot.img ファイルのタイムスタンプが変わっていなくても中身が変わっていることがあるので、アップデートの場合も毎回書き込むことを推奨。
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> adb sideload D:\cm-13.0-20160418-UNOFFICIAL-LegacyXperia-mango.zip (LegacyXperia OS本体を書き込む) C:\Android\ADT\sdk\platform-tools> adb sideload D:\MDPI_miniGAPPS-6.0-20160526-tb-signed.zip (Google Apps を書き込む)
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
CyanogenMod の不具合で、言語切替キーが CapsLock として動作するため、そのままでは Xperia mini pro 内蔵キーボードで日本語入力への切り替えができない。
その修正と、他にも日本語入力に便利なようにキー配列を入れ替えた pm8xxx-keypad.kcm ファイルを以前 CM11 (Android 4.4) 用に作ったが、これがそのまま CM13 (Android 6.0) でも使える。
詳しいことは Android 4.4 の記事の「キーボードの配列を入れ替える」を参照。
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. > cd C:\Android\android-sdk\platform-tools > adb push D:\pm8xxx-keypad.kcm /sdcard/Download/ > adb shell $ su # mount -o remount,rw -t yaffs2 /dev/block/mtd/by-name/system /system # cd /system/usr/keychars # ll total 168 -rw-r--r-- 1 root root 14689 2008-08-01 21:00 Generic.kcm -rw-r--r-- 1 root root 8318 2008-08-01 21:00 Vendor_18d1_Product_5018.kcm -rw-r--r-- 1 root root 14464 2008-08-01 21:00 Virtual.kcm -rw-r--r-- 1 root root 15560 2008-08-01 21:00 pm8xxx-keypad.kcm -rw-r--r-- 1 root root 15840 2008-08-01 21:00 qwerty.kcm -rw-r--r-- 1 root root 15710 2008-08-01 21:00 qwerty2.kcm # mv pm8xxx-keypad.kcm pm8xxx-keypad.kcm.org # cp /sdcard/Download/pm8xxx-keypad.kcm . # chown root:root pm8xxx-keypad.kcm # chmod 644 pm8xxx-keypad.kcm # sync # reboot
※adb shell 起動時に文字化けすることがあるが、一度Enterキーを押すとプロンプト $ が表示される。
再起動後、書き換えた pm8xxx-keypad.kcm が有効になっているはず。
なお、このファイルはROMを焼き直すと上書きされてしまうので、ROMを焼いた後は毎回、kcmを書き換える作業も必要になる。書き換えた pm8xxx-keypad.kcm は端末上だけでなくsdcardなどにも残しておくと良い。
本機(SK17)のICS公式ROMに入っている POBox Touch 4.4 /system/app/JapaneseIME.apk を予め取り出しておき(ftf から取り出す方法はこちら)、LegacyXperia CM13 を入れた後にインストールすると動作した。(cm-13.0-20160418-UNOFFICIAL-LegacyXperia-mango で確認)
JapaneseIME.apk を本機に送り、「設定」→「セキュリティ」→「提供元不明のアプリ」を有効にした後、ファイルマネージャー(CM13標準のものでOK)を起動し、パッケージ JapaneseIME.apk を開くとインストールできる。
最近の Android で一般的な仕様だが、USBデバッグなどを使うためには、「設定」→「端末情報」→「ビルド番号」欄を7回繰り返しタップして、設定メニューに「開発者向けオプション」を表示させる必要がある。
CyanogenMod では、root権限(管理者権限)の使用可否をOSで設定できる。「設定」→「開発者向けオプション」→「ルートアクセス」で、無効/アプリのみ/ADBのみ/アプリとADB を選択できる。
root権限が必要なアプリを常用する場合を除き、通常は無効か、ADBのみにしておくことを推奨。
LegacyXperia CM13 (Android 6.0) では microSD を内蔵ストレージとして利用しているため、インストール時に F2FS (Flash-Friendly File System) という特殊なフォーマットで初期化されている。よって Windows などから読み書きできない。
一部の Linux は対応しているようなので、データ救出などの場合は対応OSを使うことで直接読めそうだが、通常はNexusシリーズなどと同様に、USB接続のMTPモード(後述)を使うか、クラウドサービスを使うことになりそう。
Android 6.0 では、USB接続しただけでは充電専用モードになり、内蔵ストレージを読み書きできない。
本機のロックを解除し、上端から下へスワイプして通知を開き、通知の一番下ある「USBを充電に使用」をタップすると、ファイル転送(MTP)に切り替えることができる。
本稿執筆時点で最新の cm-13.0-20160418 を試してみたら、(本機の性能の割りに)驚くほど快適に動作する。
もちろん、最近の機種とは比べるべくもないが、2011年モデルが最新のOSで普通に使えることに驚くし、これを実現した開発者および当時の Sony Ericsson に敬意を表したい。
初回起動時の Welcome 画面(言語を選ぶところ)が最初は英語になるが、スクロールで日本語を選ぼうとすると処理落ちして不正終了することがあった。
Welcome 画面で日本語を選択すれば普通に日本語になり(後で変更もできる)、フォントも日本語に対応しているが、日本語IMEは入っていないので、Google play から好きな物を入れると良い。 また、CM11 の時と同様に、本機公式ROM (4.1.B.0.587) に含まれている JapaneseIME.apk (POBox Touch) を予め取り出しておき、後からインストールすると動作した。
OSが正常起動した後も、Advanced Task Killer や CM Launcher のブーストなどでメモリを空けながら使わないとすぐに重くなり、ときに挙動不審になる。(そもそもメモリ512MBの機種で最新OSが動くことが凄いと思うが)ぎりぎりで動いていることが分かる。
重い処理をさせず、メモリを空けながら使っていれば、動作は概ね快適だし、ざっと見た範囲では前述のキーボード配列以外に不具合は見られない。
初期状態での内蔵ストレージ使用量は下記。CM13 では本機内蔵ストレージの大部分は /system で使われ、/data には microSDカードを使う。
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\hoge> adb shell 7[r[999;999H[6n8 shell@mango:/ $ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 220M 76K 220M 1% /dev none 220M 0 220M 0% /sys/fs/cgroup tmpfs 220M 0 220M 0% /mnt /dev/block/mtdblock0 912M 705M 208M 78% /system /dev/block/mtdblock2 3.9M 1.5M 2.4M 38% /cache /dev/block/mmcblk0p1 30G 1.1G 28G 5% /data tmpfs 220M 0 220M 0% /storage /dev/fuse 30G 1.1G 28G 5% /storage/emulated
モバイルネットワークのAPN設定には、予め主要MVNOの設定が登録されているので、該当MVNOを使う場合は、選択するだけで良くなっている。
ただし、APNの設定を正しく行っていても、データが流れないことがある(このときアンテナピクトは圏内表示になっている)。その時はモバイルネットワークの設定で優先ネットワークを一旦2Gにしてから再度3Gにすると(または機内モードのON/OFFで)、データが流れるようになった。
国際モデル(i)ではソフトバンク網の Band 1 (2GHz), Band 8 (900MHz) を掴む。ワイモバイルではタイプ1契約(スマホプラン、シェアプラン)または 4G-S 契約のSIMが対応。
北米モデル(a)では、公式ICS ROM にプラスエリア対応した状態の端末にROM焼きすれば、とりあえず掴んでいるよう。 電話アプリで *#*#4636#*#* にダイヤルし(SONY専用の *#*#7378423#*#* は使えない)、「携帯電話情報」を表示、メニューボタンを押して「無線バンドを選択」すると、USA Band と JAPAN Band を選択できる。(JAPAN Band を選択した後は優先ネットワークを2Gに設定できなくなる。)
データ専用SIMではいわゆるセルスタンバイ問題が発生。SMS付きSIMでは発生しない。
LegacyXperia や CyanogenMod をはじめ有用なコード・バイナリを提供してくださっている開発者、および解説文を書いてくださっている皆様に、この場を借りて感謝申し上げます。
なお、本稿は、先達による様々な調査検証の結果はあれど、それが探しづらいことから、個人的に調べ試した結果を整理してまとめた備忘録です。それ以上の意味はありません。海外端末の利用を推奨するものではなく、あくまで個人的な備忘録として整理したものなので、中には間違いや過不足等あるかもしれませんが、予めご承知おきください。
更新日 : 2016年06月08日 (11282)
CORY's twilight zone > Android 設定備忘録[an error occurred while processing this directive] > Xperia mini Pro SK17a (6.0 = Marshmallow)