日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

2022-8-3----Android10.0(MTK)-----SN_Writer 写入 SN 注意事项

發布時間:2023/12/20 Android 88 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2022-8-3----Android10.0(MTK)-----SN_Writer 写入 SN 注意事项 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、SN序列號

?設置-設備信息-型號和硬件 可以查看到 SN 號,而通過代碼分析可以知道、設置是通過讀取?ro.serialno 屬性來獲取SN。

?二、SN_Writer 寫入 SN

一般我們寫入 SN 號是通過MTK的工具?SN_Writer,但是要注意的是!這個工具寫入SN號可以分為兩種方式。這兩種方式都需要注意一個地方、如下圖:

?一定一定不要勾方框中的玩意、否則寫號的時候將不會寫入 proinfo 分區,proinfo 分區的信息將會是空、你代碼再怎么讀讀出來都是空,下面是讀?proinfo 分區的源碼。

vendor/mediatek/proprietary/bootable/bootloader/lk/app/mt_boot/mt_boot.c

?下面介紹兩種寫入的方式。

1、第一種方式 寫入Barcode

寫入Barcode,然后在代碼里把宏開關打開

/vendor/mediatek/proprietary/bootable/bootloader/lk/app/mt_boot/mt_boot.c

中,將 #define SERIAL_NUM_FROM_BARCODE 宏定義打開

這個時候 SN 號就會去讀?寫入的Barcode的值。

PS說明:用第一種方式?寫入 Barcode 的時候,寫入了 proinfo分區,然后開機的過程中,會將該分區的 barcode 值賦予 gsm.serialno,如果沒有把? #define SERIAL_NUM_FROM_BARCODE 宏定義打開,那么將不會賦予 ro.serialno,所以這個時候你去設置下面查看該序列號,顯示的SN號和你寫入的SN號是不一樣的。為了保證一致,所以記得打開宏定義。

這個時候開機的過程中會把分區的?barcode 值賦予?gsm.serialno 和?ro.serialno 這兩個屬性。

2、第二種方式 寫入Serial No

?注意:一般 SN_Writer 是將該選項給隱藏的、如果要想顯示出來、按照MTK提供的FAQ操作。

下面是FAQ提供的資料:

1. SN Writer Tool 工具端

1.1. 用 v1.1632.00 及其之后的版本

1.2. SN Writer Tool 先關閉,修改程序目錄下 SN_setup.ini 文件

Enable Serial No = True

Serial Num From IMEI = False

1.3. 打開 SN Writer Tool,進入 "System Config" 配置界面,勾選左上方的 "Serial No."

1.4. 返回主界面點擊 "Start" ,在號碼輸入界面中 "SerialNo" 中輸入序列號 注意:SerialNo 只能包含英文字母或數字

2. 移動設備端

2.1. 確認 proinfo 分區名稱 早期的 MBR 分區格式設備,proinfo分區的名字是"PRO_INFO", 請通過 Scatter File 進行確認。 后續代碼中涉及"proinfo"字符串判斷的地方請對應修改。

2.2. /app/mt_boot/mt_boot.c 打開宏定義 打開默認關閉的 /* #define SERIAL_NUM_FROM_BARCODE */ -> #define SERIAL_NUM_FROM_BARCODE

2.3. /app/mt_boot/mt_boot.c 中 read_product_info 函數 修改為以下:

static inline int read_product_info(char *buf) { #define PROINFO_OFFSET 116 // barcode:64 + imei:40 + bt:6 + wifi:6 int tmp = 0; char * buf_blk = (char *)0;if (!buf) return 0;buf_blk = malloc(BLK_SIZE); if (!buf_blk) { dprintf(CRITICAL, "[error] alloc proinfo buffer fail.\n"); return 0;} memset(buf_blk, 0, BLK_SIZE); dprintf(CRITICAL, "begin read proinfo\n"); tmp = mboot_recovery_load_raw_part("proinfo", buf_blk, BLK_SIZE); if (tmp != BLK_SIZE) {dprintf(CRITICAL, "[error] read proinfo fail, only read size %d, block size %d.\n", tmp, BLK_SIZE); free(buf_blk); return 0;} memcpy(buf, buf_blk + PROINFO_OFFSET, SN_BUF_LEN);buf[SN_BUF_LEN] = '\0';dprintf(CRITICAL, "get serialno from proinfo: \"%s\"\n", buf);free(buf_blk); for (tmp = 0; tmp < SN_BUF_LEN; tmp++){if ( (buf[tmp] == 0 || buf[tmp] == 0x20) && tmp > 0){ break;} else if ( !isalpha(buf[tmp]) && !isdigit(buf[tmp])) return 0; } return tmp;}

3. 編譯LK,燒入機器,用 SN Writer tool寫入 serial num。

四、后續

如果想了解具體的過程、可以閱讀源碼、打log理清。

vendor/mediatek/proprietary/bootable/bootloader/lk/app/mt_boot/mt_boot.c void mt_boot_init(const struct app_descriptor *app) {unsigned usb_init = 0;unsigned sz = 0; #ifdef MTK_AB_OTA_UPDATERint ret; #endifset_serial_num();#ifdef MTK_DEBUG_SHELLif (app != NULL)goto lk_debug; #endifif (g_boot_mode == FASTBOOT)goto fastboot;#ifdef MTK_SECURITY_SW_SUPPORT #if MTK_FORCE_VERIFIED_BOOT_SIG_VFY/* verify oem image with android verified boot signature instead of mediatek proprietary signature *//* verification is postponed to boot image loading stage *//* note in this case, boot/recovery image will be verified even when secure boot is disabled */g_boot_state = BOOT_STATE_RED; #elseif (0 != sec_boot_check(0))g_boot_state = BOOT_STATE_RED; #endif #endif/* Will not return */boot_linux_from_storage();fastboot:target_fastboot_init();if (!usb_init)udc_init(&surf_udc_device);mt_part_dump();sz = target_get_max_flash_size();fastboot_init(target_get_scratch_address(), sz);udc_start();#ifdef MTK_DEBUG_SHELL lk_debug:mtk_wdt_disable();dprintf(INFO, "mt_boot_init not go to kernel and disable wdt !!\n"); #endif}

?其中的?set_serial_num() 函數

static void set_serial_num(void) {unsigned int len;char *id_tmp = get_env("MTK_DEVICE_ID");if (!id_tmp) {pal_log_info("Set serial # to default value.\n");len = strlen(DEFAULT_SERIAL_NUM);len = (len < SN_BUF_LEN) ? len : SN_BUF_LEN;strncpy(sn_buf, DEFAULT_SERIAL_NUM, len);sn_buf[len] = '\0';} else {pal_log_info("Set serial # from para.\n");len = strlen(id_tmp);len = (len < SN_BUF_LEN) ? len : SN_BUF_LEN;strncpy(sn_buf, id_tmp, len);sn_buf[len] = '\0';}#ifdef CONFIG_MTK_USB_UNIQUE_SERIALint errcode = read_product_usbid(sn_buf);if (errcode)pal_log_err("Set serial # from efuse. error: %d\n", errcode);len = strlen(sn_buf);len = (len < SN_BUF_LEN) ? len : SN_BUF_LEN;sn_buf[len] = '\0'; #endif // CONFIG_MTK_USB_UNIQUE_SERIAL#ifdef SERIAL_NUM_FROM_BARCODElen = (unsigned int)read_product_info(sn_buf); // sn_buf[] may be changed.if (len == 0) {len = strlen(DEFAULT_SERIAL_NUM);len = (len < SN_BUF_LEN) ? len : SN_BUF_LEN;strncpy(sn_buf, DEFAULT_SERIAL_NUM, len);} elselen = (len < SN_BUF_LEN) ? len : SN_BUF_LEN;sn_buf[len] = '\0'; #endif // SERIAL_NUM_FROM_BARCODE//pal_log_err("Serial #: \"%s\"\n", sn_buf);surf_udc_device.serialno = sn_buf; }

總結

以上是生活随笔為你收集整理的2022-8-3----Android10.0(MTK)-----SN_Writer 写入 SN 注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 麻豆免费在线观看 | 日本理伦片午夜理伦片 | 黄久久久 | 红色假期黑色婚礼2 | 中文字幕国产在线观看 | 美女网站免费观看 | 国产福利一区二区视频 | 制服丝袜av一区二区三区下载 | youjizz韩国| 91视频免费看片 | 国产综合内射日韩久 | 手机看片1024国产 | 伊人国产女 | 久久一级大片 | www操 | 1000部啪啪未满十八勿入 | 国产精品一区二区av日韩在线 | 嫩草影院一区二区三区 | 毛片随便看 | 51精品| 欧美日韩一区二区三区在线播放 | 超碰伊人| 国产精品一品二区三区的使用体验 | 日本亚洲欧美 | 午夜伦理剧场 | 精品日韩中文字幕 | 黄色成人在线观看 | 在线免费观看黄色小视频 | 香蕉久久夜色精品国产使用方法 | 午夜老司机福利 | 日韩视频在线观看免费视频 | 久久福利小视频 | 国产精品一区二区在线 | 亚洲综合在线中文字幕 | 红桃一区二区三区 | 国语av在线 | 国产精品白浆一区二小说 | 在线观看视频色 | 99视频在线 | 18岁毛片 | 超碰个人在线 | 精品一区二区三区在线观看 | 成人网在线看 | 337p粉嫩大胆噜噜噜噜69影视 | 女同二区| 在线视频网站 | 伊人春色网 | 综合影院 | 在线观看视频色 | 亚洲日本护士毛茸茸 | 男生和女生差差视频 | 免费美女视频网站 | 蜜臀av免费一区二区三区水牛 | 99re这里只有精品在线观看 | 在线观看h视频 | 中出在线| 日韩一区二区三区电影 | 国内av| 黄色免费在线播放 | 轻点好疼好大好爽视频 | 日韩精品人妻中文字幕有码 | 无码视频一区二区三区 | 91亚洲精品视频 | 青娱乐在线免费视频 | 奇米影视一区二区三区 | 成人在线中文字幕 | 亚洲成人激情在线 | 国产在线精品一区二区 | 国产av无码专区亚洲av麻豆 | 美女搞黄视频网站 | 日韩三级一区 | 国产精品分类 | 精品国产毛片 | 奇米在线777 | 法国伦理少妇愉情 | 桥本有菜aⅴ一区二区三区 在线午夜电影 | 国产精品久久久久久久久免费桃花 | 免费在线亚洲 | 国产精品久久久久电影 | 国产大奶在线 | 四虎影库 | 福利国产片 | 国产欧美日韩视频在线观看 | 国产美女精品一区二区三区 | 毛片网站在线免费观看 | 亚洲美女中文字幕 | 狠狠久| 成人国产精品免费观看动漫 | 黄色av免费播放 | av尤物 | 日韩短视频 | 熟妇人妻系列aⅴ无码专区友真希 | 91成人免费在线观看视频 | 欧美久久久久久久久中文字幕 | 手机在线免费视频 | 国产视频手机在线观看 | 色噜噜狠狠一区二区三区果冻 | 视频在线a | 五月婷婷,六月丁香 |