ronzi A3カスタマイズメモ 20111024版

Facebook にシェア
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]

ronzi A3をカスタマイズしていくときのメモ書きをいくつか・・・

・YouTubeアプリを最新版にするとHQモードが動かない、ということなので2.0.26を使用する。
その他、[GUIDE] Cruz T10x / T301: Rooting, Dalvik Turbo, Removing Bloatware, Gapps & Market & More にある以下のファイルを持ってきた。

– Android Market 3.1.3
– Google Maps 5.9.0
– Google Books 1.1.4
– Google Talk 1.3
– OI File Manager 1.16
– Spare Parts 2.3.5
– YouTube 2.0.26

・Dalvik Turboはfroyo-hard-float-r1を使用している
上記のCruz Tabletでは、froyo-soft-float-r1を使用しているようだけど、hard floatにしている。

・nicoWnnGの設定ファイル
デフォルト設定では以下となっている。

# pwd
/data/data/net.gorry.android.input.nicownng/shared_prefs
# ls -l net.gorry.android.input.nicownng_preferences.xml
-rw-rw---- app_33   app_33       1057 2011-10-24 01:48 net.gorry.android.input.nicownng_preferences.xml
# cat net.gorry.android.input.nicownng_preferences.xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="nicoflick_mode_landscape">0</string>
<boolean name="change_alphanum_12key_portrait" value="true" />
<string name="nico_candidate_lines_portrait">3</string>
<boolean name="change_kana_12key_portrait" value="true" />
<string name="candidateview_height_mode2_landscape">2</string>
<boolean name="change_kana_12key_landscape" value="false" />
<string name="input_mode_landscape">input_normal</string>
<boolean name="change_alphanum_12key_landscape" value="false" />
<string name="nicoflick_mode_portrait">0</string>
<string name="input_mode_portrait">input_normal</string>
<string name="candidateview_height_mode2_portrait">2</string>
<string name="nico_candidate_lines_landscape">1</string>
<string name="flick_sensivity_mode_landscape">0</string>
<string name="flick_sensivity_mode_portrait">0</string>
<boolean name="new_preference_20110417a" value="true" />
<string name="mainview_height_mode2_landscape">2</string>
<string name="mainview_height_mode2_portrait">2</string>
</map>
#

設定を行うと↓のような感じになる。

# cat net.gorry.android.input.nicownng_preferences.xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="nico_candidate_lines_portrait">3</string>
<string name="candidateview_height_mode2_landscape">1</string>
<boolean name="shrink_candidate_lines_landscape" value="false" />
<boolean name="change_alphanum_12key" value="false" />
<string name="candidate_font_size">0</string>
<string name="input_mode_landscape">input_normal</string>
<boolean name="popup_preview" value="true" />
<string name="flick_sensivity_mode">0</string>
<string name="candidateview_height_mode2_portrait">2</string>
<string name="nico_candidate_lines_landscape">1</string>
<boolean name="space_below_keyboard_landscape" value="true" />
<string name="nicoflick_mode">0</string>
<string name="flick_sensivity_mode_portrait">0</string>
<boolean name="space_below_keyboard" value="true" />
<string name="input_mode">input_normal</string>
<string name="keyboard_skin">keyboard_android_default</string>
<boolean name="show_candidate_fulllist_button_landscape" value="true" />
<boolean name="show_candidate_fulllist_button" value="true" />
<boolean name="is_skip_space_landscape" value="true" />
<boolean name="opt_enable_learning" value="true" />
<boolean name="shrink_candidate_lines" value="false" />
<boolean name="change_alphanum_12key_landscape" value="false" />
<boolean name="different_pl" value="true" />
<string name="key_sound_vol">1</string>
<string name="candidateview_height_mode2">1</string>
<string name="flick_sensivity_mode_landscape">0</string>
<string name="mainview_height_mode2_landscape">0</string>
<boolean name="nospace_candidate2_landscape" value="true" />
<boolean name="change_alphanum_12key_portrait" value="true" />
<string name="qwerty_kana_mode_landscape">0</string>
<string name="qwerty_kana_mode">0</string>
<boolean name="change_kana_12key_portrait" value="true" />
<boolean name="change_kana_12key" value="false" />
<boolean name="nospace_candidate2" value="true" />
<boolean name="flick_guide_landscape" value="true" />
<boolean name="nico_candidate_vertical" value="true" />
<boolean name="new_preference_20110417a" value="true" />
<string name="candidate_font_size_landscape">0</string>
<string name="nicoflick_mode_landscape">0</string>
<string name="mainview_height_mode2">0</string>
<string name="nico_candidate_lines">1</string>
<boolean name="flick_guide" value="true" />
<boolean name="opt_spell_correction" value="true" />
<boolean name="change_kana_12key_landscape" value="false" />
<boolean name="is_skip_space" value="true" />
<string name="nicoflick_mode_portrait">0</string>
<string name="input_mode_portrait">input_normal</string>
<string name="hidden_softkeyboard2">0</string>
<string name="hidden_softkeyboard2_landscape">0</string>
<string name="opt_prediction_mode">on_prediction</string>
<boolean name="nico_candidate_vertical_landscape" value="true" />
<string name="mainview_height_mode2_portrait">2</string>
</map>
#

・nicoWnnGを最初から有効にしておく方法(失敗)
設定を行うと、「/data/data/com.android.settings/shared_prefs/com.android.settings_preferences.xml」に記録されているように見える。

# cd /data/data/com.android.settings/shared_prefs
# ls -l
-rw-rw---- system   system        198 2011-10-24 01:47 com.android.settings_preferences.xml
# cat com.android.settings_preferences.xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="net.gorry.android.input.nicownng/.NicoWnnGJAJP" value="true" />
</map>
#

ちなみにsystem:systemは数値で表現すると1000:1000である。

なお、開発オプションのUSB接続時にスリープにしない設定を入れたりすると、このファイルは以下の様になる。

# cat com.android.settings_preferences.xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="allow_mock_location" value="true" />
<boolean name="enable_adb" value="true" />
<boolean name="keep_screen_on" value="true" />
<boolean name="location_network" value="false" />
<boolean name="net.gorry.android.input.nicownng/.NicoWnnGJAJP" value="true" />
</map>
#

しかし、実際に、上記の設定を行ってみても、設定は有効にはならないようで、Android内部に別途作成されるsqliteのデータベース上への登録が必須であるようだ。

・framework-res.apkの編集
apktoolでばらして再構築、なんだけど、失敗しやすくて難儀中・・・

framework-res/res/layout/status_bar.xml 内にボタンを配置するレイアウトを追加

framework-res/res/values/ids.xmlとframework-res/res/values/public.xml 内に上記で使用している「@id/status~」という記載を追加
idの値を被らないように注意が必要。

「apktool b 展開ディレクトリ」で再構築するけど、apkファイルは作らない。
buildディレクトリ内のファイルを利用する。

1. オリジナルのframework-res.apk を作業用にframework-res-new.apkとでもする。
2. 「apktool d framework-res-new.apk」で展開する
3. framework-res-newディレクトリにいろいろファイルが出来るが、その中のresディレクトリで作業を行う。
  res\layoutとres\valuesなどでいろいろやる
4. 「apktool b framework-res-new」で再構築する
5. 面倒なのでwindowsの7-zipを使ってframework-res-new.apkを開く
6. 7-zip内操作でframework-res-new.apk\res\layoutに移動し
  framework-res-new\build\res\layout内のファイルを上書きする
7. res\valuesのデータはやり方が違うので7-zipを閉じる
8. res\valuesのデータはresources.arscに含まれるが
  非圧縮でかいた方がいいので、7zipなどでframework-res-new.apk内のresources.arscを非圧縮で置き換える
  うちの場合はlinuxでやったので「7za u -mx0 -tzip framework-res-new.apk resources.arsc」とした。
9. 上記で完成したframework-res-new.apkをronzi A3に転送する。

ポイント
・framework-res.apkを自己署名とかでやってもうまくいかない。googleの署名が必要っぽいのでなんとかごまかす。
・framework-res.apkを7zipで開くとxmlファイルがあるのが見えるけど、開いてみるとxmlそのままじゃなくて処理されているので、そのまま置き換えは不可
・apktoolをうまく使いこなす必要がある
・zipの圧縮と非圧縮もうまく使いこなす

で、書き換えたのですが、statusbarにボリュームを表示させられたけど、そこから実際のボリュームを動かすには別の設定が必要な模様・・・

それはframework.jarの方っぽい

ronzi A3とRamos V65PROのframework.jarをapktoolでばらして、diffを取ってみると、おそらく以下のあたりが関連していそうな雰囲気。

--- framework-ronzi/framework.jar.out/smali/android/media/AudioService$SettingsObser
ver.smali       2011-10-24 17:07:11.000000000 +0900
+++ framework-v65/framework.jar.out/smali/android/media/AudioService$SettingsObserve
r.smali 2011-10-24 17:08:22.000000000 +0900
@@ -184,25 +184,6 @@

     aput v2, v0, v1

-    .line 1717
-    iget-object v0, p0, Landroid/media/AudioService$SettingsObserver;->this$0:Landroid/media/AudioService;
-
-    invoke-static {v0}, Landroid/media/AudioService;->access$2200(Landroid/media/AudioService;)[Landroid/media/AudioService$VolumeStreamState;
-
-    move-result-object v0
-
-    const/4 v1, 0x5
-
-    aget-object v0, v0, v1
-
-    sget-object v1, Landroid/provider/Settings$System;->VOLUME_SETTINGS:[Ljava/lang/String;
-
-    const/4 v2, 0x2
-
-    aget-object v1, v1, v2
-
-    invoke-virtual {v0, v1}, Landroid/media/AudioService$VolumeStreamState;->setVolumeIndexSettingName(Ljava/lang/String;)V
-
     .line 1730
     :cond_1
     :goto_0
diff -ur framework-ronzi/framework.jar.out/smali/com/android/internal/R$id.smali fra
mework-v65/framework.jar.out/smali/com/android/internal/R$id.smali
--- framework-ronzi/framework.jar.out/smali/com/android/internal/R$id.smali     2011
-10-24 17:07:24.000000000 +0900
+++ framework-v65/framework.jar.out/smali/com/android/internal/R$id.smali       2011
-10-24 17:08:36.000000000 +0900

.field public static final status_date:I = 0x1020180

-.field public static final status_volume_add:I = 0x10201f6
-
-.field public static final status_volume_sub:I = 0x10201f5
+.field public static final status_home:I = 0x10201f3

 .field public static final stopSelectingText:I = 0x1020029

これだけではうまく動かなかった。

ちなみに、これで調査中にみつけたこと
・V65proのframework.jar.out/smali/android/media/MediaFile.smaliにFLACサポートっぽい記述がある

 

  1. Zeam Launcher + RotatingScreen で縦画面にすることが出来ました。lib/hw/sensors.lynx.so は削除していますが、必須かどうかは未検証。
    削除しても特に問題ないようなので、回転に必須のようなら削除しておくと良いと思います。
    報告まで。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>