MTK NVram 修改

[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"

  2.  修改 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
},

3. 添加或修改客制化函数 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;
}
}

  

4. 然后 **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  
————————————————
版权声明:本文为CSDN博主「YuZhuQue」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/YuZhuQue/article/details/106684692

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值