Androidで低レベルのハッキングを行っています。
wifiを有効にしようとしています。つまり、ターミナル(adbシェル)を介してインターネット接続を確立しようとしています。Androidのバイオニックライブラリとlibnetutilsライブラリをハッキングして機能させることで、これを実現するCプログラムを作成しました。
すべて正常に動作します。dhcp リクエストで IP アドレスを取得できます。問題は、元のサイトを開こうとするたびに. ブラウザ経由で google.com にアクセスしても、開きません。しかし、サイト「74.125.228.66」(google.com) の IP アドレスを入力すると、ページが読み込まれます。
ファイル「resolv.conf」(/system/etc に存在) やファイル「20-dns.conf」(/system/etc/dhcpcd/dhcpcd-hooks) の DNS エントリを変更するなど、いくつかのオプションを試しました。また、「setprop」呼び出しを使用して、「dhcp.eth0.dns*」および「dhcp.wlan0.dns*」の dns 値を手動で設定しようとしました。
しかし、何も機能していないようです。私が気づいた興味深い動作もあります。「設定」メニューから手動でwifiをオンにしてからオフにしてからプログラムを実行すると、この問題に直面しなくなりました。私が理解できなかったいくつかの設定を使用しているようです。
私の推測では、これは DNS の問題ですが、別の問題である可能性があります。以前にこの問題に直面したことがある人がいたら教えてください。
Wi-Fiを有効にするために私が行うことは次のとおりです。
wpa_supplicant
を使用してデーモンを有効にしますset_prop()
。dhcp
IP を取得する要求を送信しdhcpclient.c
ます( のコードlibnetutils
)。dhcpcd
を使用してデーモンを有効にしますset_prop()
。(これがなくても、すべてが機能します。これを実行して、IPリースが自動的に更新されるようにしました。(dhcpcd
デーモンがリースの更新を処理するかどうかはわかりませんが))。