cywee chipinfo激活的设备转mac激活 904/1
authorSnickerSun <snickersun@163.com>
Sat, 7 Sep 2024 06:36:11 +0000 (14:36 +0800)
committerSnickerSun <snickersun@163.com>
Sat, 7 Sep 2024 06:36:11 +0000 (14:36 +0800)
code/sdk/application/brandy/brandy_standard/thread_pri_init.c
code/sdk/drivers/peripheral/cywee/src/main_dml.c
code/sdk/drivers/peripheral/utils/custom_utils.c
code/sdk/drivers/peripheral/utils/custom_utils.h

index a28102f..a7b4c29 100755 (executable)
@@ -460,10 +460,10 @@ uapi_pm_remove_sleep_veto(PM_ID_DEBUG);
     cat1_tcp_server_init();\r
 #endif\r
 \r
+    /*蓝牙接收数据处理服务*/\r
     uapi_blesrv_service_init();\r
     \r
-    start_custom_ble_service();\r
-\r
+    \r
 #ifdef ENABLE_CUSTOM_I2C\r
     errcode_t result = custom_iic_init();\r
     if(result != SUCC)\r
@@ -486,6 +486,9 @@ uapi_pm_remove_sleep_veto(PM_ID_DEBUG);
     }\r
 #endif\r
 \r
+    /*启动蓝牙ble服务,cywee有重置 mac地址的操作,会需要把 蓝牙服务开启放在cywee服务之后*/\r
+    start_custom_ble_service();\r
+\r
 #ifdef SUPPORT_ALIPAY_SEC\r
 #if !defined(A5133_DEMO_SERVER) && !defined(A5133_DEMO_CLIENT)\r
     uapi_alipay_svr_init();\r
index 5ae711c..2f92cd2 100644 (file)
@@ -1194,6 +1194,18 @@ int cywee_main_dml(void)
     CWM_OS_dbgPrintf("have_security = %d.%d ret_buff_size = %d  chipInfo = %s\n", scl.iData[5], scl.iData[6], scl.iData[4], chipInfo);
     CWM_OS_dbgPrintf("chip_settings = %d, %d, %d\n", scl.iData[9], scl.iData[10], scl.iData[11]);
     //CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
+
+
+#ifdef CYWEE_MAC_ACTIVE
+    /******************获取chipinfo 找到对应的btmac 并配置进去*************************/
+    int chipinfolen = strlen((char*)chipInfo);
+    if (chipinfolen >= 4)
+    {
+        uint32_t chipinfo_num= *(uint32_t*)(&chipInfo[chipinfolen - 4]);
+        change_mac_from_chipinfo_map(chipinfo_num);
+    }    
+    /*******************************************/
+#endif
     if(scl.iData[5] == 1)
     {
         cywee_is_active = 1;
index c992d7a..cb304b5 100644 (file)
@@ -1307,7 +1307,7 @@ errcode_t uapi_get_nv_btaddr(uint8_t *buf_btaddr, uint32_t *len_btaddr)
     uint32_t max_input_len = *len_btaddr;
     memcpy_s(buf_btaddr,max_input_len,btinfo.bd_addr,sizeof(btinfo.bd_addr));
     *len_btaddr = sizeof(btinfo.bd_addr);
-    printf("get nv local_addr : ******%02x%02x%02x\n", buf_btaddr[2], buf_btaddr[1], buf_btaddr[0]);
+    printf("get nv local_addr : ******%02x%02x%02x\n", buf_btaddr[3], buf_btaddr[4], buf_btaddr[5]);
 
 #endif
 
@@ -2722,11 +2722,11 @@ void uapi_cywee_save_mac_key(const uint8_t *key_data,uint16_t len)
 #ifdef CYWEE_MAC_ACTIVE
 
 uint8_t DEFAULT_MAC_KEY[78] = {
-    0x23, 0x20, 0x86, 0xae, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1f, 0x01, 0x23, 0x99, 0xb1, 0x5a, 
-    0xc4, 0xc7, 0xa3, 0x43, 0x00, 0xa6, 0x4c, 0x53, 0x2a, 0xbe, 0x62, 0x1c, 0x48, 0x31, 0x78, 0x5e, 
-    0x56, 0x49, 0x2e, 0x1f, 0xbe, 0xb0, 0xa7, 0xee, 0x3d, 0x6b, 0x6d, 0x36, 0x56, 0xe0, 0x04, 0x35, 
-    0x4f, 0x5e, 0x4a, 0xa7, 0x74, 0xa7, 0x91, 0x75, 0x0b, 0x8a, 0x8b, 0x69, 0xeb, 0x51, 0x0c, 0x12, 
-    0x92, 0x6a, 0x8c, 0xe9, 0x45, 0x70, 0x00, 0x62, 0xc9, 0x21, 0xef, 0x8b, 0x26, 0xdf, 
+    0x23, 0x20, 0x86, 0xae, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1f, 0x02, 0x4c, 0x07, 0x5b, 0xf0, 
+    0x12, 0xc4, 0xf9, 0xeb, 0xea, 0xce, 0x8e, 0x7b, 0xa7, 0x92, 0xf4, 0x4c, 0x6c, 0x75, 0x2f, 0xd5, 
+    0x86, 0x23, 0xda, 0x9b, 0xf3, 0x9f, 0xe1, 0x21, 0x47, 0xa0, 0x15, 0x83, 0x4c, 0x86, 0x60, 0xba, 
+    0xc2, 0xef, 0x21, 0x84, 0x93, 0x0d, 0x8a, 0xf6, 0xe8, 0x29, 0x10, 0xde, 0x68, 0xfa, 0x5c, 0x17, 
+    0x93, 0x68, 0x8e, 0xeb, 0x47, 0xbf, 0x59, 0x3d, 0x96, 0x7e, 0xb0, 0xd5, 0x79, 0x80, 
 };
 #endif
 void uapi_cywee_get_mac_key(uint8_t *key_data,uint16_t *len)
@@ -2985,3 +2985,313 @@ void start_save_file_thread(void)
         PRINT("create save file thread failed %d!\r\n",ret);
     }
 }
+#if 1 //defined(CYWEE_MAC_ACTIVE)
+typedef struct 
+{
+    uint32_t chipinfo;
+    uint16_t mac;
+} chiinfo_mac_pair;
+
+static chiinfo_mac_pair g_chipinfo_map[]={
+{0xD9CC9E36,0x0001},
+{0x2D3BF936,0x0002},
+{0xC5337236,0x0003},
+{0xB0FCA736,0x0004},
+{0x35D07A36,0x0005},
+{0x1E976A36,0x0006},
+{0x8A57CD36,0x0007},
+{0x97F6A636,0x0008},
+{0x71758B36,0x0009},
+{0x8625E036,0x000A},
+{0xE0B06936,0x000B},
+{0x73A9B136,0x000C},
+{0x38B76936,0x000D},
+{0xE474F636,0x000E},
+{0xFA99DE36,0x000F},
+{0x41560A36,0x0010},
+{0xCA2CE836,0x0011},
+{0x4DF35936,0x0012},
+{0x1C748A36,0x0013},
+{0x3CEB5D36,0x0014},
+{0x4C4E6136,0x0015},
+{0x34608836,0x0016},
+{0xCDA7DE36,0x0017},
+{0xE4ED4436,0x0018},
+{0x3B9D7936,0x0019},
+{0xDA128D36,0x001A},
+{0xA62C7236,0x001B},
+{0x18855536,0x001C},
+{0x42088F36,0x001D},
+{0xC2752336,0x001E},
+{0x8D581636,0x001F},
+{0x0E5E9D36,0x0020},
+{0x06CA9E36,0x0021},
+{0x98368E36,0x0022},
+{0xF56EB836,0x0023},
+{0x0EF75536,0x0024},
+{0xBB293736,0x0025},
+{0x969CE636,0x0026},
+{0x00F66136,0x0027},
+{0x74F04336,0x0028},
+{0xDD54C136,0x0029},
+{0xD2EE8636,0x002A},
+{0xB80CF336,0x002B},
+{0xD5CC1E36,0x002C},
+{0xD05AC336,0x002D},
+{0x1AB93436,0x002E},
+{0x20DE5F36,0x002F},
+{0x49D9C136,0x0030},
+{0xFB5C0436,0x0031},
+{0x5141CC36,0x0032},
+{0xBEE9A436,0x0033},
+{0xDE575336,0x0034},
+{0xDE18CA36,0x0035},
+{0x371B2D36,0x0036},
+{0x484C3E36,0x0037},
+{0xBE8D1036,0x0038},
+{0xE0468A36,0x0039},
+{0xC341D936,0x003A},
+{0x3AF6B836,0x003B},
+{0x362CFA36,0x003C},
+{0xFBA6FC36,0x003D},
+{0xDDD75136,0x003E},
+{0xD9F9E736,0x003F},
+{0x0DBE0336,0x0040},
+{0xE344F636,0x0041},
+{0xE5824636,0x0042},
+{0x056C5536,0x0043},
+{0x81D3F736,0x0044},
+{0x24835636,0x0045},
+{0xEA520036,0x0046},
+{0xB8E0E936,0x0047},
+{0x5669CC36,0x0048},
+{0x2E370636,0x0049},
+{0x2C570E36,0x004A},
+{0x26E4E236,0x004B},
+{0xFD22F536,0x004C},
+{0x5C233536,0x004D},
+{0x80299236,0x004E},
+{0xF797EC36,0x004F},
+{0x76457736,0x0050},
+{0x8574B536,0x0051},
+{0xF5D1FC36,0x0052},
+{0x1BD70436,0x0053},
+{0x86164C36,0x0054},
+{0x56435B36,0x0055},
+{0x56E62D36,0x0056},
+{0x9B4FC136,0x0057},
+{0xDFEEAD36,0x0058},
+{0x85E2A736,0x0059},
+{0x61867A36,0x005A},
+{0xBBBC3436,0x005B},
+{0x3AD1F136,0x005C},
+{0xB76E9536,0x005D},
+{0x03C0FB36,0x005E},
+{0x1AAAA336,0x005F},
+{0x14182936,0x0060},
+{0xF371CB36,0x0061},
+{0xD6990336,0x0062},
+{0x54A90036,0x0063},
+{0x6323EC36,0x0064},
+{0xF33B0B36,0x0065},
+{0x873E3136,0x0066},
+{0x3E94FF36,0x0067},
+{0x29BAA436,0x0068},
+{0x275EAC36,0x0069},
+{0x361E5B36,0x006A},
+{0x34DF9A36,0x006B},
+{0x787F5236,0x006C},
+{0x38AD1536,0x006D},
+{0x6C5FDE36,0x006E},
+{0x32AF7536,0x006F},
+{0x0A8C0436,0x0070},
+{0x4F13F836,0x0071},
+{0xDDDB8736,0x0072},
+{0xF513B036,0x0073},
+{0x1F097036,0x0074},
+{0x82C55236,0x0075},
+{0x230EE636,0x0076},
+{0xFEFD8536,0x0077},
+{0xAAA17F36,0x0078},
+{0xDE56A136,0x0079},
+{0xCFF0CE36,0x007A},
+{0x15052136,0x007B},
+{0xCF823936,0x007C},
+{0x463B4236,0x007D},
+{0xC1527536,0x007E},
+{0x9F7C6636,0x007F},
+{0xCE48AF36,0x0080},
+{0xE5183C36,0x0081},
+{0x4DF6FC36,0x0082},
+{0x64B69536,0x0083},
+{0x23964D36,0x0084},
+{0x36ABA236,0x0085},
+{0x47294236,0x0086},
+{0x490F8C36,0x0087},
+{0xA575EB36,0x0088},
+{0x37BB9136,0x0089},
+{0x9BBFAF36,0x008A},
+{0x5A3E8136,0x008B},
+{0x2E9E7B36,0x008C},
+{0xDE290336,0x008D},
+{0x13B40436,0x008E},
+{0x183AEC36,0x008F},
+{0xA3A8A536,0x0090},
+{0x4E7B2336,0x0091},
+{0x6D3C7636,0x0092},
+{0x3F7A8336,0x0093},
+{0xCA623636,0x0094},
+{0x8AB9B736,0x0095},
+{0xC9C9D136,0x0096},
+{0x75092536,0x0097},
+{0x9E764C36,0x0098},
+{0x67B7B236,0x0099},
+{0x67D80A36,0x009A},
+{0xCF963F36,0x009B},
+{0x1F3FB336,0x009C},
+{0xB3FC7436,0x009D},
+{0xC78D3636,0x009E},
+{0x8A86ED36,0x009F},
+{0x0E06D236,0x00A0},
+{0x9F432436,0x00A1},
+{0x3AEA7A36,0x00A2},
+{0x26DF4536,0x00A3},
+{0xE3149D36,0x00A4},
+{0x3E21FF36,0x00A5},
+{0x7030FA36,0x00A6},
+{0x7AEFF236,0x00A7},
+{0x7427F636,0x00A8},
+{0x972ED936,0x00A9},
+{0x2466DE36,0x00AA},
+{0xE5991936,0x00AB},
+{0x73CAD736,0x00AC},
+{0x71A70736,0x00AD},
+{0x7EB80A36,0x00AE},
+{0x5F4B5B36,0x00AF},
+{0xEC798D36,0x00B0},
+{0x8483A936,0x00B1},
+{0xFAB54E36,0x00B2},
+{0x03489536,0x00B3},
+{0xC8315536,0x00B4},
+{0x92259336,0x00B5},
+{0xBE5D5536,0x00B6},
+{0xFDA26836,0x00B7},
+{0xBF9A6036,0x00B8},
+{0xF7B05B36,0x00B9},
+{0xA6318F36,0x00BA},
+{0x044DF436,0x00BB},
+{0xAEFC3836,0x00BC},
+{0xA16A7E36,0x00BD},
+{0x5124F636,0x00BE},
+{0x45E4F336,0x00BF},
+{0xCFCD5D36,0x00C0},
+{0x50E27A36,0x00C1},
+{0x4CF33C36,0x00C2},
+{0x609CC736,0x00C3},
+{0xEBB98436,0x00C4},
+{0x21FEDE36,0x00C5},
+{0xB3AA8436,0x00C6},
+{0xB6780E36,0x00C7},
+{0x326F9536,0x00C8},
+{0xA07E0536,0x00C9},
+{0x52070036,0x00CA},
+{0xBC720B36,0x00CB},
+{0xE4849136,0x00CC},
+{0xC9012536,0x00CD},
+{0x8A5B0F36,0x00CE},
+{0xEF572B36,0x00CF},
+{0x3F13A636,0x00D0},
+{0x0FF25636,0x00D1},
+{0x8A619A36,0x00D2},
+{0x6F6B6F36,0x00D3},
+{0xE7A99A36,0x00D4},
+{0x02461436,0x00D5},
+{0x39DC3236,0x00D6},
+{0xD7B84036,0x00D7},
+{0xB1B20C36,0x00D8},
+{0x8781EB36,0x00D9},
+{0x192D9236,0x00DA},
+{0xE0118136,0x00DB},
+{0xFE480B36,0x00DC},
+{0xC87B5F36,0x00DD},
+{0xA6D3CC36,0x00DE},
+{0xDB2A3036,0x00DF},
+{0x0F5EC636,0x00E0},
+{0xD4855D36,0x00E1},
+{0x9A0CD036,0x00E2},
+{0xF0BC3E36,0x00E3},
+{0x72093436,0x00E4},
+{0x8D575C36,0x00E5},
+{0xBC04DC36,0x00E6},
+{0x5A7B1736,0x00E7},
+{0x3EDF6536,0x00E8},
+{0xAAD3D436,0x00E9},
+{0x58444236,0x00EA},
+{0xAC162836,0x00EB},
+{0x45F3CB36,0x00EC},
+{0xB9CB1F36,0x00ED},
+{0x4FD58F36,0x00EE},
+{0x51EC8936,0x00EF},
+{0x7EC4A636,0x00F0},
+{0x7BBA1736,0x00F1},
+{0xE25A0936,0x00F2},
+{0x2772A636,0x00F3},
+{0xE0CD0736,0x00F4},
+{0x5C08DA36,0x00F5},
+{0x02759236,0x00F6},
+{0xE23B1C36,0x00F7},
+{0x7DB1C836,0x00F8},
+{0x84C9D636,0x00F9},
+{0x21F62E36,0x00FA},
+{0x24A81136,0x00FB},
+{0x53ADB336,0x00FC},
+{0x27B02E36,0x00FD},
+{0xEAA9FB36,0x00FE},
+{0x36356036,0x00FF},
+{0xA7351A36,0x0100},
+{0xA3EBBA36,0x0101},
+{0xBA8DBA36,0x0102},
+{0x87EDE936,0x0103},
+{0xD82F9A36,0x0104},
+{0xB1580B36,0x0105},
+{0x816E8D36,0x0106},
+{0x6598DC36,0x0107},
+{0x8EA98636,0x0108},
+};
+errcode_t change_mac_from_chipinfo_map(uint32_t chipinfo_num)
+{
+    uint8_t bd_addr[BD_ADDR_LEN]={0};
+    errcode_t ret;
+    for (int i=0 ; i< sizeof(g_chipinfo_map)/sizeof(chiinfo_mac_pair);i++)
+    {
+
+       
+        if (g_chipinfo_map[i].chipinfo ==  chipinfo_num)
+        {
+            uint16_t btmac2 = g_chipinfo_map[i].mac;
+            bd_addr[5] = (btmac2&0x00FF) ; 
+            bd_addr[4] = (btmac2&0xFF00) >>8 ;
+            bd_addr[3] = 0x01 ;
+            bd_addr[2] = 0x06 ;
+            bd_addr[1] = 0x11 ;
+            bd_addr[0] = 0x28 ;
+            ret = uapi_set_nv_btaddr(bd_addr, sizeof(bd_addr));
+            if (ret != ERRCODE_SUCC) { 
+                /* ERROR PROCESS */ 
+                printf("found chipinfo 0x%08X and change btmac to 0xXXXXXX01%04X failed! ret %d\n",
+                g_chipinfo_map[i].chipinfo,
+                g_chipinfo_map[i].mac,
+                ret);
+                return ERRCODE_FAIL; 
+            } else{
+                printf("found chipinfo 0x%08X and change btmac to 0xXXXXXX01%04X success!\n",
+                g_chipinfo_map[i].chipinfo,
+                g_chipinfo_map[i].mac);
+                return ERRCODE_SUCC;
+            }
+        }
+    }
+    printf(" chipinfo 0x%08X not found !\n",chipinfo_num);
+    return ERRCODE_FAIL;
+}
+#endif
\ No newline at end of file
index 0171836..6322d89 100644 (file)
@@ -126,6 +126,12 @@ errcode_t uapi_get_btname(uint8_t *buf_btname, uint32_t *len_btname);
 errcode_t uapi_get_nv_btaddr(uint8_t *buf_btaddr, uint32_t *len_btaddr);
 errcode_t uapi_get_nv_btname(uint8_t *buf_btname, uint32_t *len_btname);
 
+/*
+cywee chipinfo 转换 btmac地址,确保之前被chipinfo激活的密钥,用bt mac仍然可以激活
+要在init_btaddr_btname之前执行
+*/
+errcode_t change_mac_from_chipinfo_map(uint32_t chipinfo_num);
+
 
 errcode_t init_btaddr_btname(void);