一,可以通过ro.boot.serialno获取系列号,跟androidboot.serialno一样,通过uboot传递给kernel的cmdline获取的。
二、读取androidboot.serialno然后setprop ro.boot.serialno
systemcoreinitproperty_service.cpp
三、设置ro.serialno属性的值。
四、settings下获取系列号的流程代码。
1、vendormediatekproprietarypackagesappsMtkSettingssrccomandroidsettingsdeviceinfohardwareinfoSerialNumberPreferenceController.java
2、frameworksbasecorejavaandroidosBuild.java
3、frameworksbaseservicescorejavacomandroidserverosDeviceIdentifiersPolicyService.java
五、我一直以为ro开头的属性不能写,但在init里面确实可以写,那为什么可以写呢。
ro.xxx属性的property通常在系统启动的时候就通过property_set()函数被写在了系统中,而ro属性每次系统启动只能写一次,写的时候会调用__system_property_find检查该属性是否已经存在,如果存在便不可修改。
参考文章
android的ro.serialno或者ro.boot.serialno是如何获取到的_比特人生的专栏-CSDN博客



