Android设备的序列号与ro.serialno

2021-10-28 分析MTK AndroidR 获取系列号的方法,通过读取ro.serialno或者ro.boot.serialno,我一直以为ro开头的属性不能写,但其实是可以写一次的。 一,可以通过ro.boot.serialno获取系列号,跟androidboot.serialno一样,通过uboot传递给kernel的cmdline获取的。 二、读取androidboot.serialno然后setprop ro.boot.serialno system\core\init\property_service.cpp 三、设置ro.serialno属性的值。 四、settings下获取系列号的流程代码。 1、vendor\media... 阅读详情

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/drmservice
        class main
        oneshot

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


[RK3288][Android6.0] 调试笔记 --- ro.serialno的获取 Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 rk3288平台的serial number是由drmservice写进去的,drmservice在rc文件中定义启动: init.rk30board.rc: service drmservice /system/bin/drmservice class main o... 阅读详情

相关推荐

Android 11 上获取设备序列号的另类思路:绕过权限限制的实战探索

本文深入探讨了在Android 11上获取设备序列号的创新方法,包括系统属性直读、代理服务白名单等解决方案。针对权限限制问题,提供了从源码分析到工业级实践的全面指南,帮助开发者在隐私保护政策下实现设备标识获取。

weixin_30915951的博客 245

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

本文基于Android 5.1版本SDK。 客户需求:自定义sn,统一规则编号。 第一部分:背景知识 Android的sn由SystemProperties.get("ro.serialno", "");而来。 ro.serialno并不像常见的其他属性一样存在于build.prop等prop文件中,而是在/system/core/init/init.c里由ro.boot.serialno转换而来...

Android 6497

Android各个平台下的serialno的设置流程,并用cpu串号固定serialno以确保serialno唯一

一、A33 Android4.4 设备序列号:A33 Android4.4平台的序列号,可以通过设置->关于平板电脑->状态信息→序列号 进行查看,也可以通过adb指令getprop ro.serialno 进行查看。

u010823818的博客 1540

ro.serialno

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.se

yuandaichao的专栏 5953

Android设备SN号获取:ADB命令详解与实战技巧

在Android开发与测试中,设备唯一标识符获取是基础且关键的操作。序列号(SN)作为硬件级标识,在设备管理、自动化测试等场景具有重要作用。通过ADB命令行工具获取SN号,相比图形界面操作具有批量处理、脚本集成等优势。本文详细介绍adb get-serialno等核心命令的使用方法,包括环境配置、多设备处理、异常排查等实战技巧,并针对不同厂商设备提供兼容性解决方案。同时涵盖SN号在自动化测试、设备追踪等场景的应用实例,帮助开发者高效完成设备管理工作。

weixin_29163857的博客 279

Rk3566 Rk3326s Andriod11读IMEI号改成通过Systemproperties方式获取

Rk3566 Rk3326s Andriod11读IMEI号改成通过Systemproperties方式获取

写代码的金融男的博客 899

android ro.开头的不可以自定义,Android应用开发之Android设备的序列号与ro.serialno

本文将带你了解Android应用开发Android设备的序列号与ro.serialno,希望本文对大家学Android有所帮助。Android设备的序列号是通过获取Property“ro.serialno”的值取得的。“ro.serialno”的值一般来源于内核启动参数中的"ro.boot.serialno"。在rk3368Android6.0中,uboot读取idblock的IDBLOCK_S...

weixin_31703753的博客 825

Android实现获取SERIAL信息的方法

本文实例讲述了Android实现获取SERIAL信息的方法。分享给大家供大家参考。具体如下: android.os.build.serial 在API 9 中引入,如果低于9的系统可以通过这个方法获取这个信息值 java代码如下: public static String getDeviceSerial() { String serial = unknown; try { Class clazz = Class.forName(android.os.Build); Class paraTypes = Class.forName(java.lang.String

Android设备的序列号与ro.serialno的来源

https://blog.csdn.net/u013686019/article/details/53239302 https://blog.csdn.net/dpppppp/article/details/80617998 根据上面两篇文章的讲述,Trace code 厘清了ro.serialno的来源。

老农民娃哈哈的博客 1079

STM32进入HardFault_Handler时,如何找到问题所在?

当STM32进入HardFault_Handler时,定位问题发生的点

m0_60831979的博客 2150

第四章 自定义组件、动画

第三章 自定义组件、动画 (一)自定义View 1.1) onMeasure:对当前View的尺寸进行测量 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) widthMeasureSpec和heightMeasureSpec包含测量模式和尺寸大小 int widthMode = MeasureSpec....

Stay Hungry Stay Foolish 求知若饥 虚心若愚 8132

android 获取serialno_Android实现获取SERIAL信息的方法

本文实例讲述了Android实现获取SERIAL信息的方法。分享给大家供大家参考。具体如下:android.os.build.serial 在API 9 中引入,如果低于9的系统可以通过这个方法获取这个信息值java代码如下:public static String getDeviceSerial() {String serial = "unknown";try {Class clazz = Cl...

weixin_39520199的博客 280

数字信号的艺术演绎:用FPGA+DAC实现音乐合成器的核心原理

本文深入探讨了如何利用FPGA和DAC技术实现数字音乐合成器的核心原理,涵盖DDS架构、多波形合成、MIDI协议解析及动态包络控制等关键技术。通过详细的Verilog代码示例和硬件实现方案,展示了数字信号处理在音乐合成中的艺术演绎,为电子音乐创作提供了强大的硬件支持。

weixin_28256233的博客 390

android获取sn号

【代码】android获取sn号。

275

自动驾驶关键技术(一):时间敏感网络TSN

时间敏感网络TSN的基本概念、协议族介绍和开发流程。

3080

Far planner 部署真实小车 & 树莓派部署lego_loam

今天开一贴Far planner的部署,也算是lego loam的部署吧 因为state_estimation用的是lego loam小车底盘: 轮趣的mini差速底盘外加多一层钢板,中间层用来放velodyne的电池(小的电池还没到,大的电池塞不进去目前)和velodyne信号盒子。前面还可以加一个相机。底层用来放小车的电池和马达等设备了,底层不用动。最上面一层用来安装velodyne16线雷达,需要额外钻孔(如果买轮趣的话可以找老板钻个孔?我也不确定,我自己钻的)。 雷达固定螺丝用的是 1/4-20*3

博客 4303

Android获取设备序列号的方法与调用方式

记录一下安卓获取设备序列号的方法,以及调用方式 方法: /** * * 使用反射调用系统隐藏方法get(),获取系统相关属性配置 * @param key 属性名称 * @return */ static String getAndroidOsSystemProperties(String key) { String ret; try { ...

lujx_1024的博客 3765

IC 笔试真题之吾见——华为实习(1)

前言 今天(2022 04 07)刚建立了一个专栏《IC真题之吾见》,准备记录一些IC真题的见解,为以后找工作做一点准备。 刷题绝不是目的,以题代练,以题代学。 题目来自师兄申请 华为实习“设计”岗位 的笔试真题。 见解大部分来自自己学习的理解,也有部分超纲知识是网络检索得到,希望可以多多在评论区留言交流,共同进步! 有问题的地方也希望可以直接批评指正! 后面也会同步更新此专栏! 1、下列有关时序分析的描述正确的是() A. recovery时间,是指异步控制信号在有效时钟沿到达之后必须保持

记录所学,分享知识,结识挚友 8637

Android sn 号修改

Android 系统 serialno 流程 adb devices

xss534890437的博客 1万+

使用pytorch-superpoint与pytorch-superglue项目实现训练自己的数据集

superpoint与superglue的组合可以实现基于深度学习的图像配准,官方发布的superpoint与superglue模型均基于coco数据训练,与业务中的实际数据或许存在差距,为此实现基于开源的pytorch-superpoint与pytorch-superglue项目实现训练自己的数据集。然而,在训练pytorch-superpoint有诸多细节需要优化,特此整理成技术文档。本文档描述了实验pytorch-superpoint与pytorch-superglue项目训练自己的图像配准模型。

a486259的博客 9504

在Qt中集成VTK和PCL:实现数据可视化的完整指南

在现代软件开发中,数据可视化至关重要。将VTK(Visualization Toolkit)和PCL(Point Cloud Library)集成到Qt环境里,能为开发者提供强大的可视化解决方案。本文将深入讲解如何在Qt中读取PCL文件,展示VTK模型和PCL数据,适合想要在Qt项目中实现数据可视化的开发者。

轩宇的博客 917

ADB命令获取Android设备SN号的完整指南

在Android开发中,设备序列号(SN号)是重要的设备标识信息,常用于设备管理和追踪。ADB(Android Debug Bridge)作为Android开发的核心调试工具,提供了访问系统属性的能力。通过`getprop`命令可以读取包括`ro.serialno`在内的各种系统属性,这是获取设备信息的底层原理。在实际工程中,由于Android设备的碎片化,不同厂商可能使用不同的属性名称存储序列号,因此需要掌握多种获取方法。本文详细介绍了标准ADB命令、厂商适配方案、自动化脚本实现等实用技巧,帮助开发者高效

weixin_27014595的博客 297

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

MTK平台详解`ro.boot.serialno` 的实现流程 adb devices输出序列号

本文详细解析了Android系统中ro.boot.serialno属性的全链路传递流程。从Bootloader阶段获取序列号开始,通过内核命令行参数传递给Android系统,并由Init进程进行关键属性转换,最终映射为ro.serialno系统属性。文章提供了各阶段的代码路径、关键函数调用和日志追踪方法,特别是针对MTK平台的专用调试技巧,包括工程模式使用方法、日志抓取路径以及常见问题的解决方案。该解析为开发者理解设备序列号传递机制和排查相关问题提供了全面的技术参考。

大家好我是nono牛,在安全的世界里面我们一起学习与探讨 1628

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

获取SN号

//反射获取SN号 private static String getSerialNumber() { String serial = null; try { Class<?> c = Class.forName("android.os.SystemProperties"); Method get = c.getMethod("get"...

qq_35446803的博客 1991

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android11开放读取sn号

【代码】android开放读取sn号。

大小白 1068
上一篇: android 5.1 清除最近任务后将launcher强制关闭,再按返回键黑屏问题
下一篇: 接触摸屏后进recovery无显示
D00PING
博客等级 码龄12年 96粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值