nunnun's weblog
Amazon Kindle Fireで日本語を入力する / ATOK,simejiをインストールする
- 2011-11-19 (Sat)
- Technology
[2012年1月7日追記: より簡単な方法と英語でのやり方をアップしました。/ You can find english instructions ]
Kindle Fireが届きました!
199ドルにしては非常に出来が良いです。液晶もきれいだし、思っていたよりも軽いし、裏がゴムっぽくて持ちやすくていいです。
Kindle FireはAndroidベースの端末ですでにrootをとる方法も確立されているので、Hackして遊ぶにも最適です。(というか僕はHack目的で買いました笑)標準で日本語フォントも中華フォントだけど入ってるのでとりあえず困らずに使えます。 ただ、日本語入力ができるか心配でしたが、ATOKをインストール・そして日本語入力をさせることができたので、忘れないようにメモしておきます。
私は以下の手順で可能にできましたが、あくまで自己責任でお願いします。これによりKindle fireの保証はなくなりますし、これによってKindle Fireが故障した場合でも私は一切の責任を負いかねます。あらかじめご理解ください。
rootを取る
すでに英語でやる方法はいろんなところに出回っているので、別に必要ないのですが、簡単に日本語でもまとめておきます。(adbの使い方とか他のAndroid端末でも共通していることはgoogleで検索してください)
準備
僕がやったときはWindowsでrootを取る方法しかなかったので(というかそれを最初に見つけてしまったのでWindowsでやった)とりあえずWindowsが動く環境を用意します。x64でもx86でも動くと思います。
WindowsマシンにAndroid SDKをセットアップします。そのときにかならずGoogle Driverをインストールしてください。インストールしたら、Driverのinfをいじります。android_winusb.inf を開いて、Kindle FireのIDを追加します。ファイルの中に[Google.NTx86]と[Google.NTamd64]のセクションがあると思うので、その先頭に以下の行を追加して保存します。
;Kindle Fire
%SingleAdbInterface% = USB_Install, USB\VID_1949&PID_0006
%CompositeAdbInterface% = USB_Install, USB\VID_1949&PID_0006&MI_01
また、adbにKindle fireがAndroidデバイスであることを認識させるために、ホームディレクトリ直下の.androidフォルダのadb_usb.iniに以下の行を追加します。(ファイルが無かったら追加してください)
0x1949
これで準備は完了
rootを取ろう
rootはSuperOneClickを使って一瞬でとれます。
[APP]SuperOneClick v2.2 (now with zergRush and su 3.0) - xda-developers
起動してrootを押せば終わりです。SuperOneClickの使い方はいろいろ解説があると思うので、適当に探してみてください。
ATOKもしくはsimejiをインストールする
Kindle fireはAndroid MarketやGmailなどのgoogle appsが入っていません。インストールする方法はありますので、興味があるひとは以下のリンクとかを参考にしてみてください。
[G-Apps][GUIDE] Google Apps on the Kindle Fire - Simpler Market Instructions - xda-developers
Android Marketが使えればATOKやsimejiをAndroid Marketからインストールします。Android Marketをインストールしていない人は手持ちの他のAndroidから抜き出してきます。(なんか野良simeji公開されなくなってしまっていますね。) たぶんここが一番ハードルが高いかも。。
無事インストールできたら、ATOKもしくはsimejiを有効にします。
通常であれば、設定→言語とキーボード から有効にすればおわりなのですが、Kindle Fireのキーボードの設定はKindleキーボードの設定しかないので設定できません。
これではATOKを有効にできないので、直接設定をいじります。
Input Methodを有効にする
今度はMacで作業します。(WindowsでもLinuxでもできますが、MacでやったのでMacで書いてます)
先ほどと同じように~/.android/adb_usb.iniに0x1949を追加します。
Androidの言語とキーボードの設定は、/data/data/com.android.providers.settings/databases/settings.dbに入っているので、それを抜き出して編集します。
hiro$ adb shell
$ su
# cp /data/data/com.android.providers.settings/databases/settings.db /sdcard/settings.db
# exit
$ exit
hiro$ adb pull /sdcard/settings.db .
2486 KB/s (24576 bytes in 0.009s)
抜き出したらSqliteで変更を加えます。まず現状の設定を抜き出します。
hiro$ sqlite3 settings.db
SQLite version 3.7.5
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from secure where name like "enabled_input_methods";
69|enabled_input_methods|com.android.inputmethod.latin/.LatinIME
続いてATOKもしくはsimejiをenabled_input_methodsに追加します。ATOKおよびsimejiのpackage名は以下なので参考にしてください。
- ATOK
com.justsystems.atokmobile.service/.AtokInputMethodService - simeji
com.adamrocker.android.input.simeji/.OpenWnnSimeji
sqlite> INSERT INTO "secure" VALUES(null,'enabled_input_methods','com.android.inputmethod.latin/.LatinIME:com.adamrocker.android.input.simeji/.OpenWnnSimeji:com.justsystems.atokmobile.service/.AtokInputMethodService');
上の例はATOKおよびsimeji両方を有効にした場合です。実行したら再度select * from secure where name like "enabled_input_methods";を実行してATOKやsimejiが入っているか確認してください。確認したらCtrl+Dで終了させます。
最後に変更を加えたsettings.dbをKindle fireに戻し、Kindle Fireを再起動します。
hiro$ adb push settings.db /sdcard/settings.db
1810 KB/s (24576 bytes in 0.013s)
hiro$ adb shell
$ su
# cp /sdcard/settings.db /data/data/com.android.providers.settings/databases/settings.db
# chown system.system /data/data/com.android.providers.settings/databases/settings.db
# chmod 660 /data/data/com.android.providers.settings/databases/settings.db
# exit
$ exit
再起動したら、どこかの入力フィールドを長押しするとInput Methodを選ぶ画面が出ますので、選択するとATOKもしくはsimejiが候補に出てきますので選択するとKindle fireで日本語が入力できるようになります!
かなり適当にまとめてますので、抜け落ちている点などありましたら指摘していただけると幸いです。
Xperia Acro SO-02C用のtun.ko
- 2011-11-13 (Sun)
- Technology
ついでにXperia Acro用のtun.koもコンパイルしてみた。
Android 2.3.4 [2.6.32.9-pref] 向けです。
IS11Sもたぶんいけるはず
コンパイル方法は
AndroidのKernel Moduleをコンパイルする
をみてください。
コンパイル済みファイルはこちら
http://nunnun.jp/acro/tun.ko-acro-4.0.1.C.1.9.zip
AndroidのKernel Moduleをコンパイルする
- 2011-11-13 (Sun)
- Technology
SoftBankの回線をただ解約するのはもったいないので、WiMaxが付いてて各方面で絶賛投げ売り中のauのHTC EVOたんを入手したよ!(若干ネタが古い感はするーする!)
さてRootも無事取って、Cisco AnyConnect (VPNクライアント)をインストールして接続しようとしたら、"tun.ko"がないからむりぽって言われたので、tun.koをカーネルソースからコンパイルしてみることにした。
もともとOpenVPN用のモジュールなので、インストールするとOpenVPNも使えるようになるはずです。(もちろんカーネルモジュールだけじゃ動かないので他のファイルも必要です!)
最初OSXでやろうとしたんだけど、なんか面倒っぽかったのでLinux上でやってます。僕はたまたま手元にCentOSがあったのでCentOSでやったけど、きっとDebianとかでも動くはずです。
コンパイル済みのtun.koも準備しました。
http://nunnun.jp/evo/tun.ko-2.6.35.10-g04a0907.zip
/system/lib/modulesに入れれば動くはずです。
用意するもの
- カーネルソース
HTCのサイトから入手できます。http://htcdev.com/devcenter/downloads
EVOは "HTC EVO 4G – GB MR – 2.6.35" です - Android SDK
Googleから入手します。http://developer.android.com/sdk/index.html - Android NDK
こちらもGoogleから入手します。http://developer.android.com/sdk/ndk/index.html
ただ、arm-eabi-4.4.0のクロスコンパイラが必要なので、最新版ではなくandroid-ndk-r5cを使用します。
リンク: http://dl.google.com/android/ndk/android-ndk-r5c-linux-x86.tar.bz2
手順
- ダウンロードしたファイルを展開する
ホームディレクトリにandroidというフォルダを作ってそこに展開することにします。(別に場所はどこでも平気です)
$ mkdir android $ cd android $ wget http://dl.google.com/android/android-sdk_r15-linux.tgz $ wget http://dl.google.com/android/ndk/android-ndk-r5c-linux-x86.tar.bz2 $ wget http://dl4.htc.com/RomCode/Source_and_Binaries/supersonic-2.6.35-gb-MR.tar.gz $ tar zxvf android-sdk_r15-linux.tgz $ tar xvf android-ndk-r5c-linux-x86.tar.bz2 $ tar zxvf supersonic-2.6.35-gb-MR.tar.gz
- デバイス(HTC EVO WiMAX)からカーネルコンフィグを抜きます
デバイスがPCに接続された状態で、config.gzを抽出し、展開します。
別のマシンから抜いてくる場合は、config.gzを抜いてそれを作業ディレクトリに転送し、展開します。$ adb pull /proc/config.gz . $ gunzip config.gz $ mv config .config
- Configを書き換える
デフォルトではコンパイルしないことになっているTUNモジュールをコンパイルするために、展開した.configを書き換えます。vimなりemacsで開いて# CONFIG_TUN is not set
という行を探します。探したらその行の下に、
CONFIG_TUN=m
という行を追加し、保存します。保存後、.configファイルをカーネルを展開した supersonic_GB_MR フォルダにコピーします。
$ cp .config supersonic_GB_MR
- Makefileを変更する
コンパイルして生成されるカーネルモジュールとデバイスで動いているカーネルのバージョンを合わせるために、Makefileを変更します。
まず、 デバイスを接続したマシン上で、を実行します。実行するとカーネルのバージョンがわかります。この場合2.6.35.10-g04a0907がバージョンです。$ adb shell uname -a Linux localhost 2.6.35.10-g04a0907 #1 PREEMPT Tue Aug 30 13:49:12 CST 2011 armv7l GNU/Linux
その後、Makefileを変更します。カーネルを展開した supersonic_GB_MR フォルダにMakefileがあるのでそれをvimなりemacsなりで開いて、
EXTRAVERSION =
という行を探して、先ほどのバージョンのマイナーバージョン以下(つまり2.6.35以下)を追加します。この場合、EXTRAVERSIONの行は、
EXTRAVERSION = .10-g04a0907
となります。 - コンパイルする!
準備が終わったので、早速コンパイルしてみる。カーネルを展開したディレクトリに移動して、makeする。
ただ、環境変数をちゃんと設定しないと動かない。こんな感じ
環境変数を設定したら、makeする。$ export ARCH=arm $ export CROSS_COMPILE=arm-eabi- $ export PATH=$PATH:~/android/android-ndk-r5c/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/
なんかエラーが出た場合は何かが足りない。aptitudeとかyumで探してぶち込む。無事コンパイルが終わると、drivers/net/ ディレクトリに tun.ko というカーネルモジュールが生成されているはず。fileすると、$ make modules
こんな感じに出るはず。$ file drivers/net/tun.ko drivers/net/tun.ko: ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped
- デバイスに転送する
コンパイルしたカーネルモジュールをデバイスに転送して、/system/lib/modules に配置します。
デバイスをつないだマシンから、以下のように操作します。いずれもエラーが出ずに処理が終われば正常です。エラーが出る場合はroot権限がとれていてsuがインストールされているか確認してください。$ adb push tun.ko /sdcard/tun.ko $ adb shell su -c "mount -o rw,remount /system /system" $ adb shell su -c "cp /sdcard/tun.ko /system/lib/modules" $ adb shell su -c "insmod /system/lib/modules/tun.ko" $ adb shell su -c "mount -o ro,remount /system /system"
以上。最初NDKを最新のもので試したのだけど、付いてきたクロスコンパイラがarm-linux-androideabi-4.4.3で、これだと
# insmod tun.ko
insmod: init_module 'tun.ko' failed (Exec format error)
と言われてしまってモジュールを読み込めなかった。なんかARMのGCC 4.0特有の問題みたい。
ボストン日記 [準備 + セットアップ]
- 2011-08-21 (Sun)
- Private
仕事で夏の間ボストンに来ています。
ボストンに来て最初の1週間は本当あっという間で、いろいろ終わってないこともたくさんあるのだけど、忘れないうちに準備+セットアップについて書いておきたいので適当にざっくり書きます。
半分備忘録的な感じなので、つまらないかも。
ビザ関係
今回の渡米は行けるようになるまで本当に大変だった。
普通仕事や観光でアメリカに90日以内の旅行をする場合は、ESTAとかを使うことでビザなしで入国できるのね。
去年はビザなしで行ったんだけど、今年はいくつか理由が有ってボスと相談してビザをとって行くことにした。
だけど、これがむちゃくちゃ大変だった。
まずB-1ビザ(商用)を取ろうとしたんだけど、どうも僕の身分(一応大学で働いてる)と向こうですること的にB-1ではなく、J-1(交流訪問者)でないと行けないらしく、DS-2019というフォームをもらわないと行けなくなってしまった。これが渡航1ヶ月前のこと。
で、仕方がないのでMITのISO(International Student Office)にお願いしてDS-2019をもらうことにしたのだけど、DS-2019の発行に1ヶ月かかると書いてあった(ソース無くした)。知ってる人は知ってるかもだけど、DS-2019は受け入れ先の大学の人のサインがあるただのフォームでそれを実際発行するのに時間がかかるわけじゃないんだけど、事務手続きにだいたい1ヶ月ぐらいかかるみたい。
ただそれだと全く間に合わないので、受け入れ先のラボの人に猛烈にプッシュしてもらった結果3週間ぐらいで発行された。(発行手続きを開始したのが7月6日で発行されたのが7月27日)
健康保険
J-1ビザで入国する人は受け入れ先の機関の健康保険に入るか、日本で海外旅行保険に加入しないといけないことになっている。MITでも保険のプランがあるのだけど、日本で入ってしまった方が楽(+携行品とかがMITのプランだとないので)なので、日本で加入した。
ググるといろいろなひとがAIUの保険がいいと言っていたので、AIUの海外旅行保険にした。
契約期間はDS-2019に書いてある機関で契約しないと、Waiverを受けられないので注意。(ただMIT Medicalの人は保険の証明書をまともに目を通してなかったので本当にチェックしているかはなぞ)
入国
機内でI-94をもらって記入しておく。(ビザなしの人はいらないフォームなので頼まないとくれないことが多い)
入国審査の時はほとんど何も聞かれずに終了。忘れずにI-94をもらう+ステータスがJ-1、滞在期間がD/Sになってることを確認する。
チェックイン
できるだけ早めに、入国したら受け入れ先の機関に連絡をする。そうすることでオリエンテーションやRegistrationの日程が早めに決まるので、その後面倒なことにならなくてすむ。
MITの場合、チェックインするとオリエンテーションのアポイントメントをくれる。
たぶん週1・2回 やってるっぽくて僕の場合は月曜日にチェックインして木曜日のオリエンテーションだった。
オリエンテーションでは、Immigrationの話が半分とMITでの登録の話が半分ぐらいだった。
銀行口座
僕は去年行ったときに作ってしまっていたので、今回は作る必要がなかったのだけど、受け入れ先機関から給与を受け取ったり、そうじゃなくてもいろいろと便利なので口座を作った方が楽です。
大学に支店がある銀行だと簡単に開設できるはずです。そのときにパスポートとI-94を忘れずに持って行きましょう。
SSN
これも給与を受け取る人はつくらないといけないのですが、そうじゃない人も有った方が便利。J-1ステータスの人は就労と見なされるのでSSNを作ることができるはずです。MITではVisiting StudentにもLetterをくれていました。F-1だと微妙みたいです。
携帯電話
無いと不便。というか僕の場合死んじゃうので、こっちに来て早々に作りました。
SSNが無いとだいたいほとんどのキャリアが高額なデポジットを要求してきます。
またプリペイドだとデータ通信がかなり割高なので、smartphoneとか使いたい人には不向きです。あとCDMAなキャリア[VerizonとかSprintとか]は端末買っても日本で使えないのでもったいないです。
T-MobileのMonthly 4Gだと(他のキャリアもやってるかもしれませんが未確認) 毎月先払いでデータ定額とかも使えつつデポジットも要求されないで使えるので便利です。僕はSIMだけ契約してNexus Sにさして使っています。
忘れそうなのでAPNはepc.t-mobile.comです。
とりあえずこんな感じ。続きはまた書きます。
フランス・スペインの携帯電話事情
- 2011-05-12 (Thu)
- Technology
土曜日から仕事でフランス・スペインに行くので、現地でiPhoneとかを使いたいのでどのキャリアのプリペイドSIMが使えそうか調べてみたので、忘れないようにメモ。
基本的な方針として、
- 電話はおそらく発信しないので、ドコモのSIMでローミングを使用する。
- データはローミングでは死ぬほど高いので、プリペイドを現地で調達する。
- おそらくiPad向けにプリペイドを提供しているはずなので、それを探す。
スペイン
スペインはいくつかキャリアあるのだけど、前にいったときに使ったことがあるMovistarで調べてみた。
iPadは取り扱っているが、どうやらプリペイドプランは提供していないみたい。
Movistar - iPad
仕方がないので普通のプリペイドプランをあさってみる。
http://www.tarifas.movistar.es/particulares/voz/tarjetamas#contratar
通話: 22.8 cent euro / min
データ: 1.5 Euro / 10MB
これだとちょっと高い。10MBとか一瞬で使っちゃうし。というわけでプリペイドに使えるプランを探してみる。
あったあった。
Bono Mensual Internet en el Móvil Prepago
これだと20MB/month 6 Euro。まぁこれも一瞬だよね。
ほかにはないかと探してみる。
Bono Internet Trimestral
これは1GB/3months 59 Euro ちょっと高いけど、まぁ足りる。
今回は1週間ぐらいいるから、実際どうなんだろう。
フランス
フランスもいくつかキャリアあるけど、SFRかOrange。SFRはiPhone 3G向けならプリペイドデータプランがあるが、それ以外はないのでOrangeを調べてみる。
mobicarteっていうのがプリペイドの意味。
ここに書いてあった。
http://paygsimwithdata.wikia.com/wiki/France
OrangeのWebサイトからわかる情報は
200MB / 6 Euro
http://mobile.orange.fr/content/ge/high/v2_offre_boutique/options/options.html
ただ、SIMつかって操作すればUnlimitedがつかえると、上のページには書いてあったので調査してみる。
まぁいずれの国にしても今回行くところが結構地方なので、まずSIMカードを調達するのが大変かも。
かえってきたらまたレビュー書きます。


