rk3288_android7.1 随机生成SN号问题

news/2024/10/24 10:14:41/

问题现象

擦除flash升级后,SN号会被清空,不方便调试;希望擦除flash升级后,可以随机生成SN号


解决方案:

system/core/drmservice/drmservice.c 中 SERIALNO_FROM_IDB设为1,会使用工具写入的sn,否则会使用随机生成的sn。 此文件的main()中if(SERIALNO_FROM_IDB)里,当没有获取到工具写入的sn后,添加一段随机生成sn的代码(就是else里那段)即可。

diff --git a/drmservice/drmservice.c b/drmservice/drmservice.c
index ec3836ab7..9b7b13b39 100644
--- a/drmservice/drmservice.c
+++ b/drmservice/drmservice.c
@@ -1144,9 +1144,23 @@ int main( int argc, char *argv[] )if(SERIALNO_FROM_IDB)//read serialno form idb{vendor_storage_read_sn();
-        property_set("sys.serialno", sn_buf_idb[0] ? sn_buf_idb : "");
-        write_serialno2kernel(sn_buf_idb);
-        SLOGE("get serialno from idb,serialno = %s",sn_buf_idb);
+        SLOGE("[fy]:read sn_buf_idb:%s\n",sn_buf_idb);
+
+        generate_device_serialno(10,sn_buf_auto); //随机生成SN号
+        SLOGE("[fy]:read sn_buf_auto=%s\n",sn_buf_auto);
+
+        property_set("sys.serialno", sn_buf_idb[0] ? sn_buf_idb : sn_buf_auto); //判断SN号是哪种方式写入(随机?手动?)
+        if(sn_buf_idb[0])
+        {
+            write_serialno2kernel(sn_buf_idb);
+            SLOGE("[fy]:get serialno from idb,serialno = %s\n",sn_buf_idb);
+        }
+        else
+        {
+            write_serialno2kernel(sn_buf_auto);
+            SLOGE("[fy]:get serialno from auto,serialno = %s\n",sn_buf_auto);
+        }
+vendor_storage_read_second_sn();property_set("sys.sub_serialno", sn_buf_idb_two[0] ? sn_buf_idb_two : "");write_serialno2kernel(sn_buf_idb_two);

注:此功能不影响写号工具手动写入SN号 <当工具写入后会进行覆盖随机生成的SN号>。


http://www.ppmy.cn/news/474495.html

相关文章

Android 获取SN号

/*** 根据给定 Key 获取值.** return 如果不存在该 key 则返回空字符串* throws IllegalArgumentException 如果 key 超过 32 个字符则抛出该异常*/public static String get(Context context, String key) throws IllegalArgumentException {String ret;try {ClassLoader cl …

序数是什么意思_vlookup 列序数是什么意思

vlookup 列序数指返数据在查找区域的第几列数。 比如以下vlookup公式中&#xff0c;列序数是2&#xff0c;表示返区域B2到E7的第2列的值&#xff0c;区域B2到E7的第1列是B列&#xff0c;第2列是C列&#xff0c;所以&#xff0c;如果在区域B2到E7的B列中找到B3&#xff0c;那么将…

Android 获取设备SN号

方式一&#xff1a; Build.SERIAL方式二&#xff1a; 无需添加任何权限 public static String getDeviceSN(){String serial null;try {Class<?> c Class.forName("android.os.SystemProperties");Method get c.getMethod("get", String.class);s…

关于SN和PN的概念

1.SN码 SN码是产品序列号&#xff0c;是产品的身份证号码&#xff0c;又称&#xff1a;机器码、认证码、注册申请码等。SN码是Serial Number的缩写&#xff0c;有时也叫SerialNo&#xff0c;也就是产品序列号&#xff0c;产品序列是为了验证“产品的合法身份”而引入的一个概念…

【Vue3+Ts project】认识 nprogress 和 @types/nprogress库

目标&#xff1a; 使用 nprogress 库完成切换路由时 顶部进度条加载 1.安装插件 pnpm add nprogress pnpm add types/nprogress -D 或 npm install nprogress npm install types/nprogress -D 2.引入nprogress库 和 nprogress样式在router文件内 import NProgress from npro…

基于linux 的 PCI PCIe 总线分析总结

基于linux 的 PCI & PCIe 总线分析总结 前言 讲解PCI & PCIe 的书有很多&#xff0c;我手上就拿了一本《PCI Express 体系结构导读》的书&#xff0c;据说这本书基本是翻译了外文&#xff0c;书上虽然内容比较全面&#xff0c;但是书那么厚&#xff0c;想达到快速掌握…

PCI/PCIe基础

PCI/PCIe基础 处理器系统中的PCI PCI总线全称Peripheral Component Interconnect&#xff0c;它是处理器系统的一部分&#xff0c;属于局部总线&#xff0c;其主要功能是连接外部设备。 PCI总线有独立的地址空间&#xff0c;它与处理器地址空间是隔离的。隔离两者的是一种叫…

PCI、PCIE、PIC

PCI总线 PCI&#xff08;Peripheral Component Interconnect&#xff0c;外设部件互连标准&#xff0c;或外围器件互联&#xff09;是目前个人电脑中使用最为广泛的接口&#xff0c;几乎所有的主板产品上都带有这种插槽。PCI插槽也是主板带有最多数量的插槽类型&#xff0c;在…