高通c6490 为过GMS,修改fingerprint属性
首先通过adb查看含有fingerprint的属性值
lahaina:/ $ getprop | grep finger [ro.bootimage.build.fingerprint]: [qti/lahaina/lahaina:11/RKQ1.230607.001/asw06281258:user/test-keys] [ro.build.fingerprint]: [qti/lahaina/lahaina:13/PB-A6490ACT-Android13-EDP-/V1.3-20240628:user/test-keys] [ro.build.version.preview_sdk_fingerprint]: [REL] [ro.odm.build.fingerprint]: [qti/lahaina/lahaina:11/RKQ1.230607.001/asw06281258:user/test-keys] [ro.product.build.fingerprint]: [qti/qssi/qssi:13/PB-A6490ACT-Android13-EDP-/asw06281034:user/test-keys] [ro.system.build.fingerprint]: [qti/qssi/qssi:13/PB-A6490ACT-Android13-EDP-/asw06281034:user/test-keys] [ro.system_ext.build.fingerprint]: [qti/qssi/qssi:13/PB-A6490ACT-Android13-EDP-/asw06281034:user/test-keys] [ro.vendor.build.fingerprint]: [qti/lahaina/lahaina:11/RKQ1.230607.001/asw06281258:user/test-keys] lahaina:/ $
修改方法如下:
Index: QCM6490_apps_qssi13/LINUX/android/build/make/core/Makefile
===================================================================
--- QCM6490_apps_qssi13/LINUX/android/build/make/core/Makefile (revision 2959)
+++ QCM6490_apps_qssi13/LINUX/android/build/make/core/Makefile (working copy)
@@ -15,6 +15,24 @@
ODM_DLKM_NOTICE_DEPS :=
SYSTEM_DLKM_NOTICE_DEPS :=
+MY_BRAND="xxx"
+MY_MANUFACTURER="xxxxxx"
+MY_DEVICE="xxxx"
+MY_MODEL="xxxxxx"
+MY_NAME="xxxxxxx"
+MY_BUILD_NUMBER="20240726"
+
+define generate-common-build-props
+ PRODUCT_BRAND="$(MY_BRAND)" \
+ TARGET_DEVICE="$(MY_DEVICE)" \
+ PRODUCT_MANUFACTURER="$(MY_MANUFACTURER)" \
+ PRODUCT_MODEL="$(MY_MODEL)" \
+ TARGET_PRODUCT="$(MY_NAME)" \
+ BF_BUILD_NUMBER="$(MY_BUILD_NUMBER)" \
+ $(call generate-common-build-props-with-product-vars-set,$(1),$(2))
+endef
+
+
# -----------------------------------------------------------------
# Define rules to copy PRODUCT_COPY_FILES defined by the product.
# PRODUCT_COPY_FILES contains words like <source file>:<dest file>[:<owner>].
Index: QCM6490_apps_qssi13/LINUX/android/build/make/core/sysprop.mk
===================================================================
--- QCM6490_apps_qssi13/LINUX/android/build/make/core/sysprop.mk (revision 2959)
+++ QCM6490_apps_qssi13/LINUX/android/build/make/core/sysprop.mk (working copy)
@@ -41,11 +41,15 @@
echo "ro.product.$(1).model=$(PRODUCT_SYSTEM_MODEL)" >> $(2);\
echo "ro.product.$(1).name=$(PRODUCT_SYSTEM_NAME)" >> $(2);\
,\
- echo "ro.product.$(1).brand=$(PRODUCT_BRAND)" >> $(2);\
- echo "ro.product.$(1).device=$(TARGET_DEVICE)" >> $(2);\
- echo "ro.product.$(1).manufacturer=$(PRODUCT_MANUFACTURER)" >> $(2);\
- echo "ro.product.$(1).model=$(PRODUCT_MODEL)" >> $(2);\
- echo "ro.product.$(1).name=$(TARGET_PRODUCT)" >> $(2);\
+ echo "ro.product.$(1).brand=$(MY_BRAND)" >> $(2);\
+ echo "ro.product.$(1).device=$(MY_DEVICE)" >> $(2);\
+ echo "ro.product.$(1).manufacturer=$(MY_MANUFACTURER)" >> $(2);\
+ echo "ro.product.$(1).model=$(MY_MODEL)" >> $(2);\
+ echo "ro.product.$(1).name=$(MY_NAME)" >> $(2);\
+ echo "ro.product.brand=$(MY_BRAND)" >> $(2);\
+ echo "ro.product.name=$(MY_NAME)" >> $(2);\
+ echo "ro.product.device=$(MY_DEVICE)" >> $(2);\
+ echo "ro.build.version.incremental=$(MY_BUILD_NUMBER)" >> $(2);\
+ echo "ro.com.google.clientidbase=android-ragentek" >> $(2);\
)\
$(if $(filter true,$(ZYGOTE_FORCE_64)),\
$(if $(filter vendor,$(1)),\
@@ -157,7 +161,7 @@
# Both of these tags will be removed and replaced with "release-keys"
# when the target-files is signed in a post-build step.
ifeq ($(DEFAULT_SYSTEM_DEV_CERTIFICATE),build/make/target/product/security/testkey)
-BUILD_KEYS := test-keys
+BUILD_KEYS := release-keys
else
BUILD_KEYS := dev-keys
endif
@@ -172,7 +176,7 @@
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)
+ BUILD_FINGERPRINT := $(MY_BRAND)/$(MY_NAME)/$(MY_DEVICE):$(PLATFORM_VERSION)/$(BUILD_ID)/$(MY_BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS)
endif
# unset it for safety.
BF_BUILD_NUMBER :=
Index: LINUX/android/build/make/core/Makefile
===================================================================
--- LINUX/android/build/make/core/Makefile (revision 2959)
+++ LINUX/android/build/make/core/Makefile (working copy)
@@ -4,6 +4,27 @@
# intermedites-dir-for
LOCAL_PATH := $(BUILD_SYSTEM)
+MY_BRAND="xxxxx"
+MY_MANUFACTURER="xxxx"
+MY_DEVICE="xxxx"
+MY_MODEL="xxxxxx"
+MY_NAME="xxxxx"
+MY_BUILD_NUMBER="20240726"
+MY_PLATFORM_VERSION="13"
+MY_BUILD_ID="PB-A6490ACT"
+
+define generate-common-build-props
+ PRODUCT_BRAND="$(MY_BRAND)" \
+ TARGET_DEVICE="$(MY_DEVICE)" \
+ PRODUCT_MANUFACTURER="$(MY_MANUFACTURER)" \
+ PRODUCT_MODEL="$(MY_MODEL)" \
+ TARGET_PRODUCT="$(MY_NAME)" \
+ BF_BUILD_NUMBER="$(MY_BUILD_NUMBER)" \
+ PLATFORM_VERSION="$(MY_PLATFORM_VERSION)" \
+ BUILD_ID="$(MY_BUILD_ID)" \
+ $(call generate-common-build-props-with-product-vars-set,$(1),$(2))
+endef
+
# -----------------------------------------------------------------
# Define rules to copy PRODUCT_COPY_FILES defined by the product.
# PRODUCT_COPY_FILES contains words like <source file>:<dest file>[:<owner>].
@@ -324,7 +345,7 @@
# Both of these tags will be removed and replaced with "release-keys"
# when the target-files is signed in a post-build step.
ifeq ($(DEFAULT_SYSTEM_DEV_CERTIFICATE),build/make/target/product/security/testkey)
-BUILD_KEYS := test-keys
+BUILD_KEYS := release-keys
else
BUILD_KEYS := dev-keys
endif
@@ -342,7 +363,7 @@
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)
+ BUILD_FINGERPRINT := $(MY_BRAND)/$(MY_NAME)/$(MY_DEVICE):$(MY_PLATFORM_VERSION)/$(MY_BUILD_ID)/$(MY_BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS)
endif
# unset it for safety.
BF_BUILD_NUMBER :=
@@ -536,7 +557,7 @@
echo "#" >> $@;
$(hide) echo ro.bootimage.build.date=`$(DATE_FROM_FILE)`>>$@
$(hide) echo ro.bootimage.build.date.utc=`$(DATE_FROM_FILE) +%s`>>$@
- $(hide) echo ro.bootimage.build.fingerprint="$(BUILD_FINGERPRINT_FROM_FILE)">>$@
+ $(hide) echo ro.bootimage.build.fingerprint="xxxx/xxxx/xxx:13/PB-A6490ACT/20240726:user/release-keys">>$@
$(hide) echo "#" >> $@; \
echo "# ADDITIONAL VENDOR BUILD PROPERTIES" >> $@; \
echo "#" >> $@;
最后通过adb可以看到属性修改符合客户需求的了。
注意,高通的SDK是有两套android源码的。然后ro.build.fingerprint 在QCM6490_apps_qssi13/LINUX/android/system/core/init/property_service.cpp 下面有设置。代码如下,build.prop 中添加ro.build.fingerprint属性,init会根据上面的系统属性自动拼接
所以我直接在sysprop.mk里面添加了ro.product.brand 等属性。
// If the ro.build.fingerprint property has not been set, derive it from constituent pieces
static void property_derive_build_fingerprint() {
std::string build_fingerprint = GetProperty("ro.build.fingerprint", "");
if (!build_fingerprint.empty()) {
return;
}
build_fingerprint = ConstructBuildFingerprint(false /* legacy fingerprint */);
LOG(INFO) << "Setting property '" << FINGERPRINT_PROP << "' to '" << build_fingerprint << "'";
std::string error;
uint32_t res = PropertySet(FINGERPRINT_PROP, build_fingerprint, &error);
if (res != PROP_SUCCESS) {
LOG(ERROR) << "Error setting property '" << FINGERPRINT_PROP << "': err=" << res << " ("
<< error << ")";
}
}
static std::string ConstructBuildFingerprint(bool legacy) {
const std::string UNKNOWN = "unknown";
std::string build_fingerprint = GetProperty("ro.product.brand", UNKNOWN);
build_fingerprint += '/';
build_fingerprint += GetProperty("ro.product.name", UNKNOWN);
build_fingerprint += '/';
build_fingerprint += GetProperty("ro.product.device", UNKNOWN);
build_fingerprint += ':';
build_fingerprint += GetProperty("ro.build.version.release_or_codename", UNKNOWN);
build_fingerprint += '/';
std::string build_id =
legacy ? GetProperty(LEGACY_ID_PROP, UNKNOWN) : GetProperty(ID_PROP, UNKNOWN);
build_fingerprint += build_id;
build_fingerprint += '/';
build_fingerprint += GetProperty("ro.build.version.incremental", UNKNOWN);
build_fingerprint += ':';
build_fingerprint += GetProperty("ro.build.type", UNKNOWN);
build_fingerprint += '/';
build_fingerprint += GetProperty("ro.build.tags", UNKNOWN);
return build_fingerprint;
}
浙公网安备 33010602011771号