在Android 9上修改build.fingerprint

​

一.build.fingerprint

build.fingerprint是 Android 系统中的一个属性,它用于提供设备的唯一标识。这个属性的值由设备的硬件和软件信息组成,是由设备的多个信息拼接而成的,包括但不限于制造商、设备型号、Android 版本号等。

build.fingerprint的值通常是在存储在build.prop文件中的,通常在Android设备中的/system目录下,编译完成后一般在out/target/product/产品名/的层级目录下。

build.prop文件一般用来存储设备的基本信息,这些信息一般是制造厂商,还有设备名称等,这些用于设备的识别和兼容性 ,在构建成功的代码中,在out/target/product/产品名/system或out/target/product/产品名/vendor(该目录是厂商的私有代码目录)下都有build.prop文件,在这些文件中必须保持 build.prop文件的内容信息一致,才能保证设备和谷歌 的一系列认证都没有问题。除此之外,该文件还包含了很多定义的系统属性,如屏幕密度等等。

二.如何修改build.fingerprint

build.fingerprint一般是从build_fingerprint.txt文件 中拿到的值,如果只是修改build.fingerprint的值的话,每次修改后查看build_fingerprint.txt文件即可。如果要修改其他属性的值则需要查看build.prop文件,一般前两行会给出注释,注释中会写清楚这些属性值来源与哪个文件。

在Android 9上,build.prop的内容一般会先从/build/make/tools/buildinfo.sh 中获取,然后再从build/mtk(芯片厂商这里以mtk为例)/产品名/system.prop中获 取,最后获取ADDITIONAL_BUILD_PROPERTIES 变量的值,需注意这个变量的值是在build/make/core/main.mk中追加的。

所以修改build.fingerprint可以从buildinfo.sh中修改。

查看buildinfo.sh文件的内容:

bash 复制代码
echo "# Do not try to parse description, fingerprint, or thumbprint"
echo "ro.build.description=$PRIVATE_BUILD_DESC"
echo "ro.build.fingerprint=$BUILD_FINGERPRINT"
if [ -n "$BUILD_THUMBPRINT" ] ; then
  echo "ro.build.thumbprint=$BUILD_THUMBPRINT"
fi
echo "ro.build.characteristics=$TARGET_AAPT_CHARACTERISTICS"

发现build.fingerprint的值是从BUILD_FINGERPRINT变量中赋值过来的,该值位于Makefile文档中。

题外话:如果想修改ro.product.model等变量的值,可以直接在buildinfo.sh文件中修改。

举例:

bash 复制代码
echo "ro.build.tags=你想要的值"
echo "ro.build.flavor=你想要的值"
 if [ -n "$BOARD_BUILD_SYSTEM_ROOT_IMAGE" ] ; then
 echo "ro.build.system_root_image=你想要的值"
 fi
 if [ -n "$AB_OTA_UPDATER" ] ; then
 echo "ro.build.ab_update=你想要的值"
 fi
 echo "ro.product.model=你想要的值"
 echo "ro.product.brand=你想要的值"
 echo "ro.product.name=你想要的值"
 echo "ro.product.device=你想要的值"

所以只需要修改Makefile文件中的BUILD_FINGERPRINT的值即可。代码如下:

makefile 复制代码
# The string used to uniquely identify the combined build and product; used by the OTA server.
# 判断BUILD_FINGERPRINT是否为空
# 如果是则执行下一句
# strip函数用于去除变量的前导和尾随空格
ifeq (,$(strip $(BUILD_FINGERPRINT)))
  # 判断HAS_BUILD_NUMBER是否为FALSE,一般都是FALSE
  # 可查看make/core/version_defaults.mk文件
  ifeq ($(strip $(HAS_BUILD_NUMBER)),false)
    BF_BUILD_NUMBER := $(USER)$$($(DATE_FROM_FILE) +%m%d%H%M)
  else
    BF_BUILD_NUMBER := $(file <$(BUILD_NUMBER_FILE))
  endif
  BUILD_FINGERPRINT := $(PRODUCT_BRAND)/$(TARGET_PRODUCT)/$(TARGET_DEVICE):$(PLATFORM_VERSION)/$(BUILD_ID)/$(BF_BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS)
endif
# unset it for safety.
BF_BUILD_NUMBER :=

可以看到BUILD_FINGERPRINT是由多个变量的值组成的,如果想修改直接改为自己想要的值即可。

javascript 复制代码
BUILD_FINGERPRINT := $(你想要的值)/$(你想要的值)/$(你想要的值):$(你想要的值)/$(你想要的值)/$(你想要的值):$(你想要的值)/$(你想要的值)

总得来说,在A9上修改相关的设备信息值,多半都是在Makefile、main.mk和buildinfo.sh文件中进行修改。

​

相关推荐
aqi0017 分钟前
鸿蒙版本的电子书阅读APP开放源码啦
android·华为·ai编程·harmonyos·鸿蒙
墨天梦26 分钟前
B19_SunnyWeather到阅读客户端
android·kotlin
美狐美颜sdk1 小时前
直播APP源码可以直接接入视频美颜sdk吗?技术方案详解
android·人工智能·音视频·美颜sdk·直播美颜sdk
用户69371750013844 小时前
2026,程序员的时代拐点到了
android·前端·后端
浪潮IT馆6 小时前
Android Studio 非最新版本下载安装教程
android·ide·android studio
xiaozongt19897 小时前
MasterGo + Claude Code 生成 Android 布局:完整实践指南
android
Anhty8 小时前
2026最新免费手机音频处理工具 !!
android·功能测试·ios·智能手机·音视频
2501_9159090610 小时前
iOS应用从开发到上架App Store的完整发布流程与步骤指南
android·ios·小程序·https·uni-app·webview
狗凯之家源码网11 小时前
AI 步数修改提交系统源码应用场景与落地指南
android·数据库·人工智能·运动步数
ZHOUPUYU11 小时前
PHP 9.0 前瞻:下一代 PHP 会带来哪些新功能?
android·开发语言·php