Skip to content

Commit

Permalink
fake isActiveNetworkMetered() calls,
Browse files Browse the repository at this point in the history
Updated TestWifi
  • Loading branch information
lemonsqueeze committed Dec 13, 2014
1 parent 319d1bd commit 48041be
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 17 deletions.
5 changes: 5 additions & 0 deletions .gitignore
@@ -0,0 +1,5 @@
*~
FakeWifiConnection/bin
FakeWifiConnection/gen
TestWifi/bin
TestWifi/gen
Binary file modified FakeWifiConnection/bin/FakeWifiConnection.apk
Binary file not shown.
Expand Up @@ -283,8 +283,9 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable
// ConnectivityManager targets:
// getActiveNetworkInfo()
// getNetworkInfo()
// getAllNetworkInfo()

// getAllNetworkInfo()
// isActiveNetworkMetered()

// getActiveNetworkInfo()
findAndHookMethod("android.net.ConnectivityManager", lpparam.classLoader,
"getActiveNetworkInfo", new XC_MethodHook()
Expand Down Expand Up @@ -318,7 +319,23 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable
else
log_call(called + " called");
}
});
});

// isActiveNetworkMetered()
findAndHookMethod("android.net.ConnectivityManager", lpparam.classLoader,
"isActiveNetworkMetered", new XC_MethodHook()
{
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable
{
if (!hack_enabled())
{ log_call("isActiveNetworkMetered(), hack is disabled."); return; }

log_call("isActiveNetworkMetered(), faking wifi !");
param.setResult(false);
}
});


// *************************************************************************************
// WifiManager targets:
Expand Down
7 changes: 4 additions & 3 deletions TestWifi/AndroidManifest.xml
Expand Up @@ -8,9 +8,10 @@
android:minSdkVersion="8"
android:targetSdkVersion="11" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />

<application
android:icon="@drawable/ic_launcher"
Expand Down
Binary file modified TestWifi/bin/TestWifi.apk
Binary file not shown.
29 changes: 18 additions & 11 deletions TestWifi/src/com/lemonsqueeze/testwifi/MainActivity.java
Expand Up @@ -7,6 +7,7 @@

import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.DhcpInfo;
import android.content.Context;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager.WifiLock;
Expand All @@ -15,6 +16,7 @@
import java.net.InetAddress;
import org.apache.http.conn.util.InetAddressUtils;
import java.util.*;
import android.net.*;

public class MainActivity extends Activity
{
Expand All @@ -26,39 +28,44 @@ public void onCreate(Bundle savedInstanceState)
//setContentView(R.layout.main);

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo net = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
String s = "Network Info (WIFI):";
s += "\nisConnected: " + net.isConnected();
s += "\nisAvailable: " + net.isAvailable();
s += "\ntype: " + net.getTypeName();

net = cm.getActiveNetworkInfo();
s += "\n\nActive Network Info:";

NetworkInfo net = cm.getActiveNetworkInfo();
String s = "[ Active Network Info ]";
if (net == null)
s += "\nnull";
else
s += "\ntype: " + net.getTypeName();
s += "\nmetered: " + (cm.isActiveNetworkMetered() ? "yes" : "no");

s += "\n\nWifiManager:";
net = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
s += "\n\n[ Network Info (WIFI) ]";
s += "\nisConnected: " + net.isConnected();
s += "\nisAvailable: " + net.isAvailable();
s += "\ntype: " + net.getTypeName();


s += "\n\n[ WifiManager ]";
WifiManager wm = (WifiManager) getSystemService(Context.WIFI_SERVICE);
s += "\nisWifiEnabled(): " + wm.isWifiEnabled();
s += "\ngetWifiState(): " + wm.getWifiState() +
" (DISABLED=1 ENABLED=3)";
s += "\ngetConnectionInfo(): " + wm.getConnectionInfo();
s += "\ngetDhcpInfo(): " + wm.getDhcpInfo();

try
{
WifiLock lock = wm.createWifiLock("tag");
if (!lock.isHeld())
lock.acquire();
s += "\n\nWifi lock: " + (lock.isHeld() ? "OK" : "BAD");
s += "\nWifi lock: " + (lock.isHeld() ? "OK" : "BAD");
lock.release();
} catch(Exception e) {
s += "\n\nWifi lock: FAILED";
}

s += "\n\n[ IP functions test ]\n";
IPInfo info = getIPInfo();
s += "\n\n ip address: " + info.ip +
s += "ip address: " + info.ip +
String.format(" ( 0x%08x )", info.ip_hex);

//byte b[] = info.addr.getAddress();
Expand Down

0 comments on commit 48041be

Please sign in to comment.