一,可以通过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\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\deviceinfo\hardwareinfo\SerialNumberPreferenceController.java
2、frameworks\base\core\java\android\os\Build.java
3、frameworks\base\services\core\java\com\android\server\os\DeviceIdentifiersPolicyService.java
五、我一直以为ro开头的属性不能写,但在init里面确实可以写,那为什么可以写呢。
ro.xxx属性的property通常在系统启动的时候就通过property_set()函数被写在了系统中,而ro属性每次系统启动只能写一次,写的时候会调用__system_property_find检查该属性是否已经存在,如果存在便不可修改。
参考文章