http://my.oschina.net/u/996206/blog/215960

1.ro.serialno不存在于任何属性文件,比如build.prop, default.prop等,而是在/system/core/init/init.c里由ro.boot.serialno 转换而来,见export_kernel_boot_props()。

2.而ro.boot.serialno的来源是/proc/cmdline,也就是linux kernel启动时被传入的cmdline, 由bootloader传入。 
bootloader传进来的是androidboot.serialno, 而不是ro.boot.serialno,因为还要解析过cmdline 
3.ro.serialno的用处是来保存唯一设备号,在settings->about->status里会显示,也会用在USB device name里。 
about->status 里获取serialno的流程: 
Build.SERIAL 
->getString(“ro.serialno”) 
->SystemProperties.get() 
->SystemProperties.native_get() 
->SystemProperties_getSS() in android_os_SystemProperties.cpp 
->property_get() in Properties.c 
->__system_property_get() in System_properties.c in bionic

获取到的前提是之前已经有设置好,也就是有调用property_set() in init.c

4.其他类似ro属性还有: 
ro.boot.mode 
ro.boot.baseband 
ro.boot.bootloader 
ro.boot.hardware

emmc has a unique serialno to mark the device/emmc.
there are 2 method to get the serialno for device/EMMC, this is useful to mark the device when doing stabilty tests.

1. boot your device to fastboot

yingangl@yingangl-work:~$ fastboot getvar serialno
serialno: aaa035df
finished. total time: 0.002s

2. in kernel 
   cd /sys/class/mmc_host/mmc0/mmc0:0001
   cat serial 
   0xaaa035df

The ro.serialno system property contains the product serial number. LK bootloader reads the "Product serial number (psn)" from the mmc card and add this to the kernel command line as a property "androidboot.serialno=<psn>". For more details check function target_serialno(), File: lk/target/msm952/init.c

The kernel command line will be further parsed by the "init" process and will set system property as ro.serialno=<psn>.

For code details check function: static void export_kernel_boot_props(void) (system/core/init/init.c)

kernel command line is parsed by : import_kernel_nv() in init.c

If you want to reset the ro.serialno system property temporarily, then you can reset in function export_kernel_boot_props() like shown below:

+ property_set("ro.serialno","<WRITE YOUR VALUE>");
ret = property_get("ro.boot.console", tmp);
if (ret)
strlcpy(console, tmp, sizeof(console));

ro.serialno相关推荐

  1. android 获取serialno_[Android]关于Android 唯一设备号(ro.serialno)

    1.ro.serialno不存在于任何属性文件,比如build.prop, default.prop等,而是在/system/core/init/init.c里由ro.boot.serialno 转换 ...

  2. Android Studio 调试的时候出现 Access denied finding property “ro.serialno“

    我虚拟机和物理机都安装了Android Studio,发现虚拟机中调试不是那么方便,然后想使用物理机开发,使用的小米MI4 系统是安卓11,在物理机中一直提示:libc:Access denied f ...

  3. Android设备的序列号与ro.serialno

    Android设备的序列号是通过获取Property"ro.serialno"的值取得的."ro.serialno"的值一般来源于内核启动参数中的"r ...

  4. Android rom开发:自定义序列号ro.serialno

    本文基于Android 5.1版本SDK. 客户需求:自定义sn,统一规则编号. 第一部分:背景知识 Android的sn由SystemProperties.get("ro.serialno ...

  5. [RK3288][Android6.0] 调试笔记 --- ro.serialno的获取

    Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 rk3288平台的serial number是由drmservice写进去的,drmservice在r ...

  6. Android 7.0 写入ro.serialno小结

    项目需要,需要写入ro.serialno属性.借鉴了网上的文档,现把这个知识点做个备忘小结. 1.原理:ro.serialno是init从bootcmdline读取androidboot.serial ...

  7. 【CTS】几个serialno失败项

    [问题结论] [Common]SN配置项的问题,只可以'数字与大小写字母' 将配置SN改为字母数字组合,测试全部pass [问题描述] CTS三条失败项 run cts -m CtsTelephony ...

  8. android获取ro._修改Android序列号(Serial Number)

    文档说明 本文档以SC806-CN-00-71(msm8909平台 Android7系统)为例,描述如何修改Android Serial Number. Serial Number说明 菜单 Abou ...

  9. ro.hardware 由来

    关于这个ro.hardware 这个东西是怎么来的? 这个不是在我们编译之后就知道的, 是在nit进程里面算出来的 在 init main 函数里面 会call下面两个 get_hardware_na ...

最新文章

  1. 【转】storm 开发系列一 第一个程序
  2. system.img格式打包学习
  3. ALV 简单实现HTML抬头的方法 (介绍 一)
  4. Unity3D获取Andorid设备返回键,主页键等功能
  5. python下设置urllib连接超时
  6. 【教程】PDF控件Spire.PDF 教程:在C#中加密和解密PDF文件
  7. 国内首款性能最稳定ISO 14443B身份证读卡器芯片FSV9523国产替代MFRC523 国产NFC芯片 不缺货 性价比高 可提供软硬件DEMO
  8. HTTP 压力测试工具 wrk和ab
  9. Halcon教程十:把Halcon程序放入WPF程序里
  10. 地理空间数据云 Landsat 8 OLI_TIRS 影像数据下载详解
  11. 分库分表中间件Sharding-JDBC详解
  12. 有没免费云桌面,免费桌面虚拟化软件? 确实有的
  13. 左偏树(XJT Love Trees,玲珑杯 Round#8 C lonlife 1081)
  14. 面对复杂问题时,系统思考助你理解问题本质
  15. 这就是最适合程序员的云笔记?
  16. 使用Python画小猪佩奇(turtle库)
  17. 211毕业生3天被辞退:offer不等于工作稳了!
  18. 导数,差商,牛顿插值法
  19. 计算空间中两线段之间的距离
  20. vs发布exe文件给别人打开闪退问题

热门文章

  1. ipad怎么和mac分屏_苹果分屏功能怎么用?开启ipad分屏只需要一个步骤!
  2. 果园机器人反思稿_语文《果园机器人》教学反思
  3. 使用 kubeadm 部署 kubernetes 1.27.1 版本
  4. 在上海市龙华烈士陵园,找寻心目中的英雄
  5. 微信公众平台的基本开发
  6. 零基础学习下载FL Studio2023水果编曲软件
  7. 小程序字体规范、颜色参考(单位/px)
  8. ResNet变种(ResNet-B/C/D、Res2Net、ResNeXt、ResNeSt)
  9. Mock技术_下载Moco
  10. C语言学习之路——COORD