欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

ROM修改---修改本机的mac地址

发布时间:2024/3/13 编程问答 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 ROM修改---修改本机的mac地址 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

关键代码:

//从某处读取文件public static String readString(String fp) {String str = null;try {BufferedReader in = new BufferedReader(new FileReader(fp));str = in.readLine();in.close();} catch (IOException e) {e.printStackTrace();}return str;}//将某字符转成byte数组private static byte[] getMacBytes(String mac) {if(mac == null) return null;byte[] macBytes = new byte[6];String[] strArr = mac.split(":");if(strArr.length != 6)return null;for (int i = 0; i < strArr.length; i++) {int value = Integer.parseInt(strArr[i], 16);macBytes[i] = (byte) value;}return macBytes;}

修改处:

String mnMac = readString("/anywhere");byte[] mnBytes = getMacBytes(mnMac);// Populate NetworkInterface instances.Map<String, NetworkInterface> nis = new HashMap<>(inetMap.size());for (Map.Entry<String, List<StructIfaddrs>> e : inetMap.entrySet()) {String name = e.getKey();int index = Libcore.os.if_nametoindex(e.getKey());if (index == 0) {// This interface has gone away between getifaddrs and if_nametoindexcontinue;}NetworkInterface ni = new NetworkInterface(name, index, null);ni.displayName = name;List<InetAddress> addrs = new ArrayList<>();List<InterfaceAddress> binds = new ArrayList<>();for (StructIfaddrs ifa : e.getValue()) {if (ifa.ifa_addr != null) {addrs.add(ifa.ifa_addr);binds.add(new InterfaceAddress(ifa.ifa_addr, (Inet4Address) ifa.ifa_broadaddr,ifa.ifa_netmask));}if (ifa.hwaddr != null) {ni.hardwareAddr = ifa.hwaddr;if(ni.displayName.equals("wlan0") || ni.displayName.equals("wlan1") || ni.displayName.equals("p2p0")){if(mnBytes != null)ni.hardwareAddr = mnBytes;}}}ni.addrs = addrs.toArray(new InetAddress[addrs.size()]);ni.bindings = binds.toArray(new InterfaceAddress[binds.size()]);ni.childs = new ArrayList<>(0);nis.put(name, ni);}

效果:

在某处定义一个mac;

 在设置中查看mac:

 

 

总结

以上是生活随笔为你收集整理的ROM修改---修改本机的mac地址的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。