RK3288 android7.1 随机生成SN号问题

问题现象

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值