MTK平臺(tái)固定WIFI地址

可以在工模WIFI測(cè)試中添加以下patch

Index: vendor/mediatek/proprietary/factory/src/factory.cpp
===================================================================
--- vendor/mediatek/proprietary/factory/src/factory.cpp (revision 668)
+++ vendor/mediatek/proprietary/factory/src/factory.cpp (revision 669)
@@ -72,6 +72,7 @@
 
 #define MAX_RETRY_COUNT 20
 #define MAX_MODEM_INDEX 3
+extern "C" int write_wifi_addr(void);
 
 static item_t ftm_menu_items[] = {
     //item(ITEM_MUI_TEST,"Mini-UI Test"),
@@ -375,6 +376,99 @@
 }
 //tony end
 #endif
+
+static void GetRandomValue(unsigned char   string[6]);
+static void GetRandomValue(unsigned char  string[6])
+{
+    int iRandom = 0;
+    int fd = 0;
+    unsigned long seed;
+    
+    LOGD("Enable random generation\n");
+    
+    /* initialize random seed */
+    srand (time(NULL));
+    iRandom = rand();
+    LOGD("iRandom = [%d]", iRandom);
+    string[0] = (((iRandom>>24|iRandom>>16) & (0xFE)) | (0x02)); /* must use private bit(1) and no BCMC bit 0 */
+    string[0] =0x80;
+    /* second seed */
+    struct timeval tv;
+    gettimeofday(&tv, NULL);
+    srand (tv.tv_usec);
+    iRandom = rand();
+    LOGD("iRandom = [%d]", iRandom);
+    string[1] = ((iRandom>>8) & 0xFF);
+     string[1] = 0x0c;
+    
+    /* third seed */
+    fd = open("/dev/urandom", O_RDONLY);
+    if (fd > 0){
+        if (read(fd, &seed, sizeof(unsigned long)) > 0){
+            srand (seed);
+            iRandom = rand();
+        }
+        close(fd);
+    }
+    
+    LOGD("iRandom = [%d]", iRandom);
+    string[5] = (iRandom & 0xFF);
+    
+    return;
+}
+
+static int WriteBDAddrToNvram(unsigned char  * ucBDAddr)
+{
+    F_ID wifi_nvram_fd = {0};
+    int rec_size = 0;
+    int rec_num = 0;
+    wifi_nvram_fd = NVM_GetFileDesc(AP_CFG_RDEB_FILE_WIFI_LID, &rec_size, &rec_num, ISWRITE);
+    if(wifi_nvram_fd.iFileDesc < 0){
+        LOGE("Open WIFI NVRAM fails errno %d\n", errno);
+        return -1;
+    }
+    
+    if(rec_num != 1){
+        LOGE("Unexpected record num %d\n", rec_num);
+        NVM_CloseFileDesc(wifi_nvram_fd);
+        return -1;
+    }
+    
+    if(rec_size != sizeof(WIFI_CFG_PARAM_STRUCT)){
+        LOGE("Unexpected record size %d ap_nvram_btradio_mt6610_struct %d\n",
+                 rec_size, sizeof(WIFI_CFG_PARAM_STRUCT));
+        NVM_CloseFileDesc(wifi_nvram_fd);
+        return -1;
+    }
+    
+    lseek(wifi_nvram_fd.iFileDesc, 4, 0);
+    
+    /* Update BD address */
+    if (write(wifi_nvram_fd.iFileDesc, ucBDAddr, 6) < 0){
+        LOGE("Write WIFI NVRAM fails errno %d\n", errno);
+        NVM_CloseFileDesc(wifi_nvram_fd);
+        return -1;
+    }
+
+    NVM_CloseFileDesc(wifi_nvram_fd);
+    return  0;
+}
+
+int write_wifi_addr(void)
+{
+    unsigned char addr[6];     
+    GetRandomValue(addr);
+        WriteBDAddrToNvram(addr);
+    /*backup data to nv bin region */
+       if( FileOp_BackupToBinRegion_All())
+       {
+        LOGE("FileOp_BackupToBinRegion_All errno \n");
+        return -1;
+    }
+    return 0;
+}
+
 static int item_test_report(item_t *items, char *buf, int bufsz)
 {
 
Index: vendor/mediatek/proprietary/factory/src/test/ftm_wifi.c
===================================================================
--- vendor/mediatek/proprietary/factory/src/test/ftm_wifi.c (revision 668)
+++ vendor/mediatek/proprietary/factory/src/test/ftm_wifi.c (revision 669)
@@ -40,6 +40,8 @@
 #include "miniui.h"
 #include "ftm.h"
 
+extern int write_wifi_addr(void);
+
 #ifdef FEATURE_FTM_WIFI
 
 #define TAG                 "[FT_WIFI] "
@@ -277,7 +279,7 @@
     int curStatus = -1; //disconnect
 
     LOGD(TAG "%s new\n", __FUNCTION__);
-
+    write_wifi_addr();
     memset(&wififm->info[0], 0, sizeof(wififm->info));
     memset(&wififm->info[0], '\n', 10);
     



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末风响,一起剝皮案震驚了整個(gè)濱河市日川,隨后出現(xiàn)的幾起案子空骚,更是在濱河造成了極大的恐慌氓奈,老刑警劉巖始锚,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剖笙,死亡現(xiàn)場(chǎng)離奇詭異未妹,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)夸赫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門菩帝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人茬腿,你說(shuō)我怎么就攤上這事呼奢。” “怎么了切平?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵握础,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我揭绑,道長(zhǎng)弓候,這世上最難降的妖魔是什么郎哭? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任他匪,我火速辦了婚禮,結(jié)果婚禮上夸研,老公的妹妹穿的比我還像新娘邦蜜。我一直安慰自己,他們只是感情好亥至,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布悼沈。 她就那樣靜靜地躺著贱迟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪絮供。 梳的紋絲不亂的頭發(fā)上衣吠,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音壤靶,去河邊找鬼缚俏。 笑死,一個(gè)胖子當(dāng)著我的面吹牛贮乳,可吹牛的內(nèi)容都是我干的忧换。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼向拆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼亚茬!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起浓恳,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤刹缝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后颈将,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赞草,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年吆鹤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了厨疙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡疑务,死狀恐怖沾凄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情知允,我是刑警寧澤撒蟀,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站温鸽,受9級(jí)特大地震影響保屯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜涤垫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一姑尺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝠猬,春花似錦切蟋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)喘鸟。三九已至,卻和暖如春驻右,著一層夾襖步出監(jiān)牢的瞬間什黑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工堪夭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兑凿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓茵瘾,卻偏偏與公主長(zhǎng)得像礼华,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拗秘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1圣絮、通過(guò)CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明先生_X自主閱讀 15,980評(píng)論 3 119
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)雕旨,斷路器扮匠,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • 01 “哎……有沒有什么暑假兼職推薦》采” “投簡(jiǎn)歷鞍羲选!” “工資太低了活箕,又沒有地方住力麸。” “那你回家呀育韩,做一條精致...
    一葉秋刀魚閱讀 466評(píng)論 1 1
  • 就叫帥小飛吧閱讀 208評(píng)論 0 0
  • 小魯有百草園克蚂,我也有,她的名字叫初夏微雨百草園筋讨。把新鮮的小花埃叭,輕輕剪下,養(yǎng)在有水的小玻璃瓶里悉罕,我又有了一個(gè)桌上小花...
    杰西卡武閱讀 299評(píng)論 0 1