Androidの仮想ネットワークデバイスとしてtunを使用してネットワークアプリを実行しています。eth0(WLANの場合)やrmnet0(3G / GPRSの場合)などの他の使用可能なインターフェイスを閉じますが、tun0デバイスを存続させ、ルートテーブルにルールを追加します
ip route add default dev tun0
そのため、すべてのインターネット転送をtunデバイスにリダイレクトできます(ここで行っているのはOpenVPNと同じです)。そして、他のIPにpingを実行するとデータが転送されるのを見ました。ブラウザやその他のアプリは正常に動作します。
ただし、一部のAndroidアプリは、netwrokにアクセスする前にConnectivityManagerによって接続を確認します。WIFIと3G/GPRSを閉じると、ConnectivityManagerは接続がないと見なし、それらのアプリはネットワークにアクセスできなくなります。
だから私の質問は:
android ConnectiviyManagerをだまし、(どのタイプでも)利用可能な接続がまだあると信じさせる方法は?