Saturday, July 31, 2010

iPhone (iOS4)でMMS以外の3G通信を潰す


そもそもなんでこんなことをしたいのかといえば、SBM回線を二つ持っていて片方は最低料金で運用したいから。
3Gは一個あればNexus OneのWiFiテザリングで十分なのです。

Tuesday, July 27, 2010

絵文字グリフ入り DroidSansFallbackフォント

Fallbackフォントをそのままに、絵文字も表示したい。
というわけで絵文字グリフ入りFallbackフォントを作りました。

Thursday, July 15, 2010

Android Mms.apk の Softbank 絵文字対応

「リア充の道は絵文字から」というありがたい言葉を頂いたので実装してみた。

制限事項がいくつかあるけど概ね良好にみえる。
  • CM5では下書きからの復帰で件名が化ける(eclairのバグ?)
  • システムのMmsアプリを置き換える
  • アプリに絵文字の画像ファイルを含むのでサイズが若干でかい(1.9MBくらい)
  • CM5,6+ mailto:のintent対応(適当)
  • CM5+ メールアドレス補完

こんな感じですん。


iPhoneとのやりとり


入力は一番上に履歴と、カテゴリごとに分けられたタブ5ページになる。(基準はiPhoneの絵文字キーボード)


絵文字の種類はiPhone compatible.
キャリア間の互換性はサーバ側で変換してくれるので気にしなくてよいはず。
SMS, docomo, au及びGMail間での送受信テストはした。

Mms.apk は adb コマンドなどで置き換えます。
$ adb remount
$ adb shell rm /system/app/Mms.odex
$ adb push Mms.apk /system/app/

あるいは update-mms-cm6-signed.zip をリカバリからぶち込めばそれだけでもよいです。

※ HT-03A など /system 領域が小さい機種の場合、導入に工夫が必要な場合があります。

CyanogenMod 5.0.8, 6.0.0以外の環境でのテストはしていません。
CMベースならおそらく大丈夫だと思われます。
ダウンロード (CM6)
ChangeLog

CM5ではframeworkの修正が必要です。また、CM5標準に比べてメールアドレスを補完する機能を付加してあります。
ダウンロード (CM5)
CM5用差し替えframework

CM以外のFroyoベースROMではテストをしていませんが動作するようです。(framework修正をapkに含めいています)
ダウンロード

Eclair用はありません。

TODO:
  • 単体アプリとして導入できるようにする
  • コード整理
  • ソース公開

Thursday, June 24, 2010

Froyo hit AOSP


ほとんど憶測で書いてるので読み流してください。

Android 2.2 FroyoのソースがAOSPにきたのでざっと見た感じをまとめてみる。
おそらくFroyoってるブランチは4つ以上はあって、次のようになっているんだと思う。
  • AOSPのfroyo branch
  • AOSPのmaster
  • Google Internal froyo
  • Google Internal froyo-plus-aosp

Google Internal treeはみえないのでなんともいえないのだけど、froyo branchってのはある時点で切られて以降 AOSPとは切り離されて開発されてる。
で、落ち着いたら(リリースが見えたら)AOSPにfroyo branchとして戻す。
なので、その間にAOSP masterにcontributeされたコードの存在は見られない。(実際にない)

かといって整合性がとれてないといけないので、froyo-plus-aospブランチで整合性がとれるものしかAOSPのcode reviewでapproveしていない。
で、リリースが見えて、froyoを戻すとともに、AOSP masterにfroyo-plus-aospをマージすると。
まぁテストとかを考えると妥当な手順なのかもしれない。eclair以前もこんな感じだったのかしら。

結局何が言いたいのかというと、AOSP masterはすでにfroyoになっていてAOSP contributeも含んでいるが、froyo branchはgoogleのrelease branchなのでAOSP contributeは(おそらく重要なものを除いて)マージされていないということ。
要するにMMS fixもはいってませんでした、と。

で、今後のCM6を踏まえた展望なのだけど、CyanogenはCM6をAOSP froyo branchベースで開発するようです。
masterもfroyoになってるしmasterをベースにしたほうがいいんじゃない?と言ってみたのだけど、masterはカオスだからrelease branchでやってその都度必要なものをcherry-pick mergeしていくんだと。
そんなわけで現在は1から組み直してるような状況ですなぁ。
すこし落ち着いたらMMS fixをcherry-pickするように促してみようかと思います。

終わり。

Tuesday, June 15, 2010

Nexus One Portable HotSpot with Android WiFi Tether 2.0.5

FroyoでPortable WiFi HotSpotがサポートされましたが、Android WiFi TetherでもAPモードでテザリングができるようになりました。
現状2.0.5-pre2というバージョンでまだEXPERIMENTALですが、とりあえず動作はします。

以下に、FroyoのHotSpotとの違いを簡単にまとめてみました。

- Froyo標準 WiFiTether
動作環境 Froyo Froyo, CM5.0.7以降もしくは相当のkernel(SoftAPサポート)とbcm4329firmware(fw_bcm4329_apsta.bin)
暗号化 OPEN/WPA2-PSK OPEN/WPA2-PSK
アクセス制御 - MACアドレスフィルタリング
その他-チャンネル変更,LANアドレス変更,通知設定等
同時接続8制限なし?

カーネルのSoftAPサポートが必須なのでCM-5.0.7より前のバージョンでは恐らく動きません。(kernelの差し替えで動くかも)
また、bcm4329を積んでるハードウェアでなくてはならないので、NexusOne以外では動きません。
Desireでもカーネルやbcm4329ファームウェアファイルを用意すれば動くかもしれませんが苦労しそうです。

未確認ですが、ソースコードを見た限りではFroyo環境でも動きそうです。(rootは必要)

暗号化がWPA2-PSKのみになので、対応していないPSPやNitendoDSは繋がりませんが、暗号化なしにすれば利用できます。
標準のHotSpot機能に比べて、MACアドレスフィルタリングができるのでOPEN時のタダ乗りは一応防止できますが、通信内容の暗号化はされないので注意が必要です。

Update: CM-5.0.7.1で動作確認しました。