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

本文涉及的产品
图片翻译,图片翻译 100张
语种识别,语种识别 100万字符
文本翻译,文本翻译 100万字符
简介: Android MediaTek bootloader 的序列号长度 & 移除非字母和数字限制 SN-Writer工具支持写入

这个是我在mtk芯片方案android 5.1的修改 , 据我所知12版本以内都是这么改

灰常简单 希望能帮助有需要的人。

主要对 MediaTek bootloader 的序列号长度和打印设置进行了优化,提高了序列号的长度,并改变了打印设置,使其在构建中也能打印调试信息。

修改的文件:

  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

相关文章
|
6月前
|
Android开发
Android Mediatek 增加Recovery模式下读cmdline的强制工厂重置选项
Android Mediatek 增加Recovery模式下读cmdline的强制工厂重置选项
57 0
|
3月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
49 1
|
4月前
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异性:平台、工具和用户体验的对比分析
【7月更文挑战第30天】在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据着不可忽视的地位。本文将深入探讨这两大平台在开发环境、工具选择以及最终用户体验上的根本差异,并分析这些差异如何影响开发者的策略和用户的偏好。通过比较安卓的开放性与iOS的封闭性,我们将揭示不同平台下的开发哲学及其对生态系统的影响。
44 4
|
4月前
|
开发工具 Android开发 数据安全/隐私保护
探索iOS与安卓应用开发的异同:技术、工具和市场趋势
在移动操作系统的广阔舞台上,iOS和安卓两大主角各自演绎着怎样的精彩?本文将深入剖析这两大平台在应用开发过程中的技术差异、开发工具的选择以及面对的市场环境。通过数据支撑和案例分析,我们将一窥这两个系统如何影响开发者的决策,并探讨它们未来的发展方向。
|
3月前
|
API 调度 Android开发
Android经典实战之处理后台任务的2个工具
本文介绍Android后台任务管理,涵盖WorkManager与JobScheduler的使用方法及区别。WorkManager属Jetpack库,确保任务可靠执行,支持延迟与条件依赖。JobScheduler则针对特定条件下的任务调度,如网络类型。两者各有优势,WorkManager适用于多数场景。
37 0
|
4月前
|
监控 开发工具 Android开发
探索安卓与iOS开发的差异:平台特性、工具和市场趋势
在移动应用开发的广阔舞台上,安卓与iOS两大操作系统扮演着主角。它们各自拥有独特的平台特性、开发工具和市场定位,这些差异深刻影响着开发者的决策和产品的最终形态。本文将深入分析这两大平台的关键技术差异,探讨各自的开发环境和工具集,以及它们在市场上的表现和未来的趋势,为开发者提供一个全面的视角,帮助他们在这两个平台上做出更明智的开发选择。
|
5月前
|
监控 Android开发 iOS开发
探索Android与iOS开发的差异:平台、工具和用户体验的比较
【6月更文挑战第25天】在移动应用开发的广阔天地中,Android和iOS两大平台各领风骚,它们在开发环境、工具选择及用户体验设计上展现出独特的风貌。本文将深入探讨这两个操作系统在技术实现、市场定位和用户交互方面的关键差异,旨在为开发者提供一个全景式的视图,帮助他们在面对项目决策时能够更加明智地选择适合自己项目需求的平台。
|
5月前
|
开发工具 Android开发 iOS开发
探索安卓与iOS开发的差异:从工具到用户体验
【6月更文挑战第20天】在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据半壁江山。本文将深入探讨这两个操作系统在开发环境、编程语言、用户界面设计以及性能优化等方面的关键差异。我们将通过比较分析,揭示各自平台的独特优势和面临的挑战,为开发者提供决策参考,并为最终用户提供更深层次的用户体验洞察。
|
6月前
|
Linux Android开发
Android开机不显示bootloader界面
Android开机不显示bootloader界面
76 0
Android开机不显示bootloader界面
|
6月前
|
Java Android开发
Android 反编译工具的使用
Android 反编译工具的使用
80 0