platform:RK3399
OS:Android 7.1
参考:
1.比特人生 https://blog.csdn.net/ielife/article/details/86719313
2.KrisFei https://blog.csdn.net/kris_fei/article/details/79447343?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158883304619726869022990%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=158883304619726869022990&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v25-4

1. 概述

对于一台运行Android系统的终端设备,一般会有许多出厂就已经确定的属性,这些属性唯一且具有特殊的作用。其中SN,MAC,IMEI(有通信模块)是最基础的几个属性,这些属性一般在出厂之前就会使用工具写到设备中,和设备绑定。

1.1 SN号

SN码是Serial Number的缩写,有时也叫SerialNo,也就是产品序列号,产品序列是为了验证“产品的合法身份”而引入的一个概念,它是用来保障用户的正版权益,享受合法服务的;一套正版的产品只对应一组产品序列号。SN码别称:机器码、认证码、注册申请码等。

SN号可以根据产品要求或者公司统一的编码规范进行编码,但是Android仍然对SN号有一定的限制要求,具体要求如下:

1. 英文字符和数字(a~z,A~Z,0~9)
2. 6~20个字符

1.2 mac地址

MAC地址是一个用来确认网络设备位置的位址。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址 。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。

网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM中,所以如果网络设备制造商已经烧录好了MAC地址,那么我们就不需要再次烧录。如果没有提前烧录,那就需要采购MAC地址池并在生产时将MAC地址烧录到设备中。一般OEM工厂可以提供MAC地址。

终端设备常见的MAC地址有:WIFI MAC,LAN MAC,BT MAC;这个需要根据产品具体确定,比如有的产品就可能没有LAN MAC.相应的也不需要烧录LAN MAC。

2. 烧录及测试

瑞芯微提供写号工具,请联系FAE获取最新的写号工具,SDK旧版本的工具可能存在问题.

2.1 烧录

2.1.1 设备方式

两种设备模式: maskrom 和 loader 模式 maskrom 进入方式:短接 FLASH CLK 引脚,在该模式下面写号,必须要选择正确的 MiniLoaderAll.bin。 loader 进入方式:开机时候按住“音量+”或者 adb reboot loader 命令,在该模式下面写号, 设备必须是已经有烧写过固件。

2.1.2 写号模式

如果不清楚使用那种模式,可以逐一尝试.注意错误勾选可能导致写号失败.

2.1.3 配置

1.代码配置

diff 

2.软件配置

写号工具支持同时写入 7 个项,其中五个是预定义的(ID 是固定的,不能修改),剩下两个 用户可以通过修改 ID 自定义写入。 uboot、内核是通过 ID 来区别用户写入的内容的。用户可以 选择三种输入方式写号: 1) 手动模式 直接在主界面从键盘或者扫描枪输入要写入的数据项。 2) 自增模式 用户设定起始项,前缀和后缀,按十进制,或者十六进制递增生成写入数据项。 3) 文件模式 从文件获取写入的数据项,如果勾选“Bin 文件”,则会把整个文件写入;不勾选的话,则把选 择的文件当做文本文件,一次写入一行.

2.1.3 烧录

配置完成后,在首页点击写入,等待设备写入成功即可.

2.2 查看

有多种方式查看是否写入成功.

方式一:使用上面的写号软件读取.

方式二:使用串口抓取开机log

#Boot ver: 0000-00-00#0.00
12345678 //SN号
normal boot.
checkKey

方法三:传给Kernel的启动参数

mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(uboot_ro),0x00002000@0x00008000(trust_ro),0x00002000@0x0000A000(misc),0x00008000@0x0000C000(resource),0x0000C000@0x00014000(kernel),0x00010000@0x00020000(boot),0x00020000@0x00030000(recovery),0x00038000@0x00050000(backup),0x00040000@0x00088000(cache),0x00600000@0x000C8000(system),0x00008000@0x006C8000(metadata),0x00000040@0x006D0000(verity_mode),0x00002000@0x006D0040(reserved),0x00000400@0x006D2040(frp),-@0x006D2440(userdata) storagemedia=emmc androidboot.oem_unlocked=0 uboot_logo=0x02000000@0x7dc00000 loader.timestamp=2020-04-24_12:20:44 SecureBootCheckOk=0 androidboot.serialno=12345678

方法四:使用adb

#adb devices
12345678 device

方法五:查看系统属性

getprop ro.serialno
getprop ro.boot.serialno

2.3 有效情况

在不擦除flash的情况下,SN号均有效,具体场景见下表.

操作|SN有效情况 -|- 单分区烧录|有效 整包烧录|无效 OTA差分升级|有效 OTA整包升级|有效 擦除Flash后烧录|无效 恢复出厂设置|有效

3. 获取串号(SN)

APK:

android.os.Build.SERIAL

ro.boot.serialno:

/system/core/init/init.cpp:

static 

通过cmdline获取串号ro.boot.serialno,cmdline见上一小节方法三:

androidboot.serialno=12345678

sys.serialno:

system/core/drmservice/drmservice.c

if

由于是写入的SN,所以从idb中获取SN.

ro.serialno:

init.rk30board.rc:

//运行drmservice
service drmservice /system/bin/drmserviceclass mainoneshot# set ro.serialno
on property:sys.serialno=*setprop ro.serialno ${sys.serialno}

Mac os区别_SN及Mac地址烧录相关推荐

  1. 全面了解MAC OS X系统(以 Mac OS 9为例)

    全面了解MAC OS X系统-适用开发人员 Mac OS X 既是以往 Macintosh 操作系统的重大升级,也是对其的一种自然演化.它继承了 Macintosh 易于操作的传统,但其设计不只是让人 ...

  2. Windows下虚拟机安装Mac OS X ----- VM12安装Mac OS X 10.11

    Windows下虚拟机安装Mac OS X -– VM12安装Mac OS X 10.11 随着Iphone在国内大行其道,越来越多的开发者涌入IOS开发大军 中,但都苦于没有苹果机,本文即将介绍WI ...

  3. 虚拟机VMware安Mac OS时没有Apple mac选项

    原标题:虚拟机VMware安Mac OS时没有Apple mac选项 相信大家很多人在虚拟机安装mac os时候发现在选择客户机操作系统时候,没有Apple mac os选项,这样就会导致无法进行下一 ...

  4. Mac os区别_Photoshop和PS有什么区别

    原标题:Photoshop和PS有什么区别 首先声明,PS和Photoshop是同一款软件,没有区别.所以,不要说专业的用Photoshop了,你们怎么用PS了. Adobe Photoshop简称& ...

  5. Mac os区别_间隔5年的两台MacBook pro有什么区别?对比_搜狐汽车

    间隔5年的两台MacBook pro有什么区别?对比 2020-10-24 10:44:261点赞2收藏0评论 欢迎参加#果粉是怎样炼成的#征稿,围观秋季发布会新品!是什么让苹果生态无法割舍?快来讲讲 ...

  6. Mac OS 命令行修改IP地址

    1.查看网络服务 # networksetup -listallnetworkservices Ethernet 以太网 # ifconfig 查看网卡名称 2. 设置IP地址 # networkse ...

  7. Mac os区别_这样做,可以让你的mac电脑更安全

    原标题:这样做,可以让你的mac电脑更安全 稍微对各种电脑有了解的朋友,说到安全问题,可能很多人都会觉得OS系统非常安全,不会受到病毒.木马之类的侵袭,但是这是一定的吗?并不是! Mac OS会不会中 ...

  8. Mac OS X Mavericks 迅雷下载地址 ( mac os x 10.9 )

    http://kuai.xunlei.com/d/xI86EALdNgBO2GZSad5 另外,假如安装后想回到以前的版本,怎么恢复? 暂时不知道快捷方法, 目前有两种方法,但是还不知道有没不良效果出 ...

  9. mac os 开启redis_在Mac os x 安装 Redis

    :-} 安装 1.下载redis 安装包 打开浏览器输入地址:http://download.redis.io/redis-stable.tar.gz 下载 redis 最新稳定安装包 mac os下 ...

最新文章

  1. ieee33节点系统图_【学术聚焦】考虑信息耦合的电气综合能源系统韧性优化方法...
  2. 优秀网页设计各种国外站的素材
  3. 剑指Offer 31 栈的压入、弹出序列
  4. 深入 Adobe Reader 保护模式 —— 第一部分 —— 设计
  5. 是时候学习生成对抗网络了,李宏毅老师GAN视频教程下载
  6. linux json 写sql注入,sql注入之AJAX(SQL Injection (AJAX/JSON/jQuery))
  7. Excel中复杂跨行跨列数据
  8. 如何提高数据分析的效率
  9. AppFuse 3的乱码问题
  10. Veritas Backup Exec备份软件服务器、客户端安装以及如何设置备份任务
  11. php fckeditor,FCKeditor的PHP配备
  12. openwrt php 编译环境,openwrt基础编译教程
  13. scrapy-selenium-谷歌浏览器爬取带有时效性cookies的网站
  14. 转载:为什么Linux不需要磁盘碎片整理
  15. DTMF信号系统的Matlab仿真
  16. opengles绘制天空盒
  17. 如何将数据指标异常监控和归因分析自动化
  18. python强化学习之Q-learning算法
  19. 狂神redis笔记_狂神说redis笔记(一)
  20. element-ui中el-input数字和小数输入

热门文章

  1. java读c二进制文件_如何使用JAVA读取C / Matlab创建的二进制文件
  2. php 非递归调用,php 无限分类(非递归)
  3. c语言通过指针变量输出10个元素,C语言程序设计第2版指针程序设计(10页)-原创力文档...
  4. kafka和mysql内存机制_一文五分钟让你彻底理解Kafka架构原理
  5. 动态获取某个元素的高度_codeforces 1443D,解法简单,思维缜密的动态规划问题...
  6. python四级中考有用的_一位中考生家长的后悔药:考前30多天,千万别做这7件傻事...
  7. js 控制鼠标_JS逆向 | 面向小白之eval混淆
  8. 组态王能直接读取仪表数据吗_液晶多功能网络电力仪表PD800H
  9. 高性能MySQL(2)——Schema与数据类型的优化
  10. Java并发篇_volatile