Nexus5 その42013年11月10日 22:43

とりあえず、AOKPの4.4版がまだ出てないので
JCROM用の4.4ソースをダウンロードして色々いじってみる。

とりあえず実装してみたのは
・セルスタンバイ対策スイッチ
・SPN非表示スイッチ(NTT DOCOMO|NTT DOCOMOをNTT DOCOMOにする)
・アクションバー表示位置変更スイッチ(JCROMに実装されるだろうけど…)

あと、
・フォント変更および追加
・APNデフォルト値追加
・広告非表示のためのhosts修正

てなところか。
JCROM用のソースは初めからICSのブラウザが入っているので追加の手間がなくてよかった。

GAPPは
pa_gapps-full-4.4-20131107-signed.zip
を利用中。


Nexus5 その32013年11月10日 22:26

Nexus5もMVNOのデータ専用SIMではセルスタンバイ問題が発生している。
アンテナピクトは正常に表示されているから一見気が付きにくい。

対応方法はAndroid4.3までと同じく
frameworks/opt/telephony/src/java/com/android/internal/telephony/ServiceStateTracker.java


useDataRegStateForDataOnlyDevices()
メソッド内の条件分岐をいじるだけ。

しかし、機内モードから戻ったときとか妙に電波のつかみが悪いときがあるような気がするのは気のせいだろうか?→OCNモバイルd


Nexus5 その22013年11月10日 22:21

ICSのブラウザを追加してみたところ、正常に動作しない。
ページを開くと異常終了する。
なんでだろうと思っていたら、Evernoteも動作しない。
Noteを開くと同じく異常終了する。

原因はフォント変更のために修正したsystem_fonts.xmlにあった。
AAを正常に見るためにこのファイルの先頭に
    <family>
        <nameset>
            <name>system</name>
        </nameset>
        <fileset>
            <file>Roboto-Regular.ttf</file>
            <file>Roboto-Bold.ttf</file>
            <file>Roboto-Italic.ttf</file>
            <file>Roboto-BoldItalic.ttf</file>
        </fileset>
    </family>

    <family>
        <nameset>
            <name>MS Pゴシック</name>
            <name>MS PGothic</name>
        </nameset>
        <fileset>
            <file>mspgothic.ttf</file>
        </fileset>
    </family>

こんな感じでセクション追加してたんだけど、どうもこれが悪戯をしていたみたい。
セクションごとファイルの最後方に移動したところブラウザが落ちなくなった。


Nexus52013年11月10日 22:14


Nexus5

購入した。
32G版の黒。
2日夜に注文して到着は6日夕方。

ケースはSPIGENの
SGP Google Nexus5 ケース ネオ・ハイブリッド
こちらは4日注文の8日到着だった。
一緒にフィルムも買ったんだけどちと指紋が目立つ…

AOKP覚書(android4.3)その82013年10月29日 23:27

こちらの記事を参考に、MVNOのデータ専用SIM利用時のアンテナピクト&セルスタンバイ問題回避のためのスイッチを作ってみた。
スイッチの追加場所はモバイルネットワーク設定。

まずは必要なリソース追加

packages/apps/Phone/res/values/strings.xml
+   <!-- MVNO SIMCard CustomSetting-->
+    <string name="mvno_sim_custom">MVNO DataOnlySIM Patch</string>
+    <string name="mvno_sim_custom_summary_enable"></string>
+    <string name="mvno_sim_custom_summary_disable"></string>

packages/apps/Phone/res/values-ja/strings.xml
+    <!-- MVNO SIMCard CustomSetting-->
+    <string name="mvno_sim_custom">MVNO Data専用SIMパッチ</string>
+    <string name="mvno_sim_custom_summary_enable">MVNO等のDATA専用SIM利用時にアンテナピクト表示およびセルスタンバイ問題を解決する</string>
+    <string name="mvno_sim_custom_summary_disable">MVNO等のDATA専用SIM利用時のアンテナピクト表示およびセルスタンバイ問題パッチを無効にする</string>


packages/apps/Phone/res/xml/network_setting.xml
+    <CheckBoxPreference
+        android:key="mvnosim_custom"
+        android:title="@string/mvno_sim_custom"
+        android:summaryOn="@string/mvno_sim_custom_summary_enable"
+        android:summaryOff="@string/mvno_sim_custom_summary_disable"/>



設定項目用の実装

packages/apps/Phone/src/com/android/phone/MobileNetworkSettings.java

@@ -200,6 +200,14 @@ public class MobileNetworkSettings extends PreferenceActivity
                 android.util.Log.e(LOG_TAG, "Missing SETUP_PREPAID_DATA_SERVICE_URL");
             }
             return true;
+        } else if (preference == mMvnoSimCustom) {
+            //MVNO SIMCard CustomSetting
+            if (mMvnoSimCustom.isChecked()) {
+                SystemProperties.set(MVNO_SIM_CUSTOM_PROPERTY, "true");
+            } else {
+                SystemProperties.set(MVNO_SIM_CUSTOM_PROPERTY, "false");
+            }
+            return true;

         } else {
             // if the button is anything but the simple toggle preference,
             // we'll need to disable all preferences to reject all click

@@ -228,6 +236,14 @@ public class MobileNetworkSettings extends PreferenceActivity
         mButtonPreferredNetworkMode = (ListPreference) prefSet.findPreference(
                 BUTTON_PREFERED_NETWORK_MODE);
         mLteDataServicePref = prefSet.findPreference(BUTTON_CDMA_LTE_DATA_SERVICE_KEY);
+        //MVNO SIMCard CustomSetting
+        mMvnoSimCustom = (CheckBoxPreference) prefSet.findPreference(MVNO_SIM_CUSTOM_KEY);
+        String mvnosim = SystemProperties.get("persist.radio.mvnosim.custom");
+        if ("true".equals(mvnosim)) {
+            mMvnoSimCustom.setChecked(true);
+        } else {
+            mMvnoSimCustom.setChecked(false);
+        }

 
         boolean isLteOnCdma = mPhone.getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE;
         boolean isLteOnGsm = mPhone.getLteOnGsmMode() != 0;

@@ -705,4 +721,9 @@ public class MobileNetworkSettings extends PreferenceActivity
         }
         return super.onOptionsItemSelected(item);
     }
+
+    //MVNO SIMCard CustomSetting
+    private static final String MVNO_SIM_CUSTOM_PROPERTY = "persist.radio.mvnosim.custom";
+    private static final String MVNO_SIM_CUSTOM_KEY = "mvnosim_custom";
+    private CheckBoxPreference mMvnoSimCustom;

 }

動作部分の実装

frameworks/opt/telephony/src/java/com/android/internal/telephony/ServiceStateTracker.java

@@ -244,7 +245,8 @@ public abstract class ServiceStateTracker extends Handler {
      * data only devices, to fix that use DataRegState.
      */
     protected void useDataRegStateForDataOnlyDevices() {
-        if (mVoiceCapable == false) {
+        String mvnosim = SystemProperties.get("persist.radio.mvnosim.custom");
+        if ("true".equals(mvnosim) || mVoiceCapable == false) {
             if (DBG) {
                 log("useDataRegStateForDataOnlyDevice: VoiceRegState=" + mNewSS.getVoiceRegState()
                     + " DataRegState=" + mNewSS.getDataRegState());