PCに関する雑多な記録

PCに関する諸々の備忘録に変身。

GoophoneI9のGPSのつかみをよくしよう

2013年05月04日 | GoophoneI9
GoophoneI9をそのままのROMでかつ、IIJmioで使っているとGPSのつかみが悪いので、GPSがあまり使い物になりません。
で、ファイルを調べていたら /etc/gps.conf が無いことがわかりました。なので、これを日本のNTPを指すようにしたファイルを
設定したところ、ちゃんとそれなりの時間でGPSをつかむようになりかなり現実的な動きをするようになりました。

これで、GPSも使えるので、さらにスマートな電話機になりました。

補足:
 MVNOのスマホは、AGPSの接続先はGoogleのサーバーになります。が、しかし、デフォルトのポート番号が違っているようです。Mobileuncle Toolsで、設定を変更します。
EngineerMode → Engineer Mode(MTK) → Location → Location Based Service
で Location Enginner Modeに入り、
AGPSのSLP Portを7276に変更します。これで、SLP Testを実行すると、すぐにSuccessが帰ってくるようになります。
次に、EPOに入って、Enable EPO, Auto Downloadにチェックをつけ、EPO(IDLE)となっているボタンをタッチ、強制的にダウンロードさせます。ダウンロードが終わったら、GPSタブにもどり、GPS(OFF)のボタンをタッチ、GPSをEnableにします。

すべての準備が終了していれば、すぐにGPSの補足が始まります。GPS Status & Toolbox で確認すると、結構短時間で位置の確認が終了するようになります。ただ、残念なことに、コンパスがないので、方向はわかりません...

Goophone I9(MTK6589)でIIJmioを使う

2013年05月04日 | GoophoneI9
GoophoneI9はもともとSIMFREEなので、DOCOMOとかSoftbankのSIMは認識するのですが、MVNOであるIIJmioのSIMはそのままで使えません。
でも、すでに

http://d.hatena.ne.jp/alunko/20130202/1359734494

でMTK6577をIIJmioで使えるようにした方がいたので、それを真似るとうまくいくようになりました。
 で、変更点は、api-levelで、元の記事では15になっていますが、Goophoneは4.2.1なので、17にする必要があります。あと
smail.jar, baksmail.jar はバージョンが新しくなっているので、それに合わせる必要があります。

 あとは、元記事に習って操作すれば出来ます。

■CWM Recoveryで/system, /data をマウントしてからの作業
mkdir temp
adb pull /system/framework/framework.jar temp\framework.jar
adb pull /system/framework/framework.odex temp\framework.odex
adb pull /system/framework temp\framework
java -Xmx512m -jar baksmali-1.4.2.jar --api-level 17 -c:core.jar:bouncycastle.jar:ext.jar:framework.jar:android.policy.jar:services.jar:core-junit.jar -d temp\framework -o temp\lv17 -x temp\framework.odex
cscript //Nologo data-only-sim-smali-fixer.wsf temp 17 0 0
cd temp
copy data-only-sim-fix.smali .\lv17\com\android\internal\telephony\gsm\GsmServiceStateTracker.smali
cd ..

◎エディタで編集
lv17\com\android\internal\telephony\gsm\GsmServiceStateTracker.smali

:pswitch_data_22
.packed-switch 0x0
:pswitch_1d ←ここに上書き
:pswitch_1d ←これをコピーして
:pswitch_1d ←ここに上書き
:pswitch_1d ←ここに上書き
:pswitch_1c
:pswitch_1d ←ここに上書き
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_1d ←ここに上書き
:pswitch_5
:pswitch_1d ←ここに上書き
:pswitch_1d ←ここに上書き
:pswitch_1c
.end packed-switch
.end method

■Windowsのコマンドプロンプト
java -Xmx512m -jar smali-1.4.2.jar --api-level 17 -o temp\classes.dex temp\lv17
cd temp
..\7za u -tzip framework.jar classes.dex
..\adb push framework.jar /data/local/tmp
cd ..
adb push busybox /data/local/tmp/
adb shell chmod 755 /data/local/tmp/busybox
adb reboot

adb shell stop
※ 正常に終了したあと...
adb shell
# 以下 android shell
su
mount -o remount,rw /system
cd /system/framework
cp framework.jar framework.jar.orig
cp framework.odex framework.odex.orig
busybox cp /data/local/tmp/framework.jar ./
rm framework.odex
sync
reboot

adb shell stop
※ 正常に終了したあと...

adb shell
su
mount -o remount,rw /system
busybox cp /data/dalvik-cache/system@framework@framework.jar@classes.dex /system/framework/framework.odex
cd /system/framework
busybox dd if=./framework.odex.orig of=./framework.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
reboot

これで、ちゃんとアンテナが経つはず