Xperia pro/mini pro のOne Click Rootツールが出た…みたい2013/04/21 01:18

Xperia pro/mini proのroot取り、簡単に出来るようになったみたい。

XDA Developersにこんな情報が出てきた。
One Click Root [4.1.B.0.587/.431/ 4.0.2.A.0.62] All 2011 Xperias
http://forum.xda-developers.com/showthread.php?t=2219781

ICSの最新版で、そのままroot取れるようだが、自分の所では未確認。

Xperia pro MK16iのICS化とroot取り、その後の徹底カスタマイズあれこれ2013/03/11 19:15

※警告!
以下の情報は、自分用の設定メモを、公開用に少し書き直したものである。自分用のカス
タマイズなので、同じようにやって、使いやすくなる訳ではない。あくまでも、参考とし
て見て欲しい。
以下の操作で生じたあらゆるトラブルに関して、当方では一切の責任を負わないので、そ
の事を承知した上で、操作すること。
Linuxの簡単なコマンド類の操作等の知識は必要なので、スキル不足と思ったら手を出さ
ないのが吉。

=================================================
ICS化とroot取り
=================================================

MK16iは、SUS(Sony Mobile Update Service)で簡単に公式ICS(Android4.0)化できる。
ただし、ICS化してしまうとrootが取れないようだ。また、GB(Android2.3)でも、ビルド
番号「4.0.2.A.0.58」までしかrootは取れず、「4.0.2.A.0.62」の場合はやはりrootが取
れない。

では、どうやってrootを取るか。ブートローダーをアンロックして、やりたい放題って手
もあるが、それなりに弊害もあるので、別のアプローチで行く。一度、rootの取れるバー
ジョンに戻して、仕掛けをしてから、ICSに上げて、改めてrootを取るのだ。この手法は、
既に多くのサイトで紹介されているが、時期外れな今頃に、これをやろうとすると、
「ツールのバージョンが上がってしまってうまく動かない」とか、「リンク切れで、その
ファイルどこにある?」状態で右往左往。以下では、現時点で有効なリンクを記載してお
く(リンク切れになったらご容赦を)。

※以下、作業用として、Windows PCを使用している。特に説明の無いものはPC上での作業。
 以下の説明で「端末」とあるのは「Xperia pro MK16i」の事である。

1) 先ず、rootの取れるバージョン「4.0.2.A.0.58」のFTFファイルを入手する。
http://forum.xda-developers.com/showthread.php?t=1642480
ここの MK16i 4.0.2.A.0.58 (1249-8108) , ALT1 , ALT2 , ALT3 の所で、ALT1 ALT2 ALT3
のいずれかのリンクから MK16i_4.0.2.A.0.58_(1249-8108).ftf をダウンロードする。

2) FTFを書き込むツールflashtoolを入手する。
http://www.filecrop.com/flashtool-0.9-windows.exe.html
ここから、以下のファイルを入手(最新版(?)の0.9.10.1での動作確認はしてないので、使
えるかどうかは不明。0.9.5.0なら実績あり)。
flashtool-0.9.5.0-windows.exe

3) 以下を参考にして、ダウングレードを掛ける。
「新しい携帯電話のソフトウェアバージョンが利用できます(4.0.2.A.0.62)は罠です」
http://blogs.yahoo.co.jp/momo_poem/66127784.html
このサイトでは、Xperia mini pro(SK17i)での説明となっているが、手順は一緒。使用す
るファイル類は上記のものを使用すればOKだ。
・flashtoolをインストールする(上記で入手したexe形式のファイルを実行すればOK)
・FTFファイルを、flashtoolをインストールしたパスの下のfirmwaresというフォルダに置く。
・MK16iの電源を完全に落として、USBケーブルからも外しておく。
・flashtoolを立ち上げて、一番左のイナズマのようなボタン(Flash)を押す。
・Mode Selectorのダイアログが出るので、「Flashmode」のまま、OKを押す。
・Firmware Selectionの画面が出たら、MK16iのデバイスが表示されているのを確認。複数
 のFTFファイルを入れているようなら、0.58のバージョンを選択。
 右上の「Wipe User Data」のチェックを外すと、ユーザーデータを消さないでROMイメ
 ージを書き込んでくれるらしいが、ここは、外さないで、綺麗さっぱり上書きする事にす
 る。
・OKを押して、画面の指示に従って、端末を接続する。
 端末の電源はOFFのまま、「Backボタン」を押しながら、USBケーブルを接続!
 この後、しばらく待っていれば、ROMイメージの書き込みが終わる。
 終了のメッセージが出たら、USBケーブルを外して、端末の電源を入れる。無事立ち上
 がれば、ダウングレード成功!
 端末情報を見て、ビルド番号が「4.0.2.A.0.58」になっているのを確認しておく。

4) ダウングレード状態でrootを取る。
「Xperia 2011 Easy Rooting Toolkit(zergRush)」でrootを取る。
以下を参考にすれば良い。
「2011年のXperiaスマートフォンをワンクリックでroot化できるツール「 Xperia 2011 Easy Rooting Toolkit」が公開」
http://juggly.cn/archives/44017.html
・以下から、DooMLoRD_v4_ROOT-zergRush-busybox-su.zip をダウンロード。
「[04/Jan][ROOTING/UNROOTING] Xperia 2011 Easy Rooting Toolkit [v4.0](zergRush Exploit)」
http://forum.xda-developers.com/showthread.php?t=1320350
・端末のUSBデバッグを有効化し、PCに接続。(PC Companionが起動した場合はスキップ)
・Windows PC上でzipファイルを解凍し、フォルダ内の”runme”を実行。

5) ICS化前の仕込み
以下の手順で、root化の前準備をする。
・PC上で以下から XperiaRoot.rev3 をダウンロードして解凍
http://www.mediafire.com/?vrlkpgip1ilp78b
・端末のUSBデバッグを有効化、提供元不明のアプリのインストールを許可
・端末をUSBケーブルでPCと接続
・解凍した XperiaRoot 内の「01-local-prop.cmd」を実行
 準備が終わったら、USBケーブルは外しておく。

6) ICSにアップグレード
SUS(SONY Update Service)で、ICSにアップデートする。
SUSの指示に従ってアップデートする。
インストールのタイプは、必ず「ソフトウェア更新」を指定する事。

7) 仕込んだ仕掛けでroot取り
以下の手順でrootを取得する。
・端末のUSBデバッグを有効化、提供元不明のアプリのインストールを許可
・端末をUSBケーブルでPCと接続
・上記で解凍した XperiaRoot 内の「02-push-root-files.cmd」を実行
・端末が再起動するので、立ち上がった後、rootが取れているか確認

ICSでのroot取りは以上。

参考情報

XperiaRootのroot取りの方法:
古くからあるroot取りの手法で、/data/local.propに以下の行を書き込んでおくと、
「adbdで接続されるときにroot状態となる」というAndroid自体が持つ機能を利用する
ものだ。
===
ro.kernel.qemu=1
===
rootが取れる古いバージョンで、これを仕込んでんおいて、ICSにアップデートする。
/data を初期化せずに、ICS化できれば、後は、adb接続でrootになっているので、好き
勝手にあれこれできる。adb接続経由で、root化するものをXperiaに送り込めば良い訳だ。


=================================================
ICSでのroot取りの後でやる事
=================================================

Xperia pro MK16iをICS化すると、「動作が重い」とか「電池の減りが早い」とか、あま
り良い事が無いように言われている。でも、ICSにすると便利になる部分もある。rootが
取れれば、後はカスタマイズ次第で、ICSでも快適になる。
以下、root取ってなくてもできる事もあるけど、やった事を書いておく。以下の事を全部
やる必要は無いので、好みに合わせてやってみると良いだろう。

1. busybox をインストール
「busyboxって何?」なんて思っている人は、悪いことは言わない、ここで、退散すべし!
何はともあれ、Google Playから、「BusyBox」をインストール。
これを起動して、/system/xbin に busybox を Smart Installしておく。

2. 端末単体でいろいろ操作できるように、端末エミュレータもインストール
端末エミュレータ「Terminal Emulator」もGoogle Playからインストール。
ついでに、便利コマンドの設定もしておく。

・system領域を書き込み可能にする/読み込み専用に戻すコマンド
ファイル名:
/system/xbin/system_rw
内容:
===
#!/system/bin/sh
/system/bin/mount -o remount,rw /dev/block/mtdblock0 /system
===

ファイル名:
/system/xbin/system_ro
内容:
===
#!/system/bin/sh
/system/bin/mount -o remount,ro /dev/block/mtdblock0 /system
===

以上を、Terminal Emulatorから、su でroot権限になって、/system を rw で remountし
てから、 vi でそれぞれの内容(===で括られた内側)のファイルを書き込む。
chmodで755の設定も忘れずに!

3. フォントの変更
使用するフォントは、以前に作った絵文字統合半濁点強調なもの…
http://poe.asablo.jp/blog/2012/01/29/6310231
DroidSansJapanese.ttf
これを、system/fonts/ にコピーする。パーミッションやオーナーも確認して、必要に
応じて変更しておく。こんな感じ…
chmod 644 /system/fonts/DroidSansJapanese.ttf
/system/bin/chown root.root /system/fonts/DroidSansJapanese.ttf
これだけだと、ICS(Android4.0)になって、フォントが認識されなくなったので、以下
のファイルも修正する。
/system/etc/fallback_fonts.xml
このファイルの「<familyset>」の後の行に、以下を追加する。
===
<family>
  <fileset>
    <file>DroidSansJapanese.ttf</file>
  </fileset>
</family>
===
修正後、端末をリブートすれば、フォントが認識される。
これを参考に、好みのフォントを導入すれば、中華フォントと縁切り出来る。

4. 必要なアプリをインストール (その1)
以下のものを入れる。
BusyBox            (上記「1.」で済)
Terminal Emulator  (上記「2.」で済)
---
ATOK
 有償だけど、辞書でかいので、入力方法としては、これを使うのだ!
Jota+
aGrep
 上記2つは、テキストエディタの定番と、テキストファイルの検索アプリ。
Ghost Commander File Manager
 2画面ファイラー。キーボードからの操作も可能な便利モノ。
SMB plugin for Ghost Commander
 上記ファイラーで、Windows PCの共有フォルダーにアクセスする場合に必要。
LauncherPro
PreHome
 上記2つは、ホームアプリ。組み合わせて使うと、便利。PreHomeをホームアプリとして
 登録して、PreHomeで「実際に使うHome」でLauncherProを指定する。
 この形で使うと、HOMEキー押下で、タスク切り替えや不要アプリの強制終了が手軽にで
 きる。
K-9 Mail
 定番のメールクライアント

5. CWM(ClockworkMod)導入
いろいろと便利なので、CWMを端末に導入しておく。Playストアから、以下のアプリをイ
ンストール。
x-Parts
これを起動して、「INSTALLS」から「install CWM」を実行。Instal Completeが出れば
CWMの導入完了。
CWMの起動は、端末の電源が切れている状態から、電源入れて、「SONY」のロゴが出てい
る最中に、何がボタンを連打すればOK。メニューボタン、戻るボタン、ボリュームアップ/
ダウンのどれでもOK。ただし、HOMEボタンは、CWMで「決定/実行」の動作をするので、
連打してしまうとCWMが起動した途端、rebootを実行してしまうので、使わないのが吉。

この後、システム領域を触るので、ここで、1度、CWMでフルバックアップを取っておく。

6. メール受信等のLED通知の不具合の修正
ICS化で、ひとつ困った問題が出る。「画面ロック時にメールを受信すると点滅するはずの
LEDが点滅しない」のだ。この不具合、公式に、修正される予定はない(メーカー側は、こ
の件を知っているが対応する気は無いらしい)。仕方ないので、以下のパッチを当てる事
にする。
[Update 17/09/2012]ArcatarcNotificationLedFix for 4.1.B.0.587 Odexed+Deodex Patch
http://forum.xda-developers.com/showthread.php?t=1840114

ここから、以下のファイルをダウンロードする。
Notification_Led_Fix+Deodex_Patch_4.1.B.0.587.zip
これを、端末のmicroSDに転送する。場所はどこでもいいけど、microSDのルートフォルダ
ーあたりに突っ込んでおけばOK。一度、端末の電源を切って、電源を入れなおしてCWMを起動。
「install zip from sdcard」で、上記のzipファイルを指定してパッチをインストール。
その後、リブートする。アプリの最適化とか走って、ちょっと時間掛かるけど、正常に立
ち上がれば、パッチ適用完了。
メール受信させて確認してみたら、LED通知が正常に行われるようになった。
ちなみに、このパッチ、以下のものを入れ替える。framework.jarが上書きされるので、セ
ルスタンバイ問題でframework.jarに手をいれるなら、このパッチを当てた後に行う事!
===
system/framework/
 android.policy.jar
 apache-xml.jar
 bouncycastle.jar
 core.jar
 core-junit.jar
 ext.jar
 framework.jar
 services.jar
===

7. SIMカードの挿入と設定
SIMは、低速で安価だけど、いろいろな意味で安定して使える「IIJmio」を使用している。
アクセスポイントの設定は…、IIJmioの説明書を参照の事。
これを挿して、データ通信できるようになった。でも、データ通信専用SIMのセルスタンバ
イ問題と、電波強度が表示されない問題が出る。この対策は、後述。

8. build.prop の修正 (「魔法の5行」等の省エネ設定の導入)
/system/build.pro に以下を追加すると、かなり省エネになるようだ。でも、もう5行ど
ころじゃない量だ。それぞれの定義が、これで正しいのかどうかは、実は、良く分からな
い。まぁ、これで動いているから、良しとしよう。
注意として、PC上での編集時は「文字コードはUTF8でBOM無し、改行コードはLFのみ」と
する事。追加位置は、ファイルの先頭。先に定義した項目が優先するらしい。
追加定義は、以下の通り(===の内側を使う事)。
===
### User append ###
# 休止状態への高速移行
ro.semc.enable.fast_dormancy=true

# アイドル時に低電力モード
ro.ril.disable.power.collapse=1 

# 緊急ダイヤルコード
ro.ril.oem.ecclist=110,118,119

# --- 3G 設定 ---
# A5/2GSM用プロトコル
ro.ril.enable.a52=0
# GPRS用暗号化アルゴリズム
ro.ril.enable.a53=1
# HSDPAカテゴリ(受信能力) 1..28
#  1,2:1.2Mbit/s 3,4:1.8Mbit/s 5,6:3.6Mbit/s 7,8: 7.2Mbit/s 9:10.1Mbit/s 10:14.0Mbit/s ...
ro.ril.hsdpa.category=8
# HSUPAカテゴリ(送信能力) 1..9
#  1:0.73Mbit/s 2,3:1,46Mbit/s 4:2.93Mbit/s 5:2.00Mbit/s 6:5.76Mbit/s 7:11.5Mbit/s ...
ro.ril.hsupa.category=5
# 0=UMTS r99  1=HSDPAのみ  2=HSDPA+HSUPA
ro.ril.hsxpa=2
# 通信のタイムアウト
ro.ril.fast.dormancy.timeout=3
# FOMAプラスエリア設定
#  Xperia pro MK16i では、FOMAプラスエリア非対応なので0指定
ro.ril.enable.dcm.feature=0
# 以下の通信業者のうち、数字で指定した物は何かを除外する?
#  docomo:44010 softbank:44020
ro.ril.disable.fd.plmn.prefix=44010
# SDR(Software Defined Radio)を無効
ro.ril.enable.sdr=0
# ソフトウェア無線の無効設定?
ro.ril.oem.mosms.mode=1
# ネットワークモード
#  0=WCDMA優先 1=GSMのみ 2=WCDMAのみ 3=WCDMA/GSMの強いほう 4=CDMA/EVDO
ro.telephony.default_network=2
# 2で「不確定なAGPSを許可する」
ro.ril.def.agps.mode=2
# 2で「AGPSモード」?
ro.ril.def.agps.feature=2

# --- Wi-Fi 設定 ---
# Wi-Fiアクセスポイントのスキャンインターバル(sec)
wifi.supplicant_scan_interval=180

### End (User append) ###
===

9. FMラジオの日本対応
周波数帯を日本のものにする。以下の内容のファイルを「custom_settings.xml」として
作成。「改行コードはLFのみ」とする。
===
<?xml version="1.0" encoding="UTF-8"?>
<settings version="1">
    <setting key="frequency-band" runtime="false">Japanese</setting>
    <setting key="frequency-least-step" runtime="false">100</setting>
</settings>
===
これを、以下の場所に置く。fmradioは、mkdirで作成する事。
/system/etc/customization/settings/com/sonyericsson/fmradio/

10. 必要なアプリをインストール (その2)
以下のものを入れる。
親筆2
 手書きのメモ帳って感じのもの。
ジョルテ
 カレンダーとして利用。六曜が表示できるので、縁起担ぐ場合とかに必須。
RealCalc Scientific Calculator
 関数電卓
Droid48
 伝説の逆ポーランド記法なプログラミング電卓。
Screebl Lite - Battery Saver
 端末の傾きを監視して、手で持ってないとみなされる時、端末をロックする。机に置き
 っぱなしとかで、素早くスリープして、節電できる。
Screen Off FX
 電源ボタンが押しにくいので、これを導入。
 今まで愛用していた「Screen Off and Lock」は、ICSにしてから、うまく動かない
 (OFF時に、画面は真っ黒になるが、バックライトが点きっぱなしになる)ので、こ
 ちらに乗り換え。
Firefox
 ウェブブラウザ。まぁ、この辺は、お好みで。PC上でFirefox使っている場合、PC上との
 同期を設定するとかなり便利。
DroidWing FREE
 広辞苑等の辞書データを使って、辞書引きでる。
駅探★乗換案内
 電車移動のお供。
twicca
twitpic プラグイン for twicca
翻訳連携 プラグイン for twicca
下書きプラグイン for twicca
 以上は、Twitterのクライアントとプラグイン。
Wifi Analyzer
 無線LANの電波状況を確認するのに便利。
DigiClock Widget
 ホーム画面に置く時計。
世界天気時計
 ホーム画面に置く天気予報。
Elixir 2
 ステータスバーにあれこれ置けるので、便利。上記の「Screen Off FX」も、これでス
 テータスバー上から実行できるようにした。
docomo絵文字マッシュルーム
 名前の通り。絵文字を入力するのに便利。
顔文字辞書
 ATOKのオプション辞書。

開発終了で、Google Playから入手出来ないFlashは、以下から入手。
http://helpx.adobe.com/flash-player/kb/archived-flash-player-versions.html
ここの以下のAPKをダウンロードしてインストール。
Flash Player for Android 4.0 archives
 Flash Player 11.1 for Android 4.0 (11.1.115.47)
ファイラーからAPKファイルを直接指定してインストール後、実行してFirefoxでの設定操
作をしておく事。

11. データ専用SIMのセルスタンバイ対策
セルスタンバイ対策、これを解決しないとすっきりしない。
先ず、AndroidSDKのインストールをしておく。手順は、以下のサイトを参照の事。
AndroidSDKインストール手順2012年12月(ADT Bundle版)
http://smartphone-zine.com/dokuwiki/android/020_development/0010_environment/0070_installdecember2012.html
Java6のJDKを入れて、ADT BundleでAndroidSDKをインストールしちゃう。
今の所、開発するとかではないので、SDKの使い方云々は、置いておく。
さて、環境は整ったので、手動でセルスタンバイのパッチを…と思ったら、上記の「メー
ル受信等のLED通知の不具合の修正」で、修正対象のframework.jarが、非deodex状態
のようだ。素直に、以下のものが使える。
プローブちゃん Android + データ専用 SIM での動作修正パッチ
http://bl.oov.ch/2012/01/android-sim.html
ここから、
datasim_framework_jar_patcher_20120317.zip
http://test.oov.ch/android/datasim_framework_jar_patcher_20120317.zip
をダウンロードして、展開しておく。
ここで、失敗時の対策として、一度、CWMでバックアップを取っておく。丸ごとバックアッ
プなので、失敗しても、丸ごとリストアすれば良いだけだ。
USBデバッグモードにしておいてから、パッチを適用しよう。
パッチの実行中、「緊急通報のみ」の表示の無効化云々の確認の所は、「モード 0」
(変更しない)を選ぶ事(無効化の1を選ぶと、途中で失敗する)。
ちょっと時間掛かるけど、パッチの当たった framework.jar が生成される。これを、
手動で/system/framework内に書き戻して、端末を再起動。
CWMで「Wipe cache partition」と、「advanced」の中にある「Wipe Dalvik Cache」
を実行。その後、起動させればOK。
特にトラブルもなく、パッチ当て成功した。
ここで、もう一度、CWMでバックアップを取っておこう。何かあっても、この時点まで
引き戻せる。

12. 戻る・ホーム・メニューのボタン間のやらた眩しいLEDの輝度調整
以下のファイルを修正する。
/system/etc/hw_config.sh
このファイルの58行目を以下の様に修正する。
echo 4000 >$dev/button-backlight/max_current
      ↓
echo 500 >$dev/button-backlight/max_current
修正後、端末を再起動する。
ちなみに、ここを400にすると、LEDが全然光らなくなった。完全消灯したいなら、400以下
の数値にすれば良さそうだ。
ちなみに、$dev/tally-light/max_current の行を触れって情報もあるようだが、試してみ
たが、輝度の変化は無かった。tally-lightは、名前の通り、カメラ撮影時の撮影に入る直
前(シャターボタンを押したままのタイミング)で撮影対象者にカメラ位置を知らせる為の
フラッシュ用LEDの発光の事ではないだろうか?

13. ゴミ掃除(不要なプリインストールアプリの削除)
使いもしないアプリが内蔵メモリを圧迫している。いらないものは、消す! その準備の為
に、以下のアプリをインストール。
Titanium Backup ★ root
インストールできたら、これを起動して、「バックアップ/リストア」のタブをタッチして、
アプリ一覧を表示。ここで、「MENUキー」→「バッチ処理…」で、「バックアップ:全ユー
ザーアプリ+システムデータ」で全選択状態でバックアップを取っておく。
後は、「いらんもんは消せ!」だ。バックアップは取れているので、すぐ元には戻せるし、
ばっさり切り捨てよう。Titanium Backup ★ rootで、以下の物を消した。
===
Lets Golf HD! 4.0.6
McAfee Security 1.2.0.141
Moxier Pro 3.2.0
Timescape 1.1.A.0.0
Timescape ウィジェット 1.1.A.0.0
Track ID 3.41.26
UEFA.com 1.6.0
UEFA.com 1.0.0
Xperia HotShots 0.1.1
POBox Touch 4.4
中国語キーボード 4.1.31
Wisepilot 4.5
PlayNow 1.11.2
店頭用デモ 2.16.1
友達のゲームとアプリケーション 1.1.A.0.1
ANT Radio Service 2.4
ANT Wireless State Notifier 1.0.1
ANTHalService 4.0.4-tL1_3w
Exchange サービス 4.1
Facebook 2.1
Facebook CalendarSync 2.1.A.0.0
Facebook extansion 2.1.A.0.0
FBiX Music Likes 2.1.A.0.0
FBiX Post Viewer 1.1.A.0.0
FBiX Proxy 1.1.A.0.0
FBiX Setup 2.1.A.0.0
NeoReader 1.00.38
Woody 1.0
Sakura 1.0
Xperia Sync 1.0.0
お楽しみダウンロード 2.2.5
Live Wallpaper Picker 4.0.4-tL1_3w
サウンドビジュアル壁紙 4.0.4.-tL1_3w
マジックスモーク壁紙 4.0.4.-tL1_3w
ニュースと天気 1.3.04
フェーズビーム 1.0
ブラックホーム 1.0
バブル 1.0
天気ウィジェット 1.1.A.0.1
世界時計 2.1.2
デジタル時計 2.1.2
デジタル時計 1.0
セットアップガイド 1.0
サポート 4.1.33
ミュージック 3.1.A.0.8
ミュージックプレーヤー1.1.A.0.3
スマートコネクト 5.0.12
ビジネスセンター 1.0.8
===
もっと消せると思うが、かなりメモリも空いたので、これくらいにしておく。
なお、Titanium Backupでアプリを強制的に「アンインストール!」で削除しても、Dalvik
cacheにいろいろ残骸が残っているので、以下のいずれかで、掃除しておこう。
・CWMからお掃除する
 端末をリブートしてCWMを起動。メニューの「advanced」から「Wipe Dalvik Cache」
 を実行。その後、リブート。
・Titanium Backupからお掃除(寄付版の機能)
 Titanium Backupを起動して、メニューから「ストレージ」の「Dalvikキャッシュの
 消去」を実行する。

14. アプリのSDカードへの移動
さらに本体側のメモリーを空けるため、アプリのSDカードへの移動も行う。
「設定」→「アプリ」でアプリの一覧を表示してから、それぞれのアプリをタッチして、
「アプリ情報」を表示する。ここで「SDカードに移動」が可能な物は、できるだけ移動し
ておく。ただし、常駐物は移動しない方が安定して動きそうなので、移動しない事。

15. 必要なアプリをインストール (その3)
メモリも結構空いたので、ちょっとデカイアプリを入れておく。
7notes with mazec (amz7nwm 1.5.8)
 これ、手書き文字認識で、識字率がかなり高く、結構便利なのだ。以前に、Amazonの
 amazon appsで、1日限定無料アプリで出ていた時に入手しておいたもの。普通に購入す
 ると、結構高額だけど、それだけの対価払っても価値あるおすすめアプリ。
 ひとつ注意事項。こいつは、SDカードに移動してはいけない。SDカードに移動しちゃう
 と、リブート後に使えなくなっちゃう(リブート後、毎回、再設定が必要)。75MBもある
 アプリなので、SDカードに移したいんだけど、残念だ。公式見解でも、何らかの対策を
 考える気はないらしい…
 (FAQか) 再起動するとmazecの設定が外れる
 http://product.metamoji.com/android_top/news/20111216-10.html

Keyboard Manager (root users)
 キーボードを閉じて縦持ち時は、手書き文字認識のmazec、キーボードを出して横持ちの
 時は、ATOKを使いたい。キーボードの出し入れで入力方法を自動切り替えしたかったの
 で、これを導入。外付けキーボード接続時の入力方法まで指定できる。「Start on boot」
 にチェックを入れておけば、リブートしても、自動起動する。
水準器プラス
 住宅の床面の水平点検に便利。日本列島、地盤変動多発なようで、お家傾いたら困るも
 んね。
手帳の付録
 ビジネス手帳のおまけで付いてくる便利情報ってコンセプトのアプリ。
ソニーの電子書籍 Reader
Reader拡張機能
 以上2つは電子書籍アプリ。SONYポイントを乱発するReader Storeで書籍買う事が多い
 ので、これを入れておく。
BASIC!
 名前の通り、BASIC言語の実行環境。なかなか高機能。
Luarida
 Lua言語の実行環境。簡単なツール作るとかなら、これが便利。root権限の必要なシェル
 スクリプトとかも、これを使うと起動できる。自作プログラムをホーム画面に配置できる
 ので、普通のアプリ感覚で使える。
CopiPe - コピペツール 日本語版
 Jota+との組み合わせで、現在の日付や時刻をテキストエディタ中で挿入するのに、これ
 が便利。
見ながらメモ
 Webサイトの閲覧中とかで、ちょっとメモしたい事あった時に便利。
QRコードスキャナー
 名前の通り。商品のバーコードも読めるので、書籍管理とかで便利。
NHKネットラジオ らじる★らじる
radiko.jp for Android
Raziko
 以上3つは、ネット経由で国内のラジオ聞くのに必須。
Meridian メディアプレイヤー
 音楽プレーヤー。
目覚まし時計(Alarm) Xtreme Free
 標準で入っている目覚まし時計が、何か正常に動かなかったので、これを導入。

16. 母艦PCとのファイル同期
クラウド経由でのファイル同期をPCとの間で行うとか、とても便利だけど、セキュリティ
面での不安がある。ファイルの同期とか、自宅に帰った時に出来ればいいので、自宅の無
線LAN環境下で、PCと直接同期させる事にする。以下のアプリが便利そうなので導入。
FolderSync Lite
これ、かなり多機能だけど、母艦PC(Windows8)とSMBで同期を取るだけの形で使用。

17. 内蔵キーボードのキーマップを調整
内蔵キーボードでは、入力出来ない記号とか結構あるし、ICSではCtrlキーもサポートされ
ているので、キーマップをあれこれ触って、有効活用しよう。
なお、入力方法に「POBox Touch」を選択した場合は、以下の方法ではキーマップの調整が
出来ないので、「ATOK」や「nicoWnnG IME」などの内蔵キーボードをサポートしたものを
利用するようにしよう(自分は「ATOK」使い)。それから、アプリによっては、以下で定義
したものが部分的に無効化される場合もあるので、万能ではない事も念頭に置いておく事。
先ず、ATOK使いなので、「Sym」キーは意味がない。この「Sym」キー、入力方法が
「外国語キーボード」の時に記号や絵文字を入力する為のものだが、ATOKでは、タッチ用
のソフトウエアキーボードが出てきてしまうので、ちょっと邪魔。これをCtrlキーに変更す
る。以下のファイルの最終行よりちょっと前にあるPICTSYMBOLSの行を修正する。
修正対象ファイル:
/system/usr/keylayout/pm8058-keypad.kl
修正箇所: (最終行より1行前)
key 127   PICTSYMBOLS       WAKE_DROPPED
これを、以下に書き換え:
key 127   CTRL_LEFT         WAKE_DROPPED
以下の2つのファイルも修正しておく(この2つは、どこに影響するか不明。特に修正しなく
ても良い)。
修正対象ファイル:
/system/usr/keyboard-config/scancode_mapping.xml
修正箇所: (47行目)
<MappingMetaKey scancode="127" id="META_SYMBOL" />
これを、以下に書き換え:
<MappingMetaKey scancode="127" id="META_CTRL_LEFT" />
もう一つ、修正。
修正対象ファイル:
/system/usr/keyboard-config/layouts/qwerty-en.xml
修正箇所: (51行目、107行目、163行目)
<MetaKey id="META_SYMBOL" />
これらを、以下に書き換え:
<MetaKey id="META_CTRL_LEFT" />
続いて、キーマップを触っていこう。基本的には、GBの時にやったキーマップに近い形に
する。ただし、「Sym」キーを有効活用した形にしてみた。
修正対象ファイル:
/system/usr/keychars/pm8058-keypad.kcm
このファイルは、テキスト形式のファイルで、書式は見ればすぐ分かるものになっている。
主に、未定義になっている「shift+alt, capslock+alt:」の部分にいくつか文字を割り当
てる。他にも、便利そうな定義をしてみた。
キーの割り当ては、以下の通り。

入力文字  キー操作    コメント
------------------------------------------------------------------------
+++ 制御文字 +++     SOH(0x01)~SUB(0x1a)は、pm8058-keypad.klに
              CTRL_LEFTを定義するだけで入力できる。
SOH(0x01) SYM+A    Ctrl+A 全選択
STX(0x02) SYM+B    Ctrl+B
ETX(0x03) SYM+C    Ctrl+C コピー(複写)/シェル(sh)で、フォアグラウンドプロセスの強制終了
EOT(0x04) SYM+D    Ctrl+D シェル(sh)で、入力の終了(End of file)
ENQ(0x05) SYM+E    Ctrl+E
ACK(0x06) SYM+F    Ctrl+F
BEL(0x07) SYM+G    Ctrl+G
BS(0x08)  SYM+H    Ctrl+H バックスペース
HT(0x09)  SYM+I    Ctrl+I TAB
LF(0x0a)  SYM+J    Ctrl+J ENTER
VT(0x0b)  SYM+K    Ctrl+K
FF(0x0c)  SYM+L    Ctrl+L
CR(0x0d)  SYM+M    Ctrl+M
SO(0x0e)  SYM+N    Ctrl+N
SI(0x0f)  SYM+O    Ctrl+O
DLE(0x10) SYM+P    Ctrl+P
DC1(0x11) SYM+Q    Ctrl+Q
DC2(0x12) SYM+R    Ctrl+R
DC3(0x13) SYM+S    Ctrl+S
DC4(0x14) SYM+T    Ctrl+T
NAK(0x15) SYM+U    Ctrl+U
SYN(0x16) SYM+V    Ctrl+V ペースト(貼り付け)
ETB(0x17) SYM+W    Ctrl+W
CAN(0x18) SYM+X    Ctrl+X カット(切り取り)
EM(0x19)  SYM+Y    Ctrl+Y
SUB(0x1a) SYM+Z    Ctrl+Z アンドゥ(元に戻す)/シェル(sh)で、フォアグラウンドプロセスの一時停止
+++ 制御文字(その2) +++ 上記で入力できない制御文字を定義
ESC(0x1b) ALT+SHIFT+Q Ctrl+[ ESC(エスケープ)
FS(0x1c)  ALT+SHIFT+W Ctrl+\
GS(0x1d)  ALT+SHIFT+E Ctrl+]
RS(0x1e)  ALT+SHIFT+R Ctrl+^
US(0x1f)  ALT+SHIFT+T Ctrl+_
+++ 制御文字(その3) +++ 良く使うショートカットキーはALT+SHIFTでも入力できるようにする。
SOH(0x01) ALT+SHIFT+A Ctrl+A 全選択
ETX(0x03) ALT+SHIFT+C Ctrl+C コピー(複写)/シェル(sh)で、フォアグラウンドプロセスの強制終了
EOT(0x04) ALT+SHIFT+D Ctrl+D シェル(sh)で、入力の終了(End of file)
SYN(0x16) ALT+SHIFT+V Ctrl+V ペースト(貼り付け)
CAN(0x18) ALT+SHIFT+X Ctrl+X カット(切り取り)
SUB(0x1a) ALT+SHIFT+Z Ctrl+Z アンドゥ(元に戻す)/シェル(sh)で、フォアグラウンドプロセスの一時停止
+++ 記号 +++
 <    ALT+SHIFT+,
 >    ALT+SHIFT+.
 [    ALT+SHIFT+K  ブラケット(bracket)
 \    ALT+SHIFT+B
 ]    ALT+SHIFT+L  ブラケット(bracket)
 ^    ALT+SHIFT+O  カレット(caret)
 `    ALT+SHIFT+'  バッククォート
 {    ALT+SHIFT+N  ブレース(brace)
 |    ALT+SHIFT+?  パイプ(vertical bar)
 }    ALT+SHIFT+M  ブレース(brace)
 ~    ALT+SHIFT+P  チルダ
 -    SHIFT+'     マイナス … ALT+Fの位置では入力しにくいので、ここにも追加
+++ 特殊キー +++
BACK    ALT+SHIFT+G 戻る
HOME    ALT+SHIFT+H ホーム
MENU    ALT+SHIFT+J メニュー
------------------------------------------------------------------------
※ ALTキーは「■」マークのキー

修正量が多いので、修正後のファイルは、以下のCWM形式のファイル内を参照の事。以上
の4つのファイルを、簡単に導入できるように、CWMで適用できる形にしてみた。
Xperia_MK16_ICS_KeyMap_1.1.zip
これを、展開とかせず、そのまま、端末のmicroSDに転送する。場所はどこでもいいけど、
microSDのルートフォルダーあたりに突っ込んでおけばOK。
作業前に、何かトラブルがあった時の為の対策として、CWMで事前にバックアップを取っ
ておく事。もし、以下の作業が失敗した場合は、このバックアップを使って元に戻せば良
い。バックアップが取れたら、一度端末の電源を切って、電源を入れなおしてCWMを起動。
「install zip from sdcard」で、上記のzipファイルを指定してインストール。その後、
リブートする。正常に立ち上がれば、適用完了。
ATOKと特殊キーの組み合わせで、ちょっと問題あり。ATOKで英字入力モードの場合、以下
の3つが無視されるようだ。
「BACK(ALT+SHIFT+G)」、「HOME(ALT+SHIFT+H)」、「MENU(ALT+SHIFT+J)」
日本語入力モードの場合はこの問題は出ないので、日本語入力モードに切り替えて回避す
るか、普通にBACK・HOME・MENUキーを使うか、まぁ、使い方を工夫すれば良いだろう。
他にも、アプリ毎や入力方式毎に、pm8058-keypad.kcm で定義した内容が無視される場合
がある。これは、各アプリや入力方式側での問題なので、なんとかして欲しいなら、各アプ
リの作者や会社に要望を出すしかないだろう。

18. 外付けキーボード
内蔵のキーボード、それなりに便利なんだけど、座ってテーブルもある場合とか、やっぱ
り大きなキーボードを使いたい。ICS(Android4.0)になって、Xperiaでも、BluetoothのHID
プロファイルが実装されたので、Bluetoothなキーボードは簡単につながるようになった。
これは、有効利用するしかない…んだけど、悲しいかな、キーマップ情報は汎用のものし
か用意されていないので、日本語キーボードだと、キートップの文字・記号と入力データ
にズレが生じてしまう。なんとかしたい。
先ず、調査用に、以下のアプリをインストールしておく。
KeyEvent Display
実際にキーボードをつないで、KeyEvent Displayで、全部のキーのキーコードを確認して、
ちまちまとキーマップ情報を修正する事にする。
今回、使用したのは、通称「ポケモン・キーボード」などと呼ばれる以下のキーボード。
Nintendo Wireless Keyboard NTR-034
これは、NINTENDO DSの「バトル&ゲット! ポケモンタイピングDS」というゲームソフト
と一緒に売られているもので、かなりしっかりした作りのBluetooth Keyboardだ。
キーコードは、こんな風だった。
ポケモンキーボード・キーコード
このキーボード用のキーマップ情報のファイルを作成してみた。作成したファイルは…
/system/usr/keylayout/Vendor_057e_Product_1001.kl
/system/usr/keychars/Vendor_057e_Product_1001.kcm
以上の2つだ。ちなみに、ファイル名は、Vendor_《Vendor ID》_Product_《Product ID》
の形となる。Vendor IDとProduct IDは、キーボードを繋いだ状態で、端末エミュレータか
ら、以下のコマンドを実行すれば得られる。
===
# cat /proc/bus/input/devices
===
これら2つのファイルは、上記のXperia_MK16_ICS_KeyMap_1.1.zipに入れておいたので、
CWMで導入していれば、使えるようになっているはずだ。
キーの割り当ては、キートップの刻印通り。なお、以下の変更・追加も行なっておいた
(内蔵キーボードと異なるマッピングにしているのご注意!)。

入力文字  キー操作    コメント
------------------------------------------------------------------------
+++ 特殊キー +++
HOME    家マークのキー ControlとAltの間のキー、ホームとして動作
BACK    ALT+B      戻る
HOME    ALT+H      ホーム
MENU    ALT+M      メニュー
F1~F10  Fn+1~0     ファンクションキー F1~F10
------------------------------------------------------------------------
ちなみに、「Caps Lock」と「Control」を入れ替えたい人は、以下のファイルを修正すれ
ば良い。
修正対象ファイル:
/system/usr/keylayout/Vendor_057e_Product_1001.kl
修正箇所: 2箇所
51行目:
key 29    CTRL_LEFT
     ↓
key 29    CAPS_LOCK
80行目:
key 58    CAPS_LOCK
     ↓
key 58    CTRL_LEFT

---

※補足情報
・画面の輝度の自動調整を止めたい場合
画面の輝度は、周辺の明るさを見て、自動調整されている。しかし、この自動調整が災い
して、画面がちらついてしまう場合があるようだ。チラツキが気になってしまい、自動調
整を止めたいならば、以下のファイルを修正すれば良い。
修正対象ファイル
system/etc/hw_config.sh
これに、以下の行を追記する。
echo 0 > /sys/devices/i2c-0/0-0040/leds/lcd-backlight/als/enable
これで、輝度調整が手動となるので、「設定」→「画面設定」→「画面の明るさ」で適当
な明るさに調整すれば良い。

・メモリの容量不足が多発する場合
メモリは、十分に余っているはずなのに、メモリ容量不足の警告が出る場合、いろいろな
キャッシュの残骸が残っているのが原因な場合がある。電源ボタン長押しで、一旦シャッ
トダウンして、再起動してCWMを起動。そこで、以下の操作で、ゴミ掃除すると、解消さ
れるので、試してみると良いだろう。
「wipe cache partition」→「Yes - Wipe Cache」
「advanced」→「Wipe Dalvik Cache」→「Yes - Wipe Dalvik Cache」
これで解消されないなら、本当にメモリ不足なので、不要アプリを消すとかして解決する
しかないだろう。

---
参考にさせてもらったサイト:

Xperiapro MK16a root化したICSにしたらやること
http://suzuka770.blog45.fc2.com/blog-entry-1291.html


Android4.0(Ice Cream Sandwich)のフォント変更方法。
http://androidlover.net/smartphone/android4-0-ice-cream-sandwich-change-font.html


魔法の5行によるXperia mini proのバッテリー持ち&ベンチスコアの変化
http://www.kitcat.jp/blog/2011/10/magical5lines-xperia-mini-pro.html


Xperia arcのICS beta ROMにセルスタンバイ対策
http://voinuv.blogspot.jp/2012/02/xperia-arcics-beta-rom.html


他多数。各サイトの主様に感謝。

=================================================
以上。

Xperia pro(MK16i)へのClockworkModの導入2012/01/29 14:29

CWM(ClockWorkMod Recovery)は、Xperia単体で本体ソフトウエアのバックアップが
取れる便利なツールである。「Xperia CWM Auto-Instaler」(Andriodアプリ)が登
場して、CWMの導入が簡単に行えるようになったはずだが、これ、mini proでは使
えるが、proはサポート外と言われて使えない(本文を執筆時点で)。仕方ないので、
CWMを手動で導入することにする。

※注意事項
  以下、すべて自己責任で行うこと。端末が動作しなくなったり、何らかの動作不
  良となった場合でも、一切の保証は行わないので、そのことを了承した上で操作
  する事。
  Linuxのコマンドレベルでの操作となるので、Linuxの知識が無い場合は、事前に
  良く勉強しておく事。


1)CWMの入手
  以下のサイトから、CWMを入手する。

  [RECOVERY][14/11/11] 5.0.2.7-nAa-r2 ClockworkMod for Stock Xperia Mini/Pro/Active/Arc
    http://forum.xda-developers.com/showthread.php?t=1345741

  ここの
    Installation
    Download CWM from here and extract its contents.
  の所から、「CWM-5.0.2.7-nAa-r2.tar」をダウンロード。

  これを展開すると…
    system/bin/chargemon
               charger
               recovery.tar
           xbin/sh
  以上の4つのファイルが出てくる。
  これらを、microSDカードにコピーして、Xperia proに持っていく。以下、説明の
  都合で、4つのファイルともにmicroSDカードのルートフォルダーに入れたものと
  して説明する。

2)準備
  先ず、Xperia proは、事前に「root取り」を行っておく。やり方は、以下を参照
  の事(ブートローダーのアンロックは不要!)。

  [NEW][26/OCT/2011][ROOTING] Xperia 2011 Easy Rooting Toolkit [v1.0](zergRush Exploit)
    http://forum.xda-developers.com/showthread.php?t=1320350

  なお、本体のソフトウエアがビルド番号4.0.2.A.0.58まではこれでrootが取れる
  が、最新(2012/01/28時点)の4.0.2.A.0.62に上げてしまった場合はrootが取れな
  くなるので、要注意だ。上げてしまったら、ブートローダーのアンロックとかで
  rootを取るとか、自力で解決するしかないだろう。

  端末エミュレータもインストールしておくこと。マーケットから以下のアプリを
  インストールしておく。
    Android Terminal Emulator

3)CWMの導入
  Xperia proで、端末エミュレータを起動して以下のコマンドを実行する。なお、
  「$ 」や「# 」は、シェルが表示するプロンプトなので、入力しない事。

    $ su
    # mount -o remount,rw /dev/block/mtdblock0 /system
    # mv /system/bin/chargemon /system/bin/chargemon.org
    # cp /sdcard/chargemon /system/bin/chargemon
    # chmod 755 /system/bin/chargemon
    # chown root.shell /system/bin/chargemon
    # cp /sdcard/charger /system/bin/charger
    # chmod 755 /system/bin/charger
    # chown root.shell /system/bin/charger
    # cp /sdcard/recovery.tar /system/bin/recovery.tar
    # chmod 755 /system/bin/recovery.tar
    # chown root.root /system/bin/recovery.tar
    # mv /system/xbin/sh /system/xbin/sh.org
    # cp /sdcard/sh /system/xbin/sh
    # chmod 755 /system/xbin/sh
    # chown root.root /system/xbin/sh
    # reboot

  以上で、再起動して正常に立ち上がればCWMの導入は成功だ。立ち上がらないよ
  うなら、SEUSで再初期化して復旧させる等、自力で解決する事。

4)CWMの起動
  Xperia proの電源を切って、再起動する。「Sony Ericsson」のロゴが出ている
  間に、画面を何度かタッチする。そうすると、CWMのメニュー画面が表示される。
  CWMの使い方は、いろいろなサイトで解説されているので、それらを参考にする
  こと。
  なお、CWMの入手先(xda-developers)には、「ボリュームダウンのボタンを何度
  か押す」という記載があるが、それだと起動できなかった。


Xperia pro/mini proで日本語と絵文字のフォントを導入する2012/01/29 14:01

Xperia pro/mini proは、そのままでも日本語表示はできるが、漢字フォントのデ
ザインが中華圏のものとなっていて、日本人にはかなり違和感がある。ちゃんとし
た日本語の漢字フォントを導入してしまおう。ついでに、ケータイ絵文字のフォン
トも導入しておくと何かと便利。

この作業は、要rootedなので、事前にrootを取っておくこと。busyboxも必ず導入
しておくこと(busyboxは/system/xbinにリンクを展開しておくこと)。

主な作業は、Windows PCで行っているので、他の環境で行う場合は、独自に対応し
て欲しい。特定のフォントを使って説明しているが、他に好みのフォントがある場
合は、フォント名を読み替えて、同様にやってみると良いだろう。

※注意事項
  以下、すべて自己責任で行うこと。端末が動作しなくなったり、何らかの動作不
  良となった場合でも、一切の保証は行わないので、そのことを了承した上で操作
  する事。

※Xperia pro/mini proでは、DroidSansFallback.ttfにCJK(中華圏、日本、韓国)
  フォントが入っている。絵文字フォントを使うためにDroidSansFallback.ttfを
  絵文字フォントで入れ替えると、中華漢字やハングルが表示できなくなってしま
  う。絵文字フォントは、DroidSansJapanese.ttf側にマージした方が良い。以下、
  マージの手順も含めて説明する。

使用するフォント:
  以下の2つのフォントを使用する。
  (1) Migu 1M
    このフォントの特徴は…
    ・テキストエディタで利用しやすい「等幅フォント」である。
    ・半濁点(゜)を大きくしていて、濁点(゛)と判別しやすい。
    ・漢数字の「一」と長音記号「ー」の字形の差がしっかりしている。
  (2) 絵文字結合済みフォント Helvetica
    これは、絵文字入りフォント。アニメーションなしで白黒表示になるが、絵文
    字が表示できるので、ケータイ向けWebサイトの表示やケータイメールを受け
    た時等で便利。

フォントの入手先:
  (1) Migu 1M
    M+とIPAの合成フォント
      http://mix-mplus-ipa.sourceforge.jp/
    ここの「DOWNLOAD」より、以下の「Migu 1M」のZIPファイルをダウンロードす
    る。
      migu-1m-20111002.zip (2012/01/23現在の最新ファイル)
    これを展開して「migu-1m-regular.ttf」を取り出す。
  (2) 絵文字結合済みフォント Helvetica
    iPhoneにも絵文字を!
      http://cova.sakura.ne.jp/sb/
    ここの「絵文字結合済みフォント(emoji_font.zip)」をダウンロードする。
    これを展開して「Helvetica.ttf」を取り出す。

フォントマージツール:
  fontforge というツールを使用する。以下から入手してインストールしておく。
    http://www.geocities.jp/meir000/fontforge/

フォントのマージ:
  1)フォントファイルを開く
    fontforgeでHelvetica.ttfとmigu-1m-regular.ttfを開く。
    fontforgeを起動すると、「フォントを開く」の画面になるので、ファイルを
    選択してHelvetica.ttfを開く。
    続いて、[ファイル]→[開く]で、また「フォントを開く」の画面になるので、
    migu-1m-regular.ttfを開く。
    これで、2つのフォントが同時に開いた状態になる。
  2)フォントのサイズ調整
    それぞれのフォントの定義サイズが異なるので、そのままマージすると表示し
    た時に、絵文字のサイズだけ異常になる。両方のフォント情報を確認して、サ
    イズ調整を行う。フォント情報は、[エレメント]→[フォント情報]で確認でき
    る。ここの[一般情報]を見て、Helvetica.ttfのサイズをmigu-1m-regular.ttf
    に合わせて調整しよう。
    具体的には、Helvetica.ttfの[エレメント]→[フォント情報]で、[一般情報]
    を表示して、以下の項目を変更する。
      [高さ]        1638 →  860
      [深さ]         410 →  140
      [下線の位置]  -105 → -100
      [Height]       101 →   50
    以上の変更をしたら、[OK]で、フォント全体のグリフの変形(サイズ変更)が始
    まるので、終了するまで待つ。
  3)絵文字のグリフをmigu-1m-regular.ttfへコピー
    Helvetica.ttfの57345文字目(U+E001)から57434文字目(U+E05A)を選択してコ
    ピー(Ctrl+C)する。
    migu-1m-regular.ttfの57345文字目を選択して貼り付ける(Ctrl + V)。これで
    57434文字目(U+E05A)まで絵文字が入る。
    同様に、下記の範囲の絵文字をすべてコピーして貼り付ける。
        57345(U+E001) ~ 57434(U+E05A) (これは、上記の説明で示した領域)
        57601(U+E101) ~ 57690(U+E15A)
        57857(U+E201) ~ 57939(U+E253)
        58113(U+E301) ~ 58189(U+E34D)
        58369(U+E401) ~ 58444(U+E44C)
        58625(U+E501) ~ 58679(U+E537)
        58942(U+E63E) ~ 59223(U+E757)
        63743(U+F8FF)
     これで、絵文字のマージが終わったので、マージしたフォントをファイルに
     出力する。migu-1m-regular.ttf側で、[ファイル] → [フォントを出力]で
     フォントファイルの名前を「DroidSansJapanese.ttf」、フォントタイプは
     「TrueType」で[ビットマップフォント無し」として、「保存」する。警告メ
     ッセージやエラーメッセージが出るが気にせず続行して最終的に「保存」す
     れば良い。
     最後に、fontforgeを終了させる。[ファイル]→[終了]で、[保存しない]を
     選択して終了させる。
     以上で、絵文字がマージされたフォントファイルDroidSansJapanese.ttfが完
     成。

入れ替えの準備:
  以下の内容のファイルをテキストエディタで作成しておく(改行コードはLFのみ
  とすること)。
    ファイル名: cpfonts.sh
                     このファイルは、ここからダウンロードできるようにしておいた。
    内容: (行頭の#や$も意味があるので、略さず入れる事)
===
#!/system/bin/sh
bin=/system/bin
bbx=/system/xbin
$bin/mount -o remount,rw /dev/block/mtdblock0 /system
echo "-- Copy DroidSansJapanese.ttf."
$bbx/cp /sdcard/fonts/DroidSansJapanese.ttf /system/fonts/DroidSansJapanese.ttf
$bin/chmod 644 /system/fonts/DroidSansJapanese.ttf
$bin/chown root.root /system/fonts/DroidSansJapanese.ttf
if [ -e /system/fonts/DroidSansSemcCJK.ttf ]; then
  echo "** Rename DroidSansSemcCJK.ttf to DroidSansSemcCJK.ttf.sv."
  $bin/mv /system/fonts/DroidSansSemcCJK.ttf /system/fonts/DroidSansSemcCJK.ttf.sv
fi
# reboot
===
  端末側のmicroSDカードを取り出して、PC側に入れる。
  microSDカードに「fonts」フォルダーを作成する。
  以上で作成した2つのファイル「DroidSansJapanese.ttf、cpfonts.sh」を
  microSDカードのfontsフォルダーにコピーする。
  microSDカードをPCから取り出して、端末側に戻す。

  ※上記のcpfonts.shで、DroidSansSemcCJK.ttfをリネームしている。これは以下
    の理由からである。
    ・DroidSansSemcCJK.ttfには、DroidSansFallback.ttfに入っていない中華漢
      字がいくつか定義されている。これらの漢字は、かなり特殊な文字だと思わ
      れる。これらの中華漢字の一部が絵文字フォントのコードと重なっている。
    ・Xperia pro/mini proでは、フォントの参照順が、以下のようになっている
      らしい。
        DroidSans.ttf → DroidSansSemc.ttf、DroidSansSemcCJK.ttf
                       → DroidSansJapanese.ttf → DroidSansFallback.ttf
      この為、いくつかの絵文字は、同一コードの文字をDroidSansSemcCJK.ttf内
      で先に見つけてしまい、絵文字が表示されず変な漢字が出てきてしまう。
    ・絵文字をすべて正常に表示させるには、DroidSansSemcCJK.ttfが邪魔になる
      ので、リネームしてシステム側から参照されないようにする。
    ・リネームした弊害として、いくつかの特殊な中華漢字が表示されなくなるが
      通常のWebサイトの参照等で、問題になる事は非常にまれだと思われる。
      この辺が気になる場合は、DroidSansSemcCJK.ttfに収納されている中華漢字
      を直接調べてみて欲しい。

端末側での作業:
  事前に、端末エミュレーターのアプリをインストールして、必要な設定をしてお
  く事。端末エミュレーターとして使えるアプリには。以下のものがある。
    Android Terminal Emulator
    ConnectBot
  おすすめは、Terminal Emulator。最近、UTF8対応が完了したそうで、日本語の
  入力も表示もできるようになった。日本語表示の為にConnectBotを使っていた場
  合は、いい機会なので、Terminal Emulatorに乗り換えることをおすすめする。
  端末エミュレーターを起動後、以下のコマンドを実行(行頭の「$ 」や「# 」は
  プロンプトなので、それ以降を入力)。
===
$ su
# sh /sdcard/fonts/cpfonts.sh
# reboot
===
  端末が再起動するのを待って、作業終了。

表示確認:
  日本語フォントが正常に表示されるかは、たとえば「写」をテキストエディタで
  入力・表示してみれば良い。
  絵文字の確認は、標準のブラウザーでこの辺でも表示してみれば良いだろう。
    ドコモ絵文字 http://code.cside.com/i-mode/emojimode/
    ソフトバンク絵文字 http://code.cside.com/softbank/
  すべての絵文字が正しく表示されていれば、大成功だ。

絵文字の入力:
  テキストエディタやメール等で、絵文字を入力したい場合、nicoWnnG IMEが
  かなり便利だ。ハードキーボードからでも、「Sym」キーを何度か押すと絵文字
  一覧が出るので、そのまま入力すると良い。ただし、ドコモ絵文字かソフト
  バンク絵文字かは意識して使用する事。

※今回、フォントのマージに関して、以下のサイトを参考にさせてもらった。
    絵文字入り DroidSans.ttf と DroidSans-Bold.ttf
    http://kadrinche.la/2011/05/22/droidsans-ttf-with-smiley/

Xperia pro/mini proでキートップにない記号を入力する2011/11/07 11:38

Xperia pro(MK16i)/mini pro(SK17i) で、キーマップの置換というか追加をしてみた。

Xperia pro/mini proは、QWERTYキーボードが付いていて、なかなか便利。通常のAndroidアプリを使う分には、もう完璧って感じなのだが、ベースになっているLinuxにアクセスする場合、ちょっと困った事になる。標準状態では、キーボードから入力できない記号が多いのだ。端末エミュレータ等を使用する場合に、シェル(sh)で頻繁に使用するパイプ"|"や、リダイレクト"<"・">"・">>"といった記号がキートップに無く、非常に苦労する。

このままだと不都合な事が多いので、キーマップの修正にチャレンジしてみた。
技術的な詳細は、下記のZIPファイル内の「キーマップ技術情報.txt」を参照されたい。
バイナリーエディタでファイルの中身を変更して書き戻すだけなので、この情報が理解できる人なら、好みに合わせていろいろ変えてみる事も容易だろう。

で、結論として、「かなりうまくいった」ので、公開することにする。「かなり」ってのは、つまり、ダメな部分もあったのだ。残念な事に、入力方法に「POBox Touch」を選んでいる場合、この変更が有効にならない。どうやら、POBox Touchは、直接、キーコードを読み込んで、独自に物理キーの処理を行っているようだ。入力方法に「nicoWnnG IME」や「ATOK」を使用すれば、問題なく記号類が入力できるようになるので、入力方法を適宜選んで使ってもらえば良いだろう。

以下に、修正したキーマップ定義の導入方法を示す。

なお、修正されたキーマップを導入した場合に入力できる記号類は、文末に記載したので、そちらを参照の事。

※注意事項
  以下、すべて自己責任で行うこと。端末が動作しなくなったり、何らかの動作不良となった場合でも、一切の保証は行わないので、そのことを了承した上で操作する事。

1) 準備
この作業は、要rootedだ。Xperia pro/mini proは、事前に「root取り」を行っておくこと。
やり方は、以下を参照の事(ブートローダーのアンロックは不要!)。

  [NEW][26/OCT/2011][ROOTING] Xperia 2011 Easy Rooting Toolkit [v1.0](zergRush Exploit)
    http://forum.xda-developers.com/showthread.php?t=1320350

  簡単に手順を示しておく(要Windows PC)。
    a) 上記のサイトから、DooMLoRD_v1_ROOT-zergRush-busybox-su.zipをダウンロード
    b) Xperia側でUSBデバッグを有効化した後、PCに接続(PC Companionは起動しない事)
    c) PC上で入手したzipファイルを解凍し、フォルダ内の runme を実行

  ※上記以外の方法でrootを取っている場合、busyboxが未導入なら導入して、/system/xbinに
      busybox --install -s /system/xbin
 とでもして、リンクを作っておくこと。

2) 修正版キーマップ用ファイルをXperia側へコピー
  先ず、以下のZIPファイルをPC上でダウンロードして、解凍しておく。

    MK16i-SK17i-key-remap.zip

  Xperia側のmicroSDに、「keymap」フォルダーを作成し、上記のZIPファイル内の以下のファイルをコピーする。

    pm8058-keypad.kcm.bin.remap

3) 端末エミュレーターのインストール
  以降の操作は、Xperia側で端末エミュレーターを使って行うので、端末エミュレーターをインストールしておく。お薦めは…

    ConnectBot

  このConnectBotでは、表示される文字サイズがボリュームボタンで変更できるので、見やすいサイズに簡単に変更できる。日本語の入力はできないが、ファイル名等は日本語でも化けずに表示される。インストールしたら、「local」で接続先を作っておけば良い。

4) 端末エミュレータを起動して、キーマップファイルを置換
  端末エミュレーター上で、以下のコマンドを実行する。なお、「$ 」や「# 」は、シェルが表示するプロンプトなので、入力しない事。

  $ su
  # mount -o remount,rw /dev/block/mtdblock0 /system
  # cd /system/usr/keychars
  # mv pm8058-keypad.kcm.bin pm8058-keypad.kcm.bin.org
  # cp /sdcard/keymap/pm8058-keypad.kcm.bin.remap ./pm8058-keypad.kcm.bin
  # chmod 644 pm8058-keypad.kcm.bin
  # chown root.root pm8058-keypad.kcm.bin
  # reboot

  以上で、Xperiaが再起動する。これで、置換終了。

=====

入力可能となる文字等

入力文字  キー操作    コメント
------------------------------------------------------------------------
ETX(0x03) ALT+SHIFT+C Ctrl+C シェル(sh)で、フォアグラウンドプロセスの強制終了
EOT(0x04) ALT+SHIFT+D Ctrl+D シェル(sh)で、入力の終了(End of file)
SUB(0x1a) ALT+SHIFT+Z Ctrl+Z シェル(sh)で、フォアグラウンドプロセスの一時停止
ESC(0x1b) ALT+SHIFT+Q エスケープ
  <     ALT+SHIFT+,
  >     ALT+SHIFT+.
  [      ALT+SHIFT+K ブラケット(bracket)
  \     ALT+SHIFT+B
  ]     ALT+SHIFT+L ブラケット(bracket)
  ^     ALT+SHIFT+O カレット(caret)
  `     ALT+SHIFT+' バッククォート
  {     ALT+SHIFT+N ブレース(brace)
  |     ALT+SHIFT+? パイプ(vertical bar)
  }     ALT+SHIFT+M ブレース(brace)
  ~     ALT+SHIFT+P チルダ (ConnectBotの場合、ALT+DELETEでも入力可能)
------------------------------------------------------------------------
※ ALTキーは「■」マークのキー