我做了一个小应用程序,允许你欺骗Android设备的mac地址。命令 “ip link set wlan0 down”,“ip link set wlan0 address NE:WM:AC“,”ip link set wlan0 up“,”ip link“在android终端模拟器中完美运行,但第二个在应用程序中不起作用:( 实际上MAC没有改变
String[] commands = { "ip link set wlan0 down" , "ip link set wlan0 address NE:WM:AC" , "ip link set wlan0 up", "ip link" }
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addListenerOnButton();
}
public void addListenerOnButton() {
button = (Button) findViewById(R.id.button1);
button.setOnClickListener( new OnClickListener() {
public void onClick(View arg0) {
try {
RunAsRoot(commands);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
public void RunAsRoot(String[] cmds) throws IOException{
Process p = Runtime.getRuntime().exec( "su" );
DataOutputStream os = new DataOutputStream(p.getOutputStream());
for (String tmpCmd : cmds) {
os.writeBytes(tmpCmd+ " \n " );
}
BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
Log.i(line,line);
}
os.writeBytes( "exit \n " );
os.flush();
}