Firefly开源社区

12
发表新贴

[求助]rk3288的序列号要怎么修改?到底有几个序列号,怎么区分?

553

积分

1

威望

3

贡献

技术大神

Rank: 3Rank: 3

积分
553
发表于 2016-11-22 13:29:51     
本帖最后由 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中,实际用户看到的序列号,是唯一的,与我有没有更新固件没有关系。当然,我是可以修改的,我要按照一定的规则生成。

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


回复

使用道具 举报

553

积分

1

威望

3

贡献

技术大神

Rank: 3Rank: 3

积分
553
发表于 2016-11-23 16:47:37     
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号的方式

回复

使用道具 举报

2918

积分

56

威望

46

贡献

高级创客

Rank: 6Rank: 6

积分
2918

优秀版主论坛元老

发表于 2016-11-25 09:07:23     
/proc/cpuinfo的序列号是读取烧写在RK3288 EFUSE上的唯一性编号信息
楼主可以把IDB或者efuse上的信息写进ro.serialno,设置里面的应该就可以显示对应的序列号信息
回复

使用道具 举报

553

积分

1

威望

3

贡献

技术大神

Rank: 3Rank: 3

积分
553
发表于 2016-11-25 10:36:07     
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信息?
回复

使用道具 举报

35

积分

0

威望

0

贡献

技术小白

积分
35
发表于 2018-3-20 10:35:59     
你好,我用的是RK3399,但是这个/system/core/xxx.c什么的怎么改,没看到core这个目录啊?
回复

使用道具 举报

553

积分

1

威望

3

贡献

技术大神

Rank: 3Rank: 3

积分
553
发表于 2018-3-22 17:39:08     
wohuainiandeshi 发表于 2018-3-20 10:35
你好,我用的是RK3399,但是这个/system/core/xxx.c什么的怎么改,没看到core这个目录啊?

system  no /system
回复

使用道具 举报

5

积分

0

威望

0

贡献

吃瓜的群众

积分
5
发表于 2018-12-20 10:14:19     
谢谢分享
回复

使用道具 举报

45

积分

0

威望

0

贡献

技术小白

积分
45
发表于 2019-5-17 13:53:32     
谢谢分享
回复

使用道具 举报

11

积分

0

威望

0

贡献

技术小白

积分
11
发表于 2019-12-17 03:49:17     
请求分享
回复

使用道具 举报

11

积分

0

威望

0

贡献

技术小白

积分
11
发表于 2019-12-17 05:19:05     
qingfeng623 发表于 2016-11-23 16:47
1,修改drmservice.c
system/core/drmservice/drmservice.c
#define SERIALNO_FROM_IDB 1  //if 1 read sn ...

在吗 为什么总是读取失败
回复

使用道具 举报

返回列表
12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表