[求助]rk3288的序列号要怎么修改?到底有几个序列号,怎么区分?
本帖最后由 qingfeng623 于 2018-4-19 10:41 编辑这几天领导让修改下产品序列号,开启了各种百度。看到的序列号有这么几个情况:
1,查看cpuinfo 最后一行。
cat /proc/cpuinfo | busybox tail
我这里得到的结果是:Serial : ab5084299c78f3ef
2,查看cmdline中有没有serial值
cat /proc/cmdline | grep -i serial
我的cmdline里没有这个值。结果为空。
3,adb devices -l 看到的结果
adb devices -l
我这里得到的结果是:OUGRYS28NA device usb:3-1.3 product:rk3288 model:rk3288 device:rk3288
4,在android设备上,开机后进入setting->about devices->status->Serial number.
我这里得到的结果是:INITC748LINE.
这个结果,是我修改了system/core/init/init.c +748,得到的结果。
{ "ro.boot.serialno", "ro.serialno", "INITC748LINE", },
5,查看iSerial文件内容:cat sys/class/android_usb/android0/iSerial
结果与adb所得到的结果一致。OUGRYS28NA。
网上有介绍过方法5的,修改iSerial后,去看了3中,序列号并没有被改,而且4中的,也没有被改。
我认为4和5应该是保持一致的。我要达到的目标是,4中,实际用户看到的序列号,是唯一的,与我有没有更新固件没有关系。当然,我是可以修改的,我要按照一定的规则生成。
谁有这方面的经验,给提点一下。
1,修改drmservice.c
system/core/drmservice/drmservice.c
#define SERIALNO_FROM_IDB 1//if 1 read sn from idb3;if 0 generate sn auto
read sn from idb3,接下来,就是怎么改这个问题了。
2,idb3
按照我的理解,idb3应该是指,idblock的sector3的意思。
在机器开机时,boot会打印出sn号,sn:XXXXXXXX
这里的sn号,就是boot读取了sector3的数据得到的。
在以下文件中有描述:
u-boot/board/rockchip/common/rkloader/idblock.c +617
以下文件中有更多SDM_Read的信息,读取到全局变量gIdDataBuf中。
u-boot/board/rockchip/common/mediaboot/sdmmcBoot.c +114
3,关于序列号的读写功能,有rk提供的工具。
UpgradeDllTool_Release_v1.35。
工具地址点:http://developer.t-firefly.com/forum.php?mod=viewthread&tid=11194 (出处: Firefly开源社区)]传送门
另外
kernel/drivers/mtd/rknand/rknand_base_ko.c +321 这里有描述kernel获取sn号的方式
/proc/cpuinfo的序列号是读取烧写在RK3288 EFUSE上的唯一性编号信息
楼主可以把IDB或者efuse上的信息写进ro.serialno,设置里面的应该就可以显示对应的序列号信息 zhansb 发表于 2016-11-25 09:07
/proc/cpuinfo的序列号是读取烧写在RK3288 EFUSE上的唯一性编号信息
楼主可以把IDB或者efuse上的信息写进r ...
怎么把IDB或者efuse上的信息写进ro.serialno?这是要写在system/core/init/init.c +748中吗?
另外,请教一下,怎么一下读出来idb上的所以二进制数据?还有就是从哪可以获取到efuse信息? 你好,我用的是RK3399,但是这个/system/core/xxx.c什么的怎么改,没看到core这个目录啊? wohuainiandeshi 发表于 2018-3-20 10:35
你好,我用的是RK3399,但是这个/system/core/xxx.c什么的怎么改,没看到core这个目录啊?
systemno /system 谢谢分享 谢谢分享 请求分享 qingfeng623 发表于 2016-11-23 16:47
1,修改drmservice.c
system/core/drmservice/drmservice.c
#define SERIALNO_FROM_IDB 1//if 1 read sn ...
在吗 为什么总是读取失败
页:
[1]
2