Android设备的序列号与ro.serialno
Android设备的序列号是通过获取Property“ro.serialno”的值取得的。“ro.serialno”的值一般来源于内核启动参数中的"ro.boot.serialno"。
在rk3368 Android6.0中,uboot读取idblock的IDBLOCK_SN偏移地址获取序列号----->保存到env变量“fbt_sn#”----->保存到env变量“androidboot.serialno”----->设置到内核CMDLINE----->android init程序解析/proc/cmdline----->保存到Property“ro.boot.serialno”----->映射保存到Property“ro.serialno“
rk3368的序列号(Property“ro.serialno“)来源主要有以下几种:
1. init解析/proc/cmdline获取
init 读取内核cmdline(/proc/cmdline),解析“androidboot.serialno”并赋值给“ro.boot.serialno”,然后通过映射赋值给“ro.serialno“。 但在rk3368系统中只有TARGET_BOARD_PLATFORM为sofia3gr的设备才会走这个流程。
2. 改变property“sys.serialno”的值触发修改ro.serialno
当property “sys.serialno”的值改变时,设置Property“ro.serialno”的值为“sys.serialno”的值。
init.rk30board.rc
# set ro.serialno
on property:sys.serialno=*setprop ro.serialno ${sys.serialno}
......
service drmservice /system/bin/drmserviceclass mainoneshot
drmservice会改变sys.serialno的值
drmservice启动时会获取序列号保存到/data/misc/wifi/serialno,并且会设置“sys.serialno”的值,从而触发init.rk30board.rc中ro.serialno值的更新。
drmservice获取序列号的来源可能是来自idblock(读取/dev/rknand_sys_storage)、算法自动生成(根据wifi mac地址),主要看宏定义SERIALNO_FROM_IDB是否打开。
system/core/drmservice/drmservice.c
#define SERIALNO_FROM_IDB 0
烧录序列号工具: RKTools/windows/UpgradeDllTool_v1.35
Android设备的序列号与ro.serialno相关推荐
- Android设备硬件序列号(SN、串号)分析
Android设备硬件序列号(SN.串号)的序列号是怎么获取的,以全志A64平台来一步步跟代码分析: 在设置->关于设备->状态信息中,显示的信息来自android.os.Build.SE ...
- android 设备序列号_如何查找您的Android设备的序列号
android 设备序列号 Your device's serial number is a unique code that the manufacturer gives the phone. No ...
- 页面调用ADB操作Android设备
新手上路,请多关照.如本文有何不足之处,还望前辈们多多指教! 本文来通过实现一个从页面点击按钮,然后删除Android设备上指定文件的功能来简单介绍一下从页面操作Android设备的流程. 首先,下面 ...
- android 获取serialno_[Android]关于Android 唯一设备号(ro.serialno)
1.ro.serialno不存在于任何属性文件,比如build.prop, default.prop等,而是在/system/core/init/init.c里由ro.boot.serialno 转换 ...
- Android rom开发:自定义序列号ro.serialno
本文基于Android 5.1版本SDK. 客户需求:自定义sn,统一规则编号. 第一部分:背景知识 Android的sn由SystemProperties.get("ro.serialno ...
- 获得Android设备的唯一序列号
理论部分 1.每个设备都有一个唯一序列号,Android设备也不例外,PC上用Mac地址 实践部分 1.核心代码: Secure.getString(getContentResolver(),Secu ...
- 不需权限获得Android设备唯一标识序列号
关键方法 public static String getUniqueSerialNumber() {String phoneName = Build.MODEL;// Galaxy nexus 品牌 ...
- Android Studio 调试的时候出现 Access denied finding property “ro.serialno“
我虚拟机和物理机都安装了Android Studio,发现虚拟机中调试不是那么方便,然后想使用物理机开发,使用的小米MI4 系统是安卓11,在物理机中一直提示:libc:Access denied f ...
- Android 7.0 写入ro.serialno小结
项目需要,需要写入ro.serialno属性.借鉴了网上的文档,现把这个知识点做个备忘小结. 1.原理:ro.serialno是init从bootcmdline读取androidboot.serial ...
最新文章
- 别了比特币,BCH将领导加密货币!
- centos java tomcat_centos配置Tomcat以指定的身份(非root)运行
- 从门禁系统的使用体验看良好的交互设计原则
- angular父组件通过@ViewChild 主动获取子组 件的数据和方法
- 蓝桥杯练习系统习题-算法训练2
- LILY 英语携手神策数据 数据赋能少儿英语学习创新体验
- hive启动时出现javax.jdo.JDODataStoreException: Error executing SQL query
- P5371-[SNOI2019]纸牌【矩阵乘法】
- JDK 13中的JEP 355文本块
- 如何处理Oracle客户端查询乱码问题
- C++ set insert的返回值
- 开发者在对项目失去信心后,该做什么?
- 关于u8, u16, u32, u64
- mysql block是什么,php – MySQL PDO – try {block}里面应该是什么?
- tomcat日志按天分割
- 内网渗透-WindowsLinux痕迹清除
- 应用启动图标未读消息数显示 工具类
- 【实践与问题解决28】最全超分辨率(SR)数据集介绍以及多方法下载链接
- 什么是GRAY色彩空间
- 关于SCO Unix 串口通讯