Firefly开源社区

标题: [求助]rk3288的序列号要怎么修改?到底有几个序列号,怎么区分? [打印本页]

作者: qingfeng623    时间: 2016-11-22 13:29
标题: [求助]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中,实际用户看到的序列号,是唯一的,与我有没有更新固件没有关系。当然,我是可以修改的,我要按照一定的规则生成。

谁有这方面的经验,给提点一下。



作者: qingfeng623    时间: 2016-11-23 16:47
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。
工具地址点:[url=UpgradeDllTool_Release_v1.35,序列号,MAC地址,wifi地址, 蓝牙地址,IMEI,等 http://developer.t-firefly.com/f ... hread&tid=11194 (出处: Firefly开源社区)]传送门[/url]

另外
kernel/drivers/mtd/rknand/rknand_base_ko.c +321 这里有描述kernel获取sn号的方式


作者: zhansb    时间: 2016-11-25 09:07
/proc/cpuinfo的序列号是读取烧写在RK3288 EFUSE上的唯一性编号信息
楼主可以把IDB或者efuse上的信息写进ro.serialno,设置里面的应该就可以显示对应的序列号信息
作者: qingfeng623    时间: 2016-11-25 10:36
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信息?
作者: wohuainiandeshi    时间: 2018-3-20 10:35
你好,我用的是RK3399,但是这个/system/core/xxx.c什么的怎么改,没看到core这个目录啊?
作者: qingfeng623    时间: 2018-3-22 17:39
wohuainiandeshi 发表于 2018-3-20 10:35
你好,我用的是RK3399,但是这个/system/core/xxx.c什么的怎么改,没看到core这个目录啊?

system  no /system
作者: 诸子墨墨    时间: 2018-12-20 10:14
谢谢分享
作者: YONGBIN    时间: 2019-5-17 13:53
谢谢分享
作者: zz66562345    时间: 2019-12-17 03:49
请求分享
作者: zz66562345    时间: 2019-12-17 05:19
qingfeng623 发表于 2016-11-23 16:47
1,修改drmservice.c
system/core/drmservice/drmservice.c
#define SERIALNO_FROM_IDB 1  //if 1 read sn ...

在吗 为什么总是读取失败
作者: qingfeng623    时间: 2020-1-17 13:08
zz66562345 发表于 2019-12-17 05:19
在吗 为什么总是读取失败

不知道
作者: 超_luMyU    时间: 2020-1-20 10:28
rk有专门的写号工具,使用写号工具对设备序列号进行修改。
作者: cl19790    时间: 2020-1-29 12:25
老师指点一下
作者: 笨笨猪    时间: 2020-3-9 11:53
qingfeng623 发表于 2016-11-23 16:47
1,修改drmservice.c
system/core/drmservice/drmservice.c
#define SERIALNO_FROM_IDB 1  //if 1 read sn ...

你好,我是用的WNpctool_Setup_V1.1.5_0802这个工具写的,但是写进去成功,工具读取成功,但是机器里的跟工具读出来的不一致,这是为啥?请帮忙回复写,非常感谢!




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1