2011年11月23日水曜日

ICS on IS01



動いたっぽい
パッチ : ics.patch
init.rc : ICS111123init.rc
boot.img : ics_boot111123.img
パーミッション変更スクリプト : set_permission.sh

full-userでビルド
out/target/product/generic/system以下全てのファイルを/data/ics/system/にadb push
ics_boot.img、set_permission.shを/data/ics/にadb push
adb shell
cd /data/ics/
./set_permission.sh
flash_image recovery ics_boot.img
sync
reboot recovery

画面の描画がうまくいかない。
surfaceflingerとやらがlogcatで

W/SurfaceFlinger( 1292): ANDROID_WAIT_FOR_FB_SLEEP failed (Bad file number)
W/SurfaceFlinger( 1292): ANDROID_WAIT_FOR_FB_WAKE failed (Bad file number)
W/SurfaceFlinger( 1292): ANDROID_WAIT_FOR_FB_SLEEP failed (Bad file number)
W/SurfaceFlinger( 1292): ANDROID_WAIT_FOR_FB_WAKE failed (Bad file number)
W/SurfaceFlinger( 1292): ANDROID_WAIT_FOR_FB_SLEEP failed (Bad file number)
W/SurfaceFlinger( 1292): ANDROID_WAIT_FOR_FB_WAKE failed (Bad file number)
という感じにエラーを吐きまくってる
このエラーを検索すると
/frameworks/base/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.cppにエラーメッセージを出している箇所を発見した
そのソースを見てみると、
…C++わからん
で終了する(ぉ

よくわからないがgrallocが関係してるんじゃないか?
こっからソースを取ってきて入れ替えるといけるんじゃ?

参考:

2011年11月16日水曜日

パッチを書いてみた


誰でもできるぐらいの修正しかできませんが

LockScreenを無効化(したつもり)
ポートレートでソフトキーが出てこない問題を修正
端末を開くだけで画面がonに

してみました
パッチはここに置かせてもらってます

パッチをあててビルドしたものも置いときます
/system/framework/android.policy.jarを入れ替えるだけでおk

android.policy.jar

adb pushで転送し
/data/cm4is01/system/frameworkにコピー
そしてchmod 755 android.policy.jar
これで再起動します
入れ替えたあとの最初の再起動は長いです

2011年11月6日日曜日

GoogleTVで日本語入力

 
できた
ビルドに結構苦労したが
GoogleTV用のOpenWnnを置いとこう
OpenWnn.apk


インストールはadbでGoogleTVに接続してadb install openwnn.apk


Settings/Input devices/Configure input methodsでJapanese IMEにチェックをつける
Settings/Input devices/Current keyboardでJapanese IMEを選択し、準備完了
入力したいテキストボックスをマウスでクリックすると下に白いバーが出てきてOpenWnnが有効になる
入力しても英語入力になってしまう時はShift+Spaceで日本語入力に切り替えられる


ビルド方法を書いておく
私がビルドした環境はubuntu 64bit
androidのソースは取得できているものとし、必要なパッケージもインストールされているものとする
今回はcyanogenmod6のソースを使用したがAOSPソースでもいけるはず


まずパッチを当てる
----------------------------------------------------------------------------------------------------------

--- frameworks/base/libs/utils/Android.mk.org   2011-11-02 21:45:48.010661218 +0900
+++ frameworks/base/libs/utils/Android.mk       2011-11-02 21:46:32.015647844 +0900
@@ -74,7 +74,7 @@

 LOCAL_MODULE:= libutils

-LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
+LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive
 LOCAL_C_INCLUDES += external/zlib

 ifeq ($(HOST_OS),windows)
-----------------------------------------------------------------------------------------------------------

そしてビルド
$ TARGET_ARCH=x86 TARGET_PRODUCT=sim TARGET_SIMULATOR=true TARGET_BUILD_TYPE=debug make OpenWnn
ページの都合上3行になっているが一行で入力してEnter

これでやっとGoogleTVも日本でまともに使えるようになる第一歩か


参考にしたページ
https://groups.google.com/forum/#!topic/android-building/7SLPj23IFDw
https://groups.google.com/forum/?hl=ja#!msg/android-porting/q1UxFtvJYNo/2rCNf38SDtsJ