欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > Android 9.0 修改WLAN热点名称为MAC地址后四位

Android 9.0 修改WLAN热点名称为MAC地址后四位

2025/2/25 15:04:24 来源:https://blog.csdn.net/yesdehua/article/details/143229426  浏览:    关键词:Android 9.0 修改WLAN热点名称为MAC地址后四位

这个需求主要是读取mac地址,mac地址一般是用写号工具写入到NVRAM,所以需要从NVRAM读取准确的地址。

  • 导入nvram操作用到的库:

frameworks/opt/net/wifi/service/Android.mk

LOCAL_STATIC_JAVA_LIBRARIES := \vendor.mediatek.hardware.nvram-V1.0-java
  • 读取wifi mac地址并设置热点名称和密码:

frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java

//mh.add
import vendor.mediatek.hardware.nvram.V1_0.INvram;
import android.os.RemoteException;
//mh.endprivate WifiConfiguration getDefaultApConfiguration() {WifiConfiguration config = new WifiConfiguration();config.apBand = WifiConfiguration.AP_BAND_2GHZ;//mh.@{/*config.SSID = mContext.getResources().getString(R.string.wifi_tether_configure_ssid_default) + "_" + getRandomIntForDefaultSsid();*/String mMac = getMacAddress();mMac = mMac.replace(":", "");mMac = mMac.substring(mMac.length() - 4, mMac.length());config.SSID = "CloboticsAP_" + mMac;//mh.@}config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);String randomUUID = UUID.randomUUID().toString();//first 12 chars from xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxxconfig.preSharedKey = "Cbs_123456";/*randomUUID.substring(0, 8) + randomUUID.substring(9, 13);*///mh.modifyreturn config;
}//mh.add
private static final String DEFAULT_MAC_ADDRESS = "01:02:03:04:05:06";
private static final String MAC_ADDRESS_FILENAME = "/mnt/vendor/nvdata/APCFG/APRDEB/WIFI";
private static final int MAC_ADDRESS_OFFSET = 4;
private static final int MAC_ADDRESS_DIGITS = 6;
//读取mac地址的方法
public String getMacAddress() {String result = DEFAULT_MAC_ADDRESS;StringBuffer nvramBuf = new StringBuffer();try {int i = 0;String buff = null;INvram agent = INvram.getService();if (agent != null) {buff = agent.readFileByName(MAC_ADDRESS_FILENAME, MAC_ADDRESS_OFFSET + MAC_ADDRESS_DIGITS);// Log.i(TAG, "Raw data:" + encryptMessage(buff));if (buff.length() >= 2 * (MAC_ADDRESS_OFFSET + MAC_ADDRESS_DIGITS)) {// Remove the \0 special character.int macLen = buff.length() - 1;for (i = MAC_ADDRESS_OFFSET * 2; i < macLen; i += 2) {if ((i + 2) < macLen) {nvramBuf.append(buff.substring(i, i + 2));nvramBuf.append(":");} else {nvramBuf.append(buff.substring(i));}}result = nvramBuf.toString();} else {Log.e(TAG, "Fail to read mac address");}} else {Log.e(TAG, "Nvram is null");}} catch (RemoteException e) {e.printStackTrace();}if (result.length() > DEFAULT_MAC_ADDRESS.length()) {// remove extra characters if length longer than expectedresult = result.substring(0, DEFAULT_MAC_ADDRESS.length());} else if (result.length() < DEFAULT_MAC_ADDRESS.length()) {// set to default if length shorted than expectedresult = DEFAULT_MAC_ADDRESS;}//Log.d(TAG, "result: " + encryptMessage(result));return result;
}
//mh.add end

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词