MTK NVram 修改

22 篇文章 2 订阅
8 篇文章 1 订阅

[DESCRIPTION]

客户有需求修改wifi的参数,如打开5G支持项等,同时需要可以半擦和OTA升级,但是原本的WIFI MAC地址不可以丢失。

[SOLUTION]

WIFI nVRam参数更新升级,同时保留MAC地址,可以按照以下步骤修改:

  1. 修改 AP_CFG_RDEB_FILE_WIFI_LID_VERNO,将此值增加 1.
    Custom_NvRam_LID.h (alps\mediatek\custom$projet\cgen\inc)
#define AP_CFG_RDEB_FILE_WIFI_LID_VERNO "000" 修改为 "001"
  1. 修改 CFG_file_info_custom.h 中的 wifi 项
CFG_file_info_custom.h (alps\mediatek\custom\$projet\cgen\inc)
{
"/data/nvram/APCFG/APRDEB/WIFI", VER(AP_CFG_RDEB_FILE_WIFI_LID),
CFG_FILE_WIFI_REC_SIZE,
CFG_FILE_WIFI_REC_TOTAL, SIGNLE_DEFUALT_REC, (char *)&stWifiCfgDefault,
DataReset, null
},
最后两个参数改为:

{
"/data/nvram/APCFG/APRDEB/WIFI", VER(AP_CFG_RDEB_FILE_WIFI_LID),
CFG_FILE_WIFI_REC_SIZE,
CFG_FILE_WIFI_REC_TOTAL, SIGNLE_DEFUALT_REC, (char *)&stWifiCfgDefault,
DataConvert , WIFI_ConvertFunc
},
  1. 添加客制化函数 WIFI_ConvertFunc.
int WIFI_ConvertFunc(int currentVerID, int NewVerID, char *pSrcMem, char
*pDstMem)
{
int rec_size = CFG_FILE_WIFI_REC_SIZE;
int rec_num = CFG_FILE_WIFI_REC_TOTAL;
UINT_8 aucMacAddress[6] = {0};
WIFI_CFG_PARAM_STRUCT *p_wifi_para;
if(NULL == pSrcMem || NULL == pDstMem){
return false;
}
else{
// get the old wifi mac addr //保存原始MAC数据
p_wifi_para = (WIFI_CFG_PARAM_STRUCT*)pSrcMem;
meMCPy(aucMacAddress, p_wifi_para->aucMacAddress, sizeof(aucMacAddress));
//write the new wifi parameter //赋值新的WIFI参数
memcpy(pDstMem, &stWifiCfgDefault, sizeof(WIFI_CFG_PARAM_STRUCT));
//restore the wifi mac addr //回写原始MAC数据
p_wifi_para = (WIFI_CFG_PARAM_STRUCT*)pDstMem;
memcpy(p_wifi_para->aucMacAddress, aucMacAddress, sizeof(aucMacAddress));
return true;
}
}

然后 **mmm 编译到 external/nvram/libcustom_nvram **
通过OTA 的方式使之生效

adb push ota.zip /data/update.zip
adb shell
aeon6737t_66_d_n:/ # mkdir -p cache/recovery                                                                                                 
aeon6737t_66_d_n:/ # uncrypt  /data/update.zip   /cache/recovery/block.map
aeon6737t_66_d_n:/ # echo "--update_package=@/cache/recovery/block.map" > /cache/recovery/command                                            
aeon6737t_66_d_n:/ # reboot recovery  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值