ぽ箱4が動くまでの戦い!

その日、ツイッター見てると、なにやらxdaにXperia arcのROMがアップされたと・・・
日曜日だったので、自宅でさくっとダウンロードして、中身をにると、ソニエリっぽいが、やはり見たことのない構成だったので
ktkr!!
早速、弄ってみることにした。まず、気になったのがぽ箱でした。
例によって、私の場合、2.1がホームグラウンドなわけで、2.1で動くのか確認するために、いつもの
apkmanagerの登場ですw
いきなり入れてみる!というのもありですけど、自分の場合、AndroidManifest.xmlを確認します。
[bash]
<activity android:name="com.sonyericsson.android.iwnnime.TargetEditText12key" />
<activity android:name="com.sonyericsson.android.iwnnime.TargetEditTextLandscape" android:screenOrientation="landscape" />
<activity android:name="com.sonyericsson.android.iwnnime.TargetEditText12keyLandscape" android:screenOrientation="landscape" />
<service android:name="com.sonyericsson.android.iwnnime.poboxplugin.POBoxPluginBroadcastService" android:enabled="true" />
</application>
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="9" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
</manifest>
[/bash]
このuses-sdkのところを見れば、どのバージョンで動くのか、おおよそわかります。
この場合、minSdkVersion=”7″ということでEclair(2.1)のことです。で、targetSdkVersion=”9″は、GingerBread(2.3)ですから、この時点でEclair以上、GingerBreadまでで動くということが、推察されます。
だったら、突っ込むかw
そして、まあ、普通に使えることが確認できたので、次はカスタムROM主流のfroyoで試すことに・・・
お試しはFX10β3です。(当時、β4はdocomoファームで動かなかったのでw)最初からインスコしました。
自作APNの設定ファイルとこのサイトでも以前紹介したぽ箱に必要なlibファイルを取り揃えて、zip作って突っ込みました。
ここに悲劇が!!
自作のbuild.propを入れ忘れてましたw
ktkr!!
まぁ、これが、連発して・・・(って人多い?w)
そこで、私の大好きなadbコマンドでログ見ます。(ddmsのほうが見やすいかw)
[bash]
c:\> adb logcat
[/bash]
で、出力された結果の抜粋ですが
[bash]
I/ActivityManager( 1569): Start proc com.sonyericsson.android.iwnnime for service com.sonyericsson.android.iwnnime/.jajp.POBoxTouch: pid=2360 uid=10015 gids={1015}
I/iWnn ( 2360): JNI_OnLoad
D/AndroidRuntime( 2360): Shutting down VM
W/dalvikvm( 2360): threadid=1: thread exiting with uncaught exception (group=0x4001d7c8)
E/AndroidRuntime( 2360): FATAL EXCEPTION: main
E/AndroidRuntime( 2360): java.lang.IllegalAccessError
E/AndroidRuntime( 2360): at com.sonyericsson.android.iwnnime.OpenWnn.onCreate(OpenWnn.java:88)
E/AndroidRuntime( 2360): at com.sonyericsson.android.iwnnime.jajp.IWnnImeJaJp.onCreate(IWnnImeJaJp.java:648)
E/AndroidRuntime( 2360): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2959)
E/AndroidRuntime( 2360): at android.app.ActivityThread.access$3300(ActivityThread.java:125)
E/AndroidRuntime( 2360): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2087)
E/AndroidRuntime( 2360): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 2360): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 2360): at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime( 2360): at java.lang.reflect.Method.invokeNative(NativeMethod)
E/AndroidRuntime( 2360): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 2360): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime( 2360): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime( 2360): at dalvik.system.NativeStart.main(Native Method)
[/bash]
起動していきなり落ちてますw
java.lang.IllegalAccessErrorとな?
場所は、
com.sonyericsson.android.iwnnime.OpenWnn.onCreateとな?
onCreateって、思いっきり、いきなりじゃんw
で、プログラムを見てみるわけですが、さっきapkmanagerでデコンパイルしてますから、探してみます。
というか、すぐ見つかりますが、
apk_manager_4.9\projects\JapaneseIME.apk\smali\com\sonyericsson\android\iwnnimeの中のOpenWnn.smali
が、ぁゃιぃ!
ファイルを開いて、onCreateって文字を検索してみると
[bash]
.method public onCreate()V
.locals 5
.prologue
.line 84
invoke-super {p0}, Landroid/inputmethodservice/InputMethodService;->onCreate()V
.line 86
const-string v3, "ro.product.manufacturer"
invoke-static {v3}, Landroid/os/SystemProperties;->get(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 87
.local v1, manufacturer:Ljava/lang/String;
const-string v3, "Sony Ericsson"
invoke-virtual {v1, v3}, Ljava/lang/String;->matches(Ljava/lang/String;)Z
move-result v3
if-nez v3, :cond_0
.line 88
new-instance v3, Ljava/lang/IllegalAccessError;
invoke-direct {v3}, Ljava/lang/IllegalAccessError;-><init>()V
[/bash]
ほら、あるじゃんw logcatのメッセージも
at com.sonyericsson.android.iwnnime.OpenWnn.onCreate(OpenWnn.java:88)
って88行目?
[bash]
.line 88
new-instance v3, Ljava/lang/IllegalAccessError;
[/bash]
ビンゴでしょw
86行目(.line 86)あたりで見慣れた文字がw build.propのあれですよね?
87行目(.line87)で、見慣れた文字列が… ソニエリってw
invoke-virtual {v1, v3}, Ljava/lang/String;->matches(Ljava/lang/String;)Z
ってとこで、v1とv3を比較しているわけですよ。
v1にはbuild.propに設定されている文字列が入ってて、v3にはソニエリって文字が入ってるわけですよ。
なので、build.propにソニエリ文字列が入っていないと、動かないわけですねw
ってことは、なにか!
invoke-virtual {v3, v3}, Ljava/lang/String;->matches(Ljava/lang/String;)Z
なんてしたら、ソニエリ文字列とソニエリ文字列を比較するわけで、同じジャマイカ!!
そうです。チェックがパスされるわけです。
ひっそり、ツイッターのフォロワーの方にプレゼントしたぽ箱は、上記修正をしてリコンパイルしたものです。(銀河でも動いたと報告受けました。当たり前かw)
まぁ、このあたりの情報は、したらばにも投稿しましたけど(こんなに詳しくは、してないですw)。
ふぅー。これで、仕事はオワタ・・・( ´ー`)y-~~ と思ったら、
なんと、事件は現場で起こってるんだ!
つづく…(のか?)
-
前の記事
v06の謎 2011.03.19
-
次の記事
#xperiaのカーネルパラメータを弄っちゃおうw 2011.04.03
是非、続いて下さい。
気になりますw
見てるうちにテーマが2転3転してて、、、
ビックリしましたwww
テーマ触られてるようで。
もし宜しければ、、、
シングルページにもページ送りが
あったらなぁ、と思ったりしてしまいました。
すみません(汗
うぉぉぉぉ。ばれてましたか!!
そうなんですよ、ブログのカスタマイズもw
大体あれなんですが、基本デザインセンスないもので、
どこかからダウンロードしてきては試してを繰り返してたので・・・
ご要望承りますたw
ページ上部にページ送りがw
ありがとうございます。
現在、GoroCustom-06+ぽ箱4プレゼントバージョンを
使わせていただいていますm(_ _)m
いつも有難う御座います。
九州に住んでいるので、
千葉に足が向かないよう北枕で寝させて頂いていますw
流れ流れでこちらにたどり着き、大変お世話になっております!
五郎さんのようにプログラム系(言い方が違う?)には全然詳しくなく・・・
説明サイトを参考にGoroCustom-06を叩き込んでXperiaがサクサクになってびっくりしました!
また、ぽ箱4の方もまたこちらでアップしてくれるとうれしいです(^_^;
五郎さんも何だかんだでarc買っちゃったりする可能性あります…?
スペック見ちゃうとどう考えてもスルーと思うんだけどペリアブロガーが次々と乗り換えちゃって失望w
いあ、今はarcに興味ないですね。
そんなにスペック変わってないし、重いだの、使えねぇだの言ってる人に
こうすれば、十分使えるよってのを公開してるだけなんですけどねw
まぁ、正規の使い方じゃないし、強制できないんですけどね。
って、これもまた、他人のフンドシでやってるんですが、「えっ、そうなの?」って人が
簡単に導入できるようにと、やってるわけでして…(最初は皆さん結構苦労したと思うのでw)
同感です
xdaの方でも俄然盛り上がってきましたし、まだまだこれからですね?
今回のA-SPECwも有難く使わせていただきます