在Android
源代码中自定义fingerprint
特征,由于AOSP
的fingerprint
特征会被某些应用检测为不安全的系统环境,所以需要修改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