Android MediaTek bootloader 的序列号长度 & 移除非字母和数字限制 SN-Writer工具支持写入

这篇具有很好参考价值的文章主要介绍了Android MediaTek bootloader 的序列号长度 & 移除非字母和数字限制 SN-Writer工具支持写入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

修改的文件:

文件修改说明:


这个是我在mtk芯片方案android 5.1的修改 , 据我所知12版本以内都是这么改
灰常简单 希望能帮助有需要的人。

主要对 MediaTek bootloader 的序列号长度和打印设置进行了优化,提高了序列号的长度,并改变了打印设置,使其在构建中也能打印调试信息。文章来源地址https://www.toymoban.com/news/detail-642684.html

修改的文件:

  1. bootable/bootloader/lk/app/mt_boot/mt_boot.c
  2. bootable/bootloader/lk/target//xxx/include/target/cust_usb.h

文件修改说明:

  1. mt_boot.c: 修改了串行号的长度定义,从19个字符增加到36个字符。同时,修改了打印设置,使其在用户构建中也能打印调试信息,而不仅仅是在开发者构建中打印。
    同时修改了`read_product_info`函数。原来的函数会检查读取到的产品信息中的每个字符,如果字符既不是字母也不是数字,那么函数就会返回0。注释掉了这个检查,所以现在的函数会接受任何字符。
  2. cust_usb.h: 修改了串行号的长度定义,从19个字符增加到36个字符。

     
---
 bootable/bootloader/lk/app/mt_boot/mt_boot.c                  | 11 +++++------
 .../lk/target/xxx8735_xxx/include/target/cust_usb.h          |  2 +-
 2 files changed, 6 insertions(+), 7 deletions(-)
 mode change 100644 => 100755 bootable/bootloader/lk/target/xxx8735_xxx/include/target/cust_usb.h

diff --git a/bootable/bootloader/lk/app/mt_boot/mt_boot.c b/bootable/bootloader/lk/app/mt_boot/mt_boot.c
index 7ccabdb..e960fe7 100755
--- a/bootable/bootloader/lk/app/mt_boot/mt_boot.c
+++ b/bootable/bootloader/lk/app/mt_boot/mt_boot.c
@@ -78,14 +78,14 @@ u8 g_oemkey[OEM_PUBK_SZ] = {OEM_PUBK};
 
 /* Please define SN_BUF_LEN in cust_usb.h */
 #ifndef SN_BUF_LEN
-#define SN_BUF_LEN	19	/* fastboot use 13 bytes as default, max is 19 */
+#define SN_BUF_LEN	36	/* fastboot use 13 bytes as default, max is 19 */
 #endif
 
 #define FDT_BUFF_SIZE  1024
 #define FDT_BUFF_PATTERN  "BUFFEND"
 
 #define DEFAULT_SERIAL_NUM "0123456789ABCDEF"
-#define SERIAL_NUM_FROM_BARCODE
+#define SERIAL_NUM_FROM_BARCODE  1
 /*
  * Support read barcode from /dev/pro_info to be serial number.
  * Then pass the serial number from cmdline to kernel.
@@ -571,11 +571,10 @@ int boot_linux_fdt(void *kernel, unsigned *tags,
 
 
     if (!has_set_p2u) {
-		//shh modify print uart0  to normal uart0
 #ifdef USER_BUILD
-        sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=1");
+        sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=0");
 #else
-        sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=1 ddebug_query=\"file *mediatek* +p ; file *gpu* =_\"");
+        sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=0 ddebug_query=\"file *mediatek* +p ; file *gpu* =_\"");
 #endif
 
         /*Append pre-loader boot time to kernel command line*/
@@ -780,7 +779,7 @@ void boot_linux(void *kernel, unsigned *tags,
 #endif
     if (!has_set_p2u) {
 #ifdef USER_BUILD
-        sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=1");
+        sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=0");
 #else
         sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=0 ddebug_query=\"file *mediatek* +p ; file *gpu* =_\"");
 #endif
diff --git a/bootable/bootloader/lk/target/xxx8735_xxx/include/target/cust_usb.h b/bootable/bootloader/lk/target/xxx8735_xxx/include/target/cust_usb.h
old mode 100644
new mode 100755
index ec29e4b..bd26001
--- a/bootable/bootloader/lk/target/xxx8735_xxx/include/target/cust_usb.h
+++ b/bootable/bootloader/lk/target/xxx8735_xxx/include/target/cust_usb.h
@@ -9,6 +9,6 @@
 #define USB_MANUFACTURER	"MediaTek"
 #define USB_PRODUCT_NAME	"Android"
 #define FASTBOOT_DEVNAME	"mt6752_device"
-#define SN_BUF_LEN		19
+#define SN_BUF_LEN		36
 
 #endif /* __CUST_USB_H__ */
-- 
bootable/bootloader/lk/app/mt_boot/mt_boot.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/bootable/bootloader/lk/app/mt_boot/mt_boot.c b/bootable/bootloader/lk/app/mt_boot/mt_boot.c
index e960fe7..074cdce 100755
--- a/bootable/bootloader/lk/app/mt_boot/mt_boot.c
+++ b/bootable/bootloader/lk/app/mt_boot/mt_boot.c
@@ -1140,8 +1140,10 @@ static inline int read_product_info(char *buf)
 	for( ; 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;
+		}
+		//$shh$20190311$disabled$sn -$
+		/* else if( !isalpha(buf[tmp]) && !isdigit(buf[tmp]))
+			return 0;*/
 	}
 	return tmp;
 }
-- 
1.9.1

到了这里,关于Android MediaTek bootloader 的序列号长度 & 移除非字母和数字限制 SN-Writer工具支持写入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# 获取电脑序列号和主板序列号

    项目中有需求要从软件中获取当前电脑的整机序列号和主板序列号,研究一番,C#的实现如下: 对于主流的计算机产品来说,这两个方法都没有问题。 但是对于一些行业定制的产品,比如某些加固平板,加固笔记本等设备,主板序列号可能是缺失的,要具体问题具体分析了。

    2024年02月16日
    浏览(58)
  • 如何查询iPhone手机的序列号?苹果序列号查询方法

    iPhone序列号不仅可以查询设备的基本信息,包括生产日期、生产厂家、颜色、内存大小、版本等; 还可以用来验证设备真伪、查询激活日期、保修情况、是否开启查找我的功能等。 那么,如何查询iPhone手机的序列号呢?今天小编就给大家介绍怎么查询苹果序列号,有需要的

    2024年02月05日
    浏览(69)
  • 序列号及序列号生成器(号段模式,数据库模式)详细介绍(建议收藏)

    现如今,数据的唯一性和可追溯性变得越来越重要。从简单的数据库主键到复杂的分布式系统,唯一标识符在各种场景中都发挥着关键作用。序列号,作为一种广泛应用的唯一标识符,为我们提供了确保数据完整性和一致性的基础。在这个背景下,高效、可靠的序列号生成器

    2024年02月03日
    浏览(74)
  • Linux:TCP 序列号简介

    限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 TCP 序列号 ,是为 TCP 协议通信数据中的每一个字节赋予一个唯一编号,其作用可以概括如下: 一图胜千言,还是上一张图来直观感受下: 上图是 TCP 协议数据头部,红框中的部分: 序号

    2024年02月02日
    浏览(62)
  • 显示器序列号查询方式

    序列号位置 :位于显示器背部下方凹槽内 显示 S/N 或 序号 字段,可参考本文最下方图片 方式一:人工输入 方式二:微信提取文字,步骤如下 序列号拍照发送到自己微信长按图片提取文字(iPhone有概率没有这个选项,没有的话重拍只包含S/N的清晰照片或用安卓版微信尝试或

    2024年02月11日
    浏览(59)
  • 查找mac硬盘序列号的方法

    需要查找macbook pro的硬盘序列号信息,找了好几个帖子,发现都不见效,需要花费时间找的东西都有必要记录下来,防止下次重复浪费时间。 macbook pro macos版本: 根据百度提供的方法,并不能得到相应的效果,原因如下: 不知道是不是最新更新了mac os系统的原因,找不到系统

    2024年02月06日
    浏览(55)
  • 【Mysql】给查询记录增加序列号方法

    在MySQL 8.0版本中,你可以使用ROW_NUMBER()函数来添加序号。以下是一个示例查询,演示如何添加序号: 请将column_name替换为你想要按照哪一列排序的列名。还可以添加其他需要的列,以在结果中显示它们。 这个查询将返回一个名为serial_number的新列,其中包含每行的序号。序号

    2024年02月09日
    浏览(54)
  • 肿么查找联想笔记本的序列号

    联想笔记本电脑序列号查询有如下五种: (1)将笔记本翻到背面,主机背面有一个SN码,如下图所示,就是要查找的序列号(主机编码); (2)关机后拿掉电池,在电池槽内可以查看主机编号,如下图所示; (3)在保修卡上会有贴纸,在贴纸上也会有序列号的信息。上面

    2024年02月11日
    浏览(71)
  • 电脑重装系统后序列号怎么查

    最近很多网友都在问怎么看桌面操作系统序列号,我们安装系统的时候是需要知道,其实想要知道自己电脑的序列号非常简单的,网友们看看下面操作就知道了。 工具/原料: 系统版本:win10 型号:联想小新Air 13 Pro 方法/步骤: 方法一: 桌面操作系统序列号怎么查 1、在笔记

    2024年02月09日
    浏览(49)
  • java获取linux和window序列号

    获取系统序列号在Java中并不是一个直接支持的功能,因为Java语言本身并不提供直接访问硬件级别的信息,如CPU序列号。但是,我们可以使用一些平台特定的工具或命令来实现这一功能。下面我将展示如何使用Java获取Windows和Linux系统上的CPU序列号、磁盘、mac地址等信息,及使

    2024年01月24日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包