自定义fingerprint特征

Android源代码中自定义fingerprint特征,由于AOSPfingerprint特征会被某些应用检测为不安全的系统环境,所以需要修改fingerprint值模拟正常的环境

一、环境准备

(1) Android系统源码编译环境(Android 9.0)
(2) 开发环境(SubLime Text3)

二、概述

使用getprop命令可知,查询fingerprint相关的属性

> getprop | grep fingerprint
[ro.bootimage.build.fingerprint]: [Android/aosp_blueline/blueline:9/PQ3A.190705.003/5600800:userdebug/test-keys]
[ro.build.fingerprint]: [Android/aosp_blueline/blueline:9/PQ3A.190705.003/5600800:userdebug/test-keys]
[ro.product.build.fingerprint]: [Android/aosp_blueline/blueline:9/PQ3A.190705.003/5600800:userdebug/test-keys]
[ro.vendor.build.fingerprint]: [Android/aosp_blueline/blueline:9/PQ3A.190705.003/5600800:userdebug/test-keys]

发现存在以下fingerprint相关属性
1. ro.bootimage.build.fingerprint
2. ro.build.fingerprint
3. ro.product.build.fingerprint
4. ro.vendor.build.fingerprint

三、修改fingerprint特征

AOSP源代码进行搜索,发现在aosp/build/make/core/Makefile文件中存在fingerprint相关值。
ro.bootimage.build.fingerprint
在这里插入图片描述
ro.vendor.build.fingerprint
在这里插入图片描述
ro.product.build.fingerprint
在这里插入图片描述

build/make/tools/buildinfo.sh中发现ro.build.fingerprint的赋值
在这里插入图片描述
经分析fingerprint的赋值过程可知,BUILD_FINGERPRINT的赋值影响着fingerprint的值,所以只要修改BUILD_FINGERPRINT的值就行了。BUILD_FINGERPRINT的值有几个部分组成,修改自己感兴趣的部分就行了
在这里插入图片描述
修改BUILD_VERSION_TAGS
在这里插入图片描述
修改TARGET_BUILD_VARIANT -> 在编译源码时,lunch期间确定
在这里插入图片描述
修改BF_BUILD_NUMBER
在这里插入图片描述
修改BUILD_ID在这里插入图片描述
PRODUCT_BRAND 、TARGET_PRODUCT、TARGET_DEVICE -> 在编译源码时,lunch期间确定,看具体编译哪个版本的系统,来决定修改什么样的[产品].mk文件
在这里插入图片描述

四、编译

srouce build/envsetup.sh
lunch 23 // 看具体需要编译的产品进行选择 
make -j16

五、结果

使用grep命令查看fingerprint相关特征,发现ro.vendor.build.fingerprint的值并没有修改

> getprop | grep fingerprint
[ro.bootimage.build.fingerprint]: [Google/blueline/blueline:9/miui.220705.002/jhan07162220:user/release-keys]
[ro.build.fingerprint]: [Google/blueline/blueline:9/jhan.220705.002/jhan07162220:user/release-keys]
[ro.product.build.fingerprint]: [Google/blueline/blueline:9/jhan.220705.002/jhan07162220:user/release-keys]
[ro.vendor.build.fingerprint]: [Android/aosp_blueline/blueline:9/PQ3A.190705.003/5600800:userdebug/test-keys]

ro.vendor.build.fingerprint的值没有修改是因为vendor.img镜像不是我们生成的,所以对ro.vendor.build.fingerprint值的修改才没有生效。
在这里插入图片描述
关于设备驱动文件的下载和使用可以看以往的文章
在这里插入图片描述

六、编译vendor.img

后续文章更新…


asjhan for Android reverse

posted @ 2022-07-17 20:23  asjhan  阅读(79)  评论(0编辑  收藏  举报  来源