Z1fの液晶がおかしくなった

投稿日: Leave a comment

通勤中,電車の中でふとZ1fの画面を見たら,右端から8mm位のところに縦線が表示されるようになった.

さらによく見ると,画面右半分が全体的にちらついている.

静電気か何かで液晶のコントローラがおかしくなったか,フレキが接触不良か何かでノイズ拾っているか.

使えないこともないけど,気持ちが悪いので,白ROMで買った端末だけど,ドコモショップに持ち込もうかと思う.

Z1fのAPNプロトコル設定

投稿日: Leave a comment

Xperia Z1 f を買った直後はAndroid 4.2.2だったが,動作確認として IIJmio の APN を設定したところ,これのP.20の動作確認と同じくAPNプロトコルに「IPv4/IPv6」(IPV4V6) を設定出来たけど,Android 4.4.2 にバージョンアップしたところ,APNプロトコルの設定がグレイアウトして設定できなかった.

Screenshot_2014-08-30-23-11-15

続きを読む Z1fのAPNプロトコル設定

Xperia Z1f 購入

投稿日: Leave a comment

ソフマップにてXperia Z1f (SO-02F) の白ロムを買った.

今使っているGalaxy Note (SC-05D) のメモリが足りなくなってきたので,次の機種を検討.

電車で大きい端末を使うのは手の小さい自分にとっては結構つらいので今度は小さいのにしようと決めていて,白ロムで割と程度が良くて値段もお手頃な Z1f にした.IPv6にも対応してそうだしってことで.

設定等については追々.

データ専用MVNO SIMのセルスタンバイ対策

投稿日: Leave a comment

よく見ているサイトの情報が更新されていて、おもしろそうな方法が載っていたので、いじり済みのframework.odexを元に戻してインストールしてみた。

framework.odexを戻す前と同じように使えているので特に問題なさそう。

手間を考えるとXposedを使う方がはるかに簡単。

勢い余って、LT18iのICS ROMを焼いたSO-01Cにも同じことをやってみた。こちらもframework.odexをいじっていたがうまく処理できていなかったのか「通信サービスなし」の表示がとれず気になっていたが、Xposedの方法だと下のスクリーンキャプチャのように「NTT DOCOMO」が表示されるようになった。

Screenshot_2013-05-07-20-58-16

SIMロック解除

投稿日: Leave a comment

ここに書いてあるのをやってみた。

SoftBankの使用済みSIMを入れたときのネットワークサーチ結果。DOCOMO、SoftBank、KDDIどれも利用可能なネットワークに見えてる。うまくいってる?

20130425_SB

 

IIJmio (DOCOMO) のSIMに変えた後のネットワークサーチ結果。DOCOMOだけ利用可能なネットワークになった。DOCOMOのSIMだから?

20130425_DCM

 

SoftBankのSIMを入れたときにUnlockの解除キーを聞かれなくなったのでうまくいってるとは思うのだけど。プリペイドのSIMでも手に入れられれば確認できるのかな。

P-02D ICSアップデート

投稿日: Leave a comment

朝何気なく自社の商品ページを見たらP-02Dのアップデートのお知らせを発見。

P-02Dは普段持ち歩いていないので、アップデータを自宅サーバでwgetでダウンロードしておいて、帰宅後にアップデート。

> wget "http://dlcache.mobile.pfota.com/pcdownload/firmware/0P0000110100000000000279_0917.dat"

アップデートはここに書いてあるPCでダウンロードしてSDにアップデータを置いてインストールする方法で実行。

所要時間は約30分。開始後10分で、実際に書き換えが始まるようで電源を切るなというメッセージとともに残り時間が表示されるようになった。

アップデート後、再起動で完了。ただホーム画面においていたウィジェットがほとんど動作していなかったので、ガッツリ工場出荷状態に初期化。

立ち上げた時の雰囲気はP-06D (ELUGA V)そのもの。個人的には悪くはない。

P-02Dで一つ気になっていた、MVNO SIMを入れたときにGPSがちゃんと動いていなかったのが、動くようになっていた(GPS Testで確認)。

また、挙動もちょっと違う感じ。以前は、レベルが0の衛星がたくさん見えていたけど、それが表示されなくなって、実際に見えている(と思われる)衛星のみが表示されるようになった。

あと、カメラの性能は追々確認しようと思う。

 

SC-05Dアップデート

投稿日: Leave a comment

4/12頃にソフトウェア更新の通知がきた。ただ、リカバリーのROMを純正ROMからCWMに焼きかえていたため、アップデートに失敗するのは分かっていて、延期→3時間延長を繰り返していたけど、さすがにしつこいので夜な夜なアップデートした。

アップデートはROM焼きツールのodinから。ここに書いてある通り。IMM76D.OMMP2のROMイメージを落としてきてodinで焼くだけ。

ついで、CWMの最新版 (ここにあるV6.0.1.2_r13) を入手して焼き、CWMからSuperSUを焼く。

そのあと、データ専用SIM対策とテザリング対策。前回と全く同じ手順。

再起動直後、BusyboxやTitanium backupの動きがおかしかったけど、何度か再起動しているうちに問題なく動くようになった。解決方法がわからずちょっと怪しいが結果おーらい。

ServiceState.radioTechnologyToString

投稿日: Leave a comment

山手線に乗っているとAndroidのRAT表示がHSDPA:9とHSPA:11が頻繁に切り替わり、通勤中はUMTS:3、HSDPA:9、LTE:14がよく切り替わる。この3とか9とか11とか14はカテゴリか何かだとは思っていたけど、正確には理解していなかったので、Androidのソースを落としてきて調べてみた。

ソースはgitで落としてくる。ICS/LT18i化したSO-01Cと最近買ったSC-05DのどちらもAndroidバージョンは4.0.4なので、その最新版のframeworkのソースを落としてみる。

> git init
> git clone -b android-4.0.4_r2.1 https://android.googlesource.com/platform/frameworks/base/

さっそく読み進める。

モデム周りの制御はここでいじったGsmServiceStateTrackerというのはある程度わかっていたのでまずはここを見る。

base\telephony\java\com\android\internal\telephony\gsm\GsmServiceStateTracker.java

    if (DBG) {
        log("RAT switched " + ServiceState.radioTechnologyToString(mRadioTechnology) +
                " -> " + ServiceState.radioTechnologyToString(mNewRadioTechnology) +
                " at cell " + cid);
    }

alogcatというアプリで無線のログを眺めていると”RAT switched HSDPA:9 -> LTE:14″という感じのがパラパラ出てくるのでRAT switchedで探したら上のコードを見つけた。ServiceState.radioTechnologyToStringとそれっぽい関数がHSDPA:9とかLTE:14を作っているように見える。

で、次に base\telephony\java\android\telephony\ServiceState.java を見てみて、ずばりのところを見つけた。

    /**
     * Convert radio technology to String
     *
     * @param radioTechnology
     * @return String representation of the RAT
     *
     * @hide
     */
    public static String radioTechnologyToString(int rt) {
        String rtString;

        switch(rt) {
            case 0:
                rtString = "Unknown";
                break;
            case 1:
                rtString = "GPRS";
                break;
            case 2:
                rtString = "EDGE";
                break;
            case 3:
                rtString = "UMTS";
                break;
            case 4:
                rtString = "CDMA-IS95A";
                break;
            case 5:
                rtString = "CDMA-IS95B";
                break;
            case 6:
                rtString = "1xRTT";
                break;
            case 7:
                rtString = "EvDo-rev.0";
                break;
            case 8:
                rtString = "EvDo-rev.A";
                break;
            case 9:
                rtString = "HSDPA";
                break;
            case 10:
                rtString = "HSUPA";
                break;
            case 11:
                rtString = "HSPA";
                break;
            case 12:
                rtString = "EvDo-rev.B";
                break;
            case 13:
                rtString = "eHRPD";
                break;
            case 14:
                rtString = "LTE";
                break;
            case 15:
                rtString = "HSPAP";
                break;
            default:
                rtString = "Unexpected";
                Log.w(LOG_TAG, "Unexpected radioTechnology=" + rt);
                break;
        }
        return rtString + ":" + rt;
    }

数字はカテゴリでもなんでもなくて、RATに順番に番号を振っただけ。これだけ見るとなんだ、という感じだけどこういう情報がまとまっているのは見たことないので、個人的にはすっきりした。

これを機にAndroidのソースを読み進めようと思ったけど膨大すぎてすでに挫折気味。

アンテナピクト対策他

投稿日: Leave a comment

Galaxy noteを1週間近く使ってみて気になったこと。

  • 電池の減りは -4~-5%/h とちょっと多め
  • 普段はHSDPA(7.2Mbps)だけど、たまにUMTS(384kbps)に落ちることがある。
  • テザリングできない。
  • アンテナピクトの横のRAT表示はないとやっぱり不便

ということで、上2つはもう少し様子見、残りの2つを対策すべく、ここを参考にシステムファイルをいじってみた。

自分でも忘れそうなので備忘録として書いておきます。とりあえず、CWMリカバリ導入済み、root化済み、PCにはSamsung Kiesをインストールしてドライバは設定済み、adbが使えるようになっていることが前提。

1. /system/frameworkの吸出し

コマンドプロンプトから

adb pull /system/framework orig\framework

これで、orig\frameworkにファイルがコピーされる。さらに、作業用ファイルとしてworkディレクトリに framework.jar  をコピーしておく。

2. framework.odexを展開

java -jar baksmali-1.4.1.jar -a 15 -d orig\framework -x work\framework.odex

すると、outディレクトリが作成されてその下にたくさんのファイルが展開される。

3. ファイルの修正

変更箇所をパッチとして貼り付けようと思ったら思いのほか長いのでファイルへのリンクとして張ります。

mvno_psonly_sc05d_ics.patch

基本的にはここに書いてあるとおりで、

  • CS DomainでAttachに成功していると見せかける
  • テザリング時のAPNを変更させないようにする
  • 非 docomo 回線に見せる

というもののようです。(一つ目はXperia arcのときもやったけど、下2つはコードを読んでもよくわからず)

4. framework.jarに格納

まずはsmaliでdex化

java -jar smali-1.4.1.jar -o classes.dex out

ついで、framework.jarに格納 ※一応、zip非圧縮で

7za.exe u -tzip -mx0 work\framework.jar classes.dex

5. framework.odex生成

dexopt-wrapperが使えないらしいので端末のブート処理でodexを作らせる。

新しく作ったframework.jarを端末内に送り込み、オリジナルのframework.{jar,odex}をframework.{jar,odex}.old にリネームしておく。

adb push work\framework.jar /data/local/tmp/framework.jar.new
adb shell mv /system/framework/framework.jar /system/framework/framework.jar.old
adb shell cp /data/local/tmp/framework.jar.new /system/framework/framework.jar
adb shell mv /system/framework/framework.odex /system/framework/framework.odex.old

Wipe cache partition、Wipe Dalvik Cacheをして再起動。

ここでブートが途中で止まるので、1分くらい放置してからリカバリモードで再起動。

すると、framework.odexが 端末内の/data/dalvik-cache/system@framework@framework.jar@classes.dex として作られるので名前を変えておく。

adb shell mv /data/dalvik-cache/system@framework@framework.jar@classes.dex /data/local/tmp/framework.odex.new

一旦、framework.jarとframework.odexを元に戻す。

adb shell rm /system/framework/framework.jar
adb shell mv /system/framework/framework.jar.old /system/framework/framework.jar
adb shell mv /system/framework/framework.odex.old /system/framework/framework.odex

署名をコピーする。

adb shell busybox dd if=/system/framework/framework.odex of=/data/local/tmp/framework.odex.new bs=1 count=20 skip=52 seek=52 conv=notrunc

これで新しいframework.odex(.new)が出来上がり。

6. ファイル差し替え

adb shell cp /data/local/tmp/framework.odex.new /system/framework/framework.odex.new
adb shell chmod 644 /system/framework/framework.odex.new
adb shell mv /system/framework/framework.odex /system/framework/framework.odex.orig
adb shell mv /system/framework/framework.odex.new /system/framework/framework.odex

もう一度、Wipe cache partition、Wipe Dalvik Cacheをして再起動。

おしまい。