ジャンル不定の日記です。

SC-02C にi9100のROMを入れる際のGPSとコンパス対応

SC-02Cにi9100(グローバル版GALAXY SII)のROMを入れるとGPSが機能しないのとコンパスが逆になる。

わけだが、
【ROM焼き】docomo GALAXY S II SC-02C root33
の356,412氏が対応方法教えてくれた。

356 :名無しさん@お腹いっぱい。:2018/03/04(日) 09:56:03.59 ID:1z/dnEf0.net
    >>342その後
    コンパス逆は意外にすんなり修正箇所特定出来たので直してみた

    修正箇所:磁気センサーXYZの各値にそれぞれ以下の補正値を乗算している
     原本)X:+0.0625 Y:-0.0625 Z:+0.0625
     修正)X:-0.0625 Y:+0.0625 Z:+0.0625

    /system/lib/hw/sensors.exynos4.soの下記4箇所
    3638 4F→50
    365E 46→45
    3C84 21→20
    3CA6 17→18

↑これはadbでpullしてバイナリエディタでいじってpushしてみたが正常になってた。


412 :名無しさん@お腹いっぱい。:2018/04/24(火) 21:06:11.74 ID:CU0tt9P8.net
    >>342,356のその後
    既に342のSC-02C用ロムは使用していないが
    i9100用ロムとの違いを洗い出すことでGPSの該当箇所を特定
    そして改変方法を確立して他のi9100用ロムでもGPSを有効にすることができた

    概要を書くと
    GPS関連の標準入出力(GPIO)ポートがi9100では237番なのに対しSC-02Cでは252番になっている
    なのでi9100用のロムについて、237番の所を252番に書き換えてやればGPSは動く
    但し、その該当箇所はカーネル内にあり、これを改変するのはちょっと面倒くさい

    おおまかな改変手順はこんな感じ
    1.boot.img(zImage)にはlzma圧縮されたカーネルが埋め込まれているので、これを切り出す(大きさは5~7MB程度)
    2.切り出した圧縮ファイルを展開すると20数MB程度のファイルが一つ出てくる
    3.この20数MB程度のファイルがカーネル本体で、こいつをバイナリ改変する(ED→FCを6箇所)
    4.再圧縮して元通りboot.img(zImage)に埋め込む

そして425氏が、
kernelmodtool_2.zip
を公開してくれた。
これは412の作業をするのに便利なboot.imgのアンパックとリパックした上でOdinやheimdallでflashできるようにtarにするスクリプト。
と、412をもっと詳しく説明した.txtとか入ってる。


2人共マジ感謝です。
これで死ぬまでSC-02Cメインで行けそう!