CORY's twilight zone > Android 設定備忘録[an error occurred while processing this directive] > Xperia mini Pro SK17a (6.0 = Marshmallow)

Android 設定備忘録 Xperia mini Pro SK17a (6.0 = Marshmallow)

(20KB)

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 の最新情報日本語WikiInformation: 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 を焼いてみた

ソフマップ・ドットコム

導入前の準備

用意するもの

  1. 端末に必要なデータがある場合は保存しておく(以下の操作を行うことで端末内のデータは全て消える)
  2. class 10 (UHS-1) 以上の、新しい(内容が全て消えて構わない) microSDカードを用意する。このSDカードが内蔵ストレージになるので、使い方にもよるが、16GBか32GBが良さそう。新品でない場合は、全域を1パーティション、FAT32でフォーマットしておく。
  3. SONY標準の日本語IME「POBox Touch」をカスタムROMでも使う場合は、ICS公式ROMに含まれる /system/app/JapaneseIME.apk ファイルを sdcard にコピーしておくと良い。(少々手間はかかるが後で公式ROMイメージからも取得できる。)
  4. 端末のIMEI(数字15桁)を確認しておく(下記 8. で使う)
    「設定」→「端末情報」→「端末の状態」→「IMEI」
  5. Android SDK Tools を最新に更新
    adb (Android Debug Bridge) バージョン 1.0.32 以降が必要になるので、コマンドプロンプトから adb version と実行して確認し、上記対応バージョンが入っていなければ更新しておく。
  6. パソコン(Windows)にUSBドライバをインストール」の手順を済ませておく。最低限必要な物は Android SDK Platform-tools と Extras→Google USB Driver
  7. 《強く推奨》SONY純正 Update Service を使って初期化し、ダウンロードされたROMイメージを保存しておく。参考→Flashtool
  8. ブートローダーアンロックを行う(後述)
    この操作を行った後は、メーカーのサポートが無効になり、公式 Update Service 等も使えなくなる

※7は後で公式ROMに書き戻せるようにイメージファイルを取得・保管するのが目的なので、以前に行って(データを保管して)あれば今回は不要。ただし、ベースバンド部分はカスタムROMに含まれないので、端末自体がまっさらな場合(書き換えて壊してしまった場合を含む)は、先に公式ROMを焼いておく必要がある。

★一応、Relock すると公式 Update Service が使えるようになる。
【参考】 [GUIDE step by step] How To Re-lock Boot loader on Xperia Arc - xda-developers

カスタムROMを焼けるようにする (Bootloader unlock)

操作方法は 公式ページ 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
[an error occurred while processing this directive]
▲目次に戻る▲

カスタムROM導入(LegacyXperia CM13 の場合)

LegacyXperia CM13 (Android 6.0.1 Marshmallow) を Xperia mini pro に焼く例

  1. LegacyXperia Project 公式ページを参照し、自分の機種のコードネームを確認しておく。例:Xperia mini pro → mango、Xperia mini → smultron
  2. ROMイメージをダウンロードDownloads リンクを開き、mango(機種名) → cm-13.0 → 最新の .zipファイル(ROMイメージ)をダウンロード。
    SK17i/a で共通。両機種で異なるベースバンド部分は含まれていない(すでに入っている公式ROMの該当処理がそのまま使われる)
  3. Google Apps をダウンロード
    LegacyXperia CM13 では Mardon氏のパッケージが推奨されている。Xperia mini pro 用には MDPI (160DPI) の Mini をダウンロードする。
  4. 2.のROMイメージファイルを 7-zip File Manager 等で開き、中に入っている boot.img ファイルを適当な場所(以下の例では D:¥)にコピーする。
  5. 電源が切れている状態の端末の [VolUp] キーを押しながら、端末とWindowsパソコンをUSB接続。 "Android ADB Interface" として認識される。
  6. Windowsパソコンのコマンドプロンプトより、Android SDK Platform-tools に含まれる fastboot.exe で 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> 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 ファイルのタイムスタンプが変わっていなくても中身が変わっていることがあるので、アップデートの場合も毎回書き込むことを推奨。

  1. 端末の電源を入れ、画面にロゴが出たら [VolDown] キーを連打し、リカバリーモードに入る。
    CM13のリカバリーモードではタッチスクリーンが使える
  2. 【新規インストールの場合】 【同種のROMを更新する場合】
  3. Reboot system now を選択し一旦再起動。画面にロゴが出たら [VolDown] キーを連打し、再度リカバリーモードに入る。(リカバリーモードの Advanced → Reboot recovery は正常動作しない。)
  4. USBケーブルでパソコンと接続。
  5. Apply update → Apply from ADB で、本機の側を待ち受け状態にする。
  6. パソコンのコマンドプロンプトから、下記の要領で、ROMイメージファイル、Google Appsイメージファイルを書き込む。(11, 12 を繰り返す)
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 を書き込む)
  1. USBケーブルを外し、Reboot system now で端末を再起動。
  2. CM13ロゴが出て、数分で Android is starting... などの表示が出る。さらに数分待つと Welcome 画面が表示される。
    ロゴアニメーションが延々と繰り返す場合は、SDカードが認識されていない、上記手順が正しい順番で行われていない、ダウンロードしたROMイメージ等が壊れている、などの不具合が考えられるので、一旦電池を抜いて電源を落とし、最初からやり直す。
  3. Welcome 画面は英語で表示されるが、日本国内のSIMが入っている場合は、じきに自動認識され日本語に切り替わるので、少し待ってみる。手動で日本語を選択することもできるが、スクロールするうちにOSがフリーズすることがあった(再起動すれば復帰する)
  4. 日本語IMEが含まれていないので、Google play からインストールする。または、本機の公式ROM (4.1.B.0.587) に含まれている JapaneseIME.apk (POBOX Touch) を予め保存してあれば、それを後からインストールしても使える。
  5. LegacyXperia (CyanogenMod) に含まれる本機のキーボード配列ファイルにはバグがあるので、必要に応じ書き換える(後述)
Xperia mini Pro SK17a/i (WH) キーボード (30KB)

キーボードを使う

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

pm8xxx-keypad.kcm を書き換える

CyanogenMod の不具合で、言語切替キーが CapsLock として動作するため、そのままでは Xperia mini pro 内蔵キーボードで日本語入力への切り替えができない。

その修正と、他にも日本語入力に便利なようにキー配列を入れ替えた pm8xxx-keypad.kcm ファイルを以前 CM11 (Android 4.4) 用に作ったが、これがそのまま CM13 (Android 6.0) でも使える。

詳しいことは Android 4.4 の記事の「キーボードの配列を入れ替える」を参照

  1. 本機の開発者向けオプションを有効にする。「設定」→「端末情報」→「ビルド番号」を繰り返し7回タップ。
  2. 「設定」→「開発者向けオプション」→「Androidデバッグ」を有効にする。
  3. 本機のroot権限を使えるようにする。「設定」→「開発者向けオプション」→「ルートアクセス」で「ADBのみ」を選択。
  4. CM13の不具合修正に対応する kcm ファイルを用意する。
    自分で書くか、それが面倒ならばこれ→ pm8xxx-keypad.kcm をダウンロードして適宜書き換える。
  5. 4. のファイルを端末に送る。USB接続後MTPモードに切り替えて Windowsパソコンのエクスプローラでコピーしても良いし、adb push を使っても良い。
  6. 本機とパソコンをUSB接続し、コマンドプロンプトを起動。
  7. adb shell を起動。初回起動時は、本機の画面に「USBデバッグを許可しますか?」と確認する画面が出るので、OKする。
  8. 4. で用意した pm8xxx-keypad.kcm ファイルを本機の /system/usr/keychars/ に書き込み(元々あるファイルは予めファイル名を変更するなど保存しておく)、所有者を root:root、パーミッションを 644 に設定して、再起動。(下記に操作例)
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などにも残しておくと良い。

POBox Touch を入れる

本機(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 を開くとインストールできる。

▲目次に戻る▲
[an error occurred while processing this directive]

その他

「開発者向けオプション」を有効にする

最近の Android で一般的な仕様だが、USBデバッグなどを使うためには、「設定」→「端末情報」→「ビルド番号」欄を7回繰り返しタップして、設定メニューに「開発者向けオプション」を表示させる必要がある。

root権限を使う

CyanogenMod では、root権限(管理者権限)の使用可否をOSで設定できる。「設定」→「開発者向けオプション」→「ルートアクセス」で、無効/アプリのみ/ADBのみ/アプリとADB を選択できる。

root権限が必要なアプリを常用する場合を除き、通常は無効か、ADBのみにしておくことを推奨。

microSDカードを抜き差ししてパソコンで読み書きするのは現実的でない

LegacyXperia CM13 (Android 6.0) では microSD を内蔵ストレージとして利用しているため、インストール時に F2FS (Flash-Friendly File System) という特殊なフォーマットで初期化されている。よって Windows などから読み書きできない。

一部の Linux は対応しているようなので、データ救出などの場合は対応OSを使うことで直接読めそうだが、通常はNexusシリーズなどと同様に、USB接続のMTPモード(後述)を使うか、クラウドサービスを使うことになりそう。

USB接続したパソコンから本機内蔵ストレージのファイルを読み書きする

Android 6.0 では、USB接続しただけでは充電専用モードになり、内蔵ストレージを読み書きできない。

本機のロックを解除し、上端から下へスワイプして通知を開き、通知の一番下ある「USBを充電に使用」をタップすると、ファイル転送(MTP)に切り替えることができる。

▲目次に戻る▲

雑感

cm-13.0-20160418-UNOFFICIAL-LegacyXperia を焼いてみた

本稿執筆時点で最新の 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 KillerCM 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
78
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では発生しない。

▲目次に戻る▲

謝辞、おことわり

LegacyXperiaCyanogenMod をはじめ有用なコード・バイナリを提供してくださっている開発者、および解説文を書いてくださっている皆様に、この場を借りて感謝申し上げます。

なお、本稿は、先達による様々な調査検証の結果はあれど、それが探しづらいことから、個人的に調べ試した結果を整理してまとめた備忘録です。それ以上の意味はありません。海外端末の利用を推奨するものではなく、あくまで個人的な備忘録として整理したものなので、中には間違いや過不足等あるかもしれませんが、予めご承知おきください。

▲目次に戻る▲

改版履歴

2016.06.08
CM11 (Android 4.4) までのROM焼き記事から変更点を中心に抜粋・再構成して本稿初版とする

更新日 : 2016年06月08日 (3232)

CORY's twilight zone > Android 設定備忘録[an error occurred while processing this directive] > Xperia mini Pro SK17a (6.0 = Marshmallow)


« 短絡線 »
[ CORY's twilight zone | PC-98, FreeBSD(98), Mac OS X, Android | 鉄道・街 | 自然 | flickr | twitter (log) | YouTube | Contact ]

Copyright © 1996-2019 CORY / Kimagurenote. Some rights reserved:
Creative Commons Attribution-Noncommercial-Share alike 2.1 Japan.