Android设备硬件序列号(SN、串号)的序列号是怎么获取的,以全志A64平台来一步步跟代码分析:
在设置-》关于设备-》状态信息中,显示的信息来自android.os.Build.SERIAL,代码位于:
frameworks/base/core/java/android/os/Build.java:
public static final String SERIAL = getString("
ro.serialno
");
frameworks/base/core/java/android/os/Build.java:
private static String getString(String property) {
return SystemProperties.get(property, UNKNOWN);
}
由此可见是通过key为"ro.serialno"的SystemProperties 获取到串号的,接下来看一下ro.serialno是如何赋值的:
先看init代码system/core/init/init.c
int main(int argc, char **argv)
{
.......
property_init();
get_hardware_name(hardware, &revision);
process_kernel_cmdline
();
......
原来是从cmdline中获取的,import_kernel_cmdline把u-boot传给kernel的cmdline进行提取,然后回调import_kernel_nv进行处理
stati