当前位置: 代码迷 >> 综合 >> 2021-10-28 分析MTK AndroidR 获取系列号的方法,通过读取ro.serialno或者ro.boot.serialno,我一直以为ro开头的属性不能写,但其实是可以写一次的。
  详细解决方案

2021-10-28 分析MTK AndroidR 获取系列号的方法,通过读取ro.serialno或者ro.boot.serialno,我一直以为ro开头的属性不能写,但其实是可以写一次的。

热度:99   发布时间:2023-11-27 11:33:25.0

一,可以通过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检查该属性是否已经存在,如果存在便不可修改。

 

参考文章

android的ro.serialno或者ro.boot.serialno是如何获取到的_比特人生的专栏-CSDN博客

  相关解决方案