问题现象

擦除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号>。

rk3288_android7.1 随机生成SN号问题相关推荐

  1. java随机生成订单号

    package com.aaa.utils;import org.springframework.stereotype.Component;/*** @项目名:ppp* @类名: DateUtil.j ...

  2. 随机生成卡号,并要求唯一

    思想:判断是否重复,需要遍历系统中所有用户的卡号,如果系统中已经存在该卡号,需要再随机生成一次,直到随机生成的卡号系统中不存在,会用到死循环. public class RandomCardId {p ...

  3. mysql生成18位纯数字id_MySQL实现注册时随机生成数字id,类似于注册qq时随机生成qq号...

    首先根据长度需求通过java的随机函数java.util.Random生成随机数,如希望得到5位随机id,则可以使用如下语句 int r = (new Random()).nextInt()%8999 ...

  4. html验证码功能如何实现原理,基于JS实现一个随机生成验证码功能

    效果展示 实现原理 1. html:一般就是一个div: 2. JS:1)将所有的验证码所用的字符放在一个字符串中 2)在这个字符串的字符个数以内,随机生成索引号 3)根据索引号查找对应字符,拼接成验 ...

  5. python彩票生成_python3学习--随机生成密码、随机生成彩票号

    ################随机生成密码##################### 1.写一个函数:函数的功能是生成一批密码,存到文件里面 def gen_password(num): #num ...

  6. 随机生成关于银行卡号的字典(卡号以6102009开头,后面依次是001,002,...)

    题目要求: 1.随机生成100个卡号:卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100), 2.生成关于银行卡号的字典, 默认每个卡号的初始密码为"redh ...

  7. 随机生成10位数QQ号.c

    // 随机生成十位数的QQ号,首位数只能为1,2,3#include <stdio.h> #include <stdlib.h> #include <time.h> ...

  8. java代码:双色球号随机生成(极其简洁!)

    https://blog.csdn.net/qq_40677004/article/details/79699270 原 java代码:双色球号随机生成(极其简洁!) 2018年03月26日 15:5 ...

  9. 用python实现随机生成银行卡号,输出卡号和密码信息

    随机生成银行卡号,输出卡号和密码信息 题目要求: 随机生成100个卡号: 卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100), 生成关于银行卡号的字典, 默认每个卡号 ...

最新文章

  1. Gradle -- buildScript块与allprojects块及根级别的repositories区别
  2. clock_gettime获取时间
  3. 安装了email模块还是报错_科普:利用Python smtplib和email模块实现自动发送邮件功能...
  4. 2Python全栈之路系列之基于socket实现聊天机器人
  5. nsfocus 十周年了 时间过得好快啊... 恭喜下...
  6. ionic轮播,滑动之后不进行轮播
  7. 正则表达式学习笔记011--贪婪和懒惰的匹配
  8. 为SSD加速 实战4KB对齐技巧2/3
  9. Linux Iptables 语法大全
  10. 三阶龙格库塔matlab,三阶、四阶龙格库塔函数matlab代码
  11. SLAM论文写作经验 | 小白、跨专业、无人指导、一年多从零到发顶会,他如何做到?
  12. 《OpenGL编程指南(原书第9版)》——第3章 3.0OpenGL绘制方式
  13. (01) Apache Felix 入门 - 01
  14. 谷歌掐架甲骨文:揭秘 Java 侵权案始末
  15. 走迷宫爆压,21行突破B站记录(自创,自设地图)
  16. ACM-ICPC国际大学生程序设计竞赛亚洲区大连赛区(2016)地区赛——花开花落终有时
  17. 计算机缺失d3dcompiler43.dll,电脑d3dcompiler43.dll文件丢失怎么解决?
  18. 怎么培养孩子的金钱观
  19. 古风文字素材_适合手帐的古风文字素材
  20. 【翻译】RUST无锁编程

热门文章

  1. python输出100以内的质数与合数
  2. css公共默认常用样式
  3. #Python #微信 #消息防撤回 Python实现微信防撤回
  4. 【Linux】Linux下静态库(.a)和动态库(.so)的制作和使用
  5. sublime快捷键!+tab键失效
  6. (一)安卓初识, 建立HelloAndroid应用程序
  7. Simulink学习——基础建模流程案例(一)(简单弹簧阻尼器复合系统建模)
  8. mysql timestamp 前一天_mysql之TIMESTAMP(时间戳)用法详解
  9. hive获取当前时间(类似sql的now()函数)
  10. vue模板插值失效问题