自动修改android模拟设备号imei的小程序
该程序实现一下功能,
1,修改android模拟器的imei,
2,自动启动android模拟器
3,运行开机启动程序,ps:这个开机启动程序apk就没放出来了。
4,停止android模拟器;
重复1,2,3过程
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
try {
while(true){//
eidtEmulator();//修改imei
Runtime rt = Runtime(); 
String command = 'C:\\Program Files\\Android\\android-sdk\\tools\\emulator -avd AVD-10';   
rt.exec(command);  // 运行android模拟器
System.out.println('success run');
Thread.sleep(2*60*1000);//  等待2分钟后,停止android模拟器
if(findRunningWindowsProcess('')){
killRunningWindowsProcess('');
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
public static void eidtEmulator() throws Exception{
String oldFilePath = 'C:\\Program Files\\Android\\android-sdk\\tools\\ ';
String newFilePath = 'C:\\Program Files\\Android\\android-sdk\\tools\\';
FileInputStream in = new FileInputStream(oldFilePath);
FileOutputStream out = new FileOutputStream(newFilePath);
byte bytes[] = new byte[1];
byte gsnbytes[] = new byte[3];
byte imeiBytes[] = new byte[15];
int count;
while ((count = in.read(bytes)) != -1) {
out.write(bytes);
if (bytes[0] == 0x43) {// if is char 'C'
count = in.read(gsnbytes);
if (count == -1) {
break;
}
out.write(gsnbytes);
if (gsnbytes[0] == 0x47 && gsnbytes[1] == 0x53 && gsnbytes[2] == 0x4E) {//if is char 'GSN'
count = in.read(bytes);//read char '.'
if (count == -1) {
break;
}
out.write(bytes);
count = in.read(imeiBytes);//read old imei
if (count == -1) {
break;
}
byte[] imeis = getIMEIBytes();
out.write(imeis);//write new imei;
}
}
}
in.close();
out.close();
File oldFile = new File(oldFilePath);
oldFile.delete();
File newFile = new File(newFilePath);
ameTo(oldFile);
}
public static byte[] getIMEIBytes() {//随即生成15位imei号
StringBuffer bff = new StringBuffer();
byte imeiBytes[] = new byte[15];
for(int i=0;i                int num = (int) und(Math.random()*8);
bff.append(num);
imeiBytes[i] = Byte.parseByte('3'+num, 16);
}
//  printArray(imeiBytes);
println('start imei: '+String());
return imeiBytes;
}
public static void printArray(byte bytes[]) {
StringBuffer buff = new StringBuffer();
for (byte b : bytes) {
buff.append(String.format('%02X', b) + ' ');
}
System.out.String());
}
public static boolean killRunningWindowsProcess(String processName){ 
try { 
Runtime().exec('taskkill /IM ' + processName); 
android模拟点击
System.out.println('kill process successful'); 
//            System.out.println('Process ' + processName + ' was killed. Mission completed.'); 
return true; 
} catch (Exception ex) { 
ex.printStackTrace(); 
System.out.println('kill process fail'); 
System.out.println('Misson failed.'); 
return false; 
public static boolean findRunningWindowsProcess(String processName) { 
BufferedReader bufferedReader = null; 
Process proc = null; 
try { 
proc = Runtime().exec('tasklist /FI \'IMAGENAME eq ' + processName + '\''); 
bufferedReader = new BufferedReader(new InputStream())); 
String line; 
while ((line = adLine()) != null) { 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。