importjava.io.DataOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.RandomAccessFile;importjava.util.ArrayList;importandroid.app.Activity;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.content.IntentFilter;importandroid.net.wifi.WifiInfo;importandroid.net.wifi.WifiManager;importandroid.os.Bundle;importandroid.os.Handler;importandroid.telephony.TelephonyManager;importandroid.util.Log;importandroid.view.View;importandroid.view.Window;importandroid.widget.AdapterView;importandroid.widget.AdapterView.OnItemClickListener;importandroid.widget.Button;importandroid.widget.ListView;importandroid.widget.TextView;importandroid.widget.Toast;/*** 获取root权限,读取并修改系统文件**/
public class RootTestActivity extendsActivity {private final static int CHANGE_OK = 1;private final static int WIFI_OK = 2;privateListView contentList;privateFileAdapter adapter;private ArrayList datas = new ArrayList();privateTextView resultTxt;privateWifiManager wifi;private WifiReceiver wifiReceiver = null;privateButton send;privateButton change;/*** 是否是第一次执行*/
private boolean isFirst = true;private Handler handler = newHandler(){public voidhandleMessage(android.os.Message msg) {switch(msg.what) {caseCHANGE_OK://改完后重启wifi
changeWifiState();break;caseWIFI_OK://重启wifi结束
resultTxt.setText("修改完成,mac为: " +getLocalMacAddress());
changeBtnState();break;default:break;
}
};
};
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_su);
wifi=(WifiManager) getSystemService(Context.WIFI_SERVICE);
wifiReceiver= newWifiReceiver();
IntentFilter filter=newIntentFilter();
filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
registerReceiver(wifiReceiver, filter);
send=(Button) findViewById(R.id.send);
change=(Button) findViewById(R.id.change);
resultTxt=(TextView) findViewById(R.id.content_edit);
contentList=(ListView) findViewById(R.id.content);
searchFile("");
adapter= new FileAdapter(this, datas);
contentList.setAdapter(adapter);
contentList.setOnItemClickListener(newOnItemClickListener() {
@Overridepublic void onItemClick(AdapterView>parent, View view,int position, longid) {
String filePath=datas.get(position);
runRootCommand("chmod 755 " +filePath);
searchFileByPath(filePath);
adapter.notifyDataSetChanged();
contentList.setSelection(0);
}
});
resultTxt.setText(getIMEI());
}publicString searchFile(String keyword) {
datas.clear();
String result= "";
File parentFile= new File("/");
File[] files=parentFile.listFiles();for(File file : files) {if (file.getName().indexOf(keyword) >= 0) {
result+= file.getPath() + "\n";
datas.add(file.getPath());
}
}if (result.equals("")) {
result= "找不到文件!!";
}returnresult;
}publicString searchFileByPath(String path) {
String result= "";
File parentFile= new File(path + "/");if(parentFile.isFile()) {
runRootCommand("chmod 777 " + path + "/");try{//重写文件//reWriteFile(path + "/");
writeSDFile(path, parentFile);//result = readSDFile(parentFile);//runRootCommand("chmod 660 " + path + "/");
isFirst = false;
changeBtnState();
handler.sendEmptyMessageDelayed(CHANGE_OK,500);
resultTxt.setText("请稍等...");
}catch(IOException e) {
e.printStackTrace();
resultTxt.setText("修改失败");
}returnresult;
}
File[] files=parentFile.listFiles();if (files != null && files.length > 0) { </