2012年10月19日金曜日

Androidで/etc/hostsを変更する方法

SoftBankメール2.5は、WifFi:off、3G:offで利用可能:3 までで、常時MMSがつけるようにすることがまだできませんでした。

アプリを改修して利用できるようにされた方がいて、そのアプリを送っていただいてインストールしようとしたのですが、インストールがうまくできませんでした。

シュパッとの現行バージョンの説明に、SoftbankのAndroido2.3で、type=mmsでメールエラーが発生するのは、送受信前にDNSアクセスを失敗している、WiFiが有効であれば検索パケットを投げない、という情報がありました。

アプリを改修された方も、情報をキャッシュすることで利用できるようになった、とのことでした。


このため、/etc/hostsにメールサーバー情報などを登録してみました。
OpenVPNのためにbusyboxを/system/xbinにインストールしていたので、この中にあるtcpdumpを稼動させてパケットをチェックしました。

imap2とsmtpで通信しているIPがわかったので、/etc/hostsにviで直接書き込もうとしたのですが、viがReadOnlyで書き込まないためチェックしたところ、/ がroでマウントされているので書き込めませんでした。
172.25.151.12 andsmtp.softbank.ne.jp
172.24.169.45 e-imap.vodafone.ne.jp


mount -o remount,rw rootfs / で再マウントしてもReadOnlyでviから変更できませんでした。

/etc/hostsを変更するのではなく、/system/etc/hosts を変更するとのことでした。


このため、下記手順で変更しました。
adb pull /system/etc/hosts c:\temp
c:\tempを修正
adb push c:\temp\hosts /sdcard/hosts
adb shell
su
mount -o rw,remount /dev/block/mtdblock6 /system
/dev/block/mtdblock6 /system yaffs2 rw,relatime 0 0
cd /system/etc/
mv hosts _hosts
cat /data/local/hosts > hosts


しかし変更してもtype=mmsで常時使えるようになりませんでした。
また、tcpdumpでパケットをチェックすると、IPアドレスもホスト名も表示されなくなったので、元に戻しました。

0 件のコメント:

コメントを投稿