Android Fingerprint属性

在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等信息的修改

猜你喜欢

转载自blog.csdn.net/love_xiaozhao/article/details/105873045