Android系统修改编译相关的build.prop值

不积跬步无以至千里

      在这里修改build.prop中的参数,是因为需要过CTS,然后把CTS中编译的参数固定,进而让测试显示是同一版本来方便测试,又因为获取信息就是通过build.prop来获取的参数,因此需要去修改其中一些参数。

      下面是需要修改的几个参数:

1.ro.build.fingerprint  

2.ro.product.name 

3.ro.product.brand

用第一个参数举例子吧,这里有两种方式:

第一种

因此通过搜索opengrok-search,ro.build.fingerprint,如下图:


 搜出主要相关类就是这两个类。

然后发现通过修改buildinfo.sh中对应的属性



其实你直接修改这个引用就可以,例如,第59行:

修改为:echo "ro.build.fingerprint = IMP"

其中$即为引用的意思,引用这个BUILD_FINGERPRINT.

第二种:

其实就是接着上边的意思来说,你修改这个buildinfo.sh文件是它传递这个值的中间者,然后也可以修改追踪它的引用,这样改的更彻底,因为我只是为了修改build.prop文件中的值,就没深追每一项需要修改的值,接下来追一下。

通过搜索opengrok-search,如图:


因此查看Makefile中关于BUILD_FINGERPRINT中的逻辑,如图:


因此查看其中需要修改的项有好多字节拼起来的,但是发现我需要修改的就是其中的BF_BUILD_NUMBER,因此根据测试发现其实编译走的是141行的逻辑,而且根据需求发现需要修改的就是其中的日期,因此需要去修改这个BUILD_NUMBER,这个日期,因此再搜这个关键字,如图:


因此打开这个文件version_defaults.mk,发现逻辑为:


因为我需要把这个参数的日期固定了,因此需要把这个DATE改为固定的值,因此修改BUILD_DATETIME,把我们自己需要的时间戳赋值即可,如图:


即157行,我想修改到2018,02.26.14:29:50,因此通过日期转换时间戳工具得到1519626590。

经测试发现android\out\target\product\msm8909\system\build.prop截图:


发现日期变为为02.26.14:29,因此发现生效了。因此其它的参数一样,通过这种方式修改追踪。


以上两种方法,根据自己实际情况选择。




猜你喜欢

转载自blog.csdn.net/wdyshowtime/article/details/79635439
今日推荐