android获取ro._修改Android序列号(Serial Number)
文档说明
本文档以SC806-CN-00-71(msm8909平台 Android7系统)为例,描述如何修改Android Serial Number。
Serial Number说明
菜单 About phone -> Status -> Serial Number,如下图所示(图是中文系统,看"序列号"):
SC806-CN-00-71默认的序列号是:12345678
通过Adb devices显示出来的设备号也是: 12345678
UI界面显示的序列号和Adb Devices显示的设备号,两者是有区别的,下面会讲到。
代码分析
Serial Number对应android系统的环境变量 ro.serialno。
查看lk的开机部分代码 bootable/bootloader/lk/app/aboot/aboot.c
下图定义了sn_buf数组,该数组是为了生成cmdline。ro.serialno的值就是通过解析cmdline得到的。
SC806-CN-00-71修改了原生的android代码,把ro.serialno写死为"12345678",并没有通过target_serialno()函数去获取。
看下图,把target_serialno调用注释掉了。
如果要更改序列号,修改sn_buf数组的初始值即可。
我们这里把它改成"77777777"试试。
编译 aboot,烧录,显示如下图所示,Serial Number已经变成了"77777777"
也可以通过cat /proc/cmdline,查看androidboot.serialno的值。
现在通过adb devices查看,还是"12345678"
如果要修改adb devices设备号,修改device/qcom/common/rootdir/etc/init.qcom.usb.rc,不要写死为"12345678",改成从ro.serialno获取。
编译boot,烧录。
遗留问题
从代码上分析,修改 system/core/init/init.cpp应该也可以改掉ro.serialno的值。
在for循环之后,添加了
strlcpy(tmp, "77777777
更多相关文章
- Android ImageView圆角图片的简单实现
- 【Java】java和android网络编程 - 对byte数组压缩和解压缩(zip,g
- Android 控件背景图片和imagebutton的使用(selector)
- Android获取图片资源的4种方式
- android:scaleType 设置图片显示
- android --启动画面制做 png图片-->initlogo.rle