在build/tools/buildinfo.sh中定义ro.build.fingerprint=$BUILD_FINGERPRINT.

然后在build/core/Makefile中给BUILD_FINGERPRINT赋值

但这里确定的是手机system/build.prop中的ro.build.fingerprint,是编译时决定的

getprop读取到的ro.build.fingerprint的值,是运行时决定的,在frameworks/base/core/java/android/os/Build.java 中:

923 /** A string that uniquely identifies this build.  Do not attempt to parse this value. */
924    public static final String FINGERPRINT = deriveFingerprint();
925
926    /**
927     * Some devices split the fingerprint components between multiple
928     * partitions, so we might derive the fingerprint at runtime.
929     */
930    private static String deriveFingerprint
() {
931        Stringfinger = SystemProperties.get("ro.build.fingerprint");
932        if (TextUtils.isEmpty(finger)) {
933            finger = getString("ro.product.brand") + '/' +
934                    getString("ro.product.name") + '/' +
935                    getString("ro.product.device") + ':' +
936                    getString("ro.build.version.release") + '/' +
937                    getString("ro.build.id") + '/' +
938                    getString("ro.build.version.incremental") + ':' +
939                    getString("ro.build.type") + '/' +
940                    getString("ro.build.tags");
941        }
942        return finger;
943    }

fingprint定义需要按照如下格式:

$(PRODUCT_BRAND)/$(TARGET_PRODUCT)/$(TARGET_DEVICE):$(PLATFORM_VERSION)/$(BUILD_ID)/$(BF_BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS)

[ro.build.brand]/[ro.product.name]/[ro.product.device]:[ro.build.version.release]/[ro.build.id]/[ro.build.version.incremental]:[ro.build.type]/[ro.build.tags]

属性变量                                         属性值                                         说明
$(PRODUCT_BRAND)                  ro.build.brand                                客户名
TARGET_PRODUCT                     ro.product.name                             产品名
TARGET_DEVICE                          ro.product.device                           设备名
PLATFORM_VERSION                  ro.build.version.release                   安卓版本
BUILD_ID                                        ro.build.id                                         不知道??
BF_BUILD_NUMBER                      ro.build.version.incremental             编译日期相关,每次版本都变
TARGET_BUILD_VARIANT             ro.build.type                                      user&userdebug
(BUILD_VERSION_TAGS                ro.build.tags                                      一般release-keys,不知道是说明东西

例如:
Mobicel/X4/X4:9/PPR1.180610.011/K210_MAS_08:userdebug/release-keys

Fingprint里面的属性不能存在空格
以下是CTS检查Fingerprint

android.os.cts.BuildVersionTest
-- testBuildFingerprint    
public  static class Build{
    public static String BOARD="";
    public static String BRAND="";
    public static String ID="";
    public static String HOST="";
    public static String DEVICE="";
    public static String HARDWARE="";
    public static String MANUFACTURER="";
    public static String SERIAL="";
    public static String MODEL="";
    public static String TYPE="";
    public static String PRODUCT="";
    public static String USER="";
    public static String TAGS="";
}
满足下面的正则表达式
private static final Pattern BOARD_PATTERN =
        Pattern.compile("^([0-9A-Za-z._-]+)$");

mtk online有以下描述
[DESCRIPTION]
android.os.cts.BuildVersionTest
–testBuildFingerprint
customization : [ro.build.brand]/[ro.product.name]/[ro.product.device]:[ro.build.version.release]/[ro.build.id]/[ro.build.version.incremental]:[ro.build.type]/[ro.build.tags]
[Analysis]
–the ro.product.name and ro.build.fingerprint
•fingerprint should in the format of
–=>[ro.build.brand]/[ro.product.name]/[ro.product.device]:[ro.build.version.release]/[ro.build.id]/[ro.build.version.incremental]:[ro.build.type]/[ro.build.tags]
–The length for fingerprint should be less than 91 characters

[SOLUTION]
Method 1:
Modify buildinfo.sh,
echo “ro.build.fingerprint=$BUILD_FINGERPRINT”
delete $BUILD_FINGERPRINT,modify the strings as you want,
you must follow the formart:
–=>[ro.build.brand]/[ro.product.name]/[ro.product.device]:[ro.build.version.release]/[ro.build.id]/[ro.build.version.incremental]:[ro.build.type]/[ro.build.tags]

Method 2:
Modify $BUILD_FINGERPRINT in build\core\Makefile

you can Refer to the FAQ:
FAQ ID: FAQ03066
Settings中About Phone的Model number等信息的修改

Android Fingerprint属性相关推荐

  1. android:layout_gravity和android:gravity属性的区别

    android:gravity / android:layout_gravity区别: android:gravity 是设置该view里面的内容相对于该view的位置,例如设置button里面的te ...

  2. Android LinearLayout的android:layout_weight属性

    本文主要介绍Android LinearLayout的android:layout_weight属性意义 android:layout_weight为大小权重,相当于在页面上显示的百分比,它的计算是根 ...

  3. 使用Java代码在应用层获取Android系统属性

    之前使用Native代码的property_get()/property_set()来获取Android系统属性,现在需要改写到Java上面, 但是System.getProperty() / Sys ...

  4. 【Android开发经验】android:windowSoftInputMode属性具体解释

    本文章来自CSDN博客:http://blog.csdn.net/zhaokaiqiang1992.转载请注明地址! 在前面的一篇文章中,简单的介绍了一下怎样实现软键盘不自己主动弹出,使用的方法是设置 ...

  5. Android --- allowBackup 属性的含义和危险性实例讲解

    一.前言 今天在开发的过程中遇到一个问题,就是关于AndroidManifest.xml中的allowBackup属性,也算是自己之前对这个属性的不了解,加上IDE的自动生成代码,没太注意这个属性,但 ...

  6. Android踩坑日记:Android字体属性及测量(FontMetrics)

    Android字体属性及测量(FontMetrics) 字体的几个参数,以Android API文档定义为尊,见下图 要点如下: 基准点是baseline Ascent是baseline之上至字符最高 ...

  7. android布局的属性大全,Android布局属性大全

    第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:la ...

  8. android布局属性

    android:layout_alignParentRight="true" 使当前控件的右端和父控件的右端对齐.这里属性值只能为true或false,默认false. andro ...

  9. android 如何使用android:supportsRtl属性

    今天,简单讲讲android里如何使用 AndroidManifest文件里的android:supportsRtl属性.  之前,在app上发现一个问题,就是app设置为阿拉伯语时,手机默认德我 ...

  10. 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性

    在进行UI布局的时候,可能常常会用到 android:gravity  和 android:layout_Gravity 这两个属性. 关于这两个属性的差别,网上已经有许多人进行了说明,这边再简单说一 ...

最新文章

  1. 如何修复重编译Datapump工具expdp/impdp
  2. 【Linux】 linux的进程系统一点补充
  3. 使用Dockerfile创建一个tomcat镜像
  4. android中按钮间隔,Android布局有2个均匀间隔的按钮
  5. 牛客 - Colorful Tree(dfs序+LCA)
  6. 喜欢←划,不喜欢→划
  7. 倩女幽魂7月20日服务器维护,倩女幽魂手游7月20日更新什么?倩女幽魂手游7月20日更新一览...
  8. raspberry pi_在Raspberry Pi上试用Docker
  9. RTCM协议阅读——RTCM数据解析
  10. html 显示 16进制 颜色,16进制颜色(html颜色值)
  11. 短视频运营方法分享,三个方面要注意,合理运营才能吸粉引流
  12. redis读取连接超时问题
  13. 利用输入法输入汉字,如何统计字数
  14. spring_boot 发布成war包 ,部署到外部的tomcat
  15. java阶梯算法_上楼梯算法的java实现(转)
  16. kafka中consumer和partition的对应关系
  17. 前端开发行业发展怎么样 平均待遇大概是多少
  18. 使用python的wordcloud包实现中文标签云制作
  19. CAN总线概况与原理(转)
  20. Uniapp-微信小程序实现全局事件监听并进行数据埋点

热门文章

  1. 2020年中国汽车后市场行业发展现状分析,汽车保有量不断提升,行业发展前景广阔「图」
  2. 水调歌头.明月几时有 小儿拼音版
  3. 软件工程毕设(四)·调研报告
  4. zmq xsub/xpub 实现消息订阅(一)
  5. 研大考研:2015考研政治认识论知识点
  6. opencv 学习之 液晶数字识别
  7. python小学口算题库生成器_口算题自动生成的小程序-L.A.SMILE自家用软件-口算题生成下载20060207-西西软件下载...
  8. python小学口算题库生成器_PrimarySchoolMathematics
  9. 免费高清可商用图片素材站推荐
  10. 计算机无法复制大文件格式,U盘复制文件电脑提示文件过大无法复制怎么解决?...