现有2个k39tv1_64_bsp
和k37mv1_bsp
Android8源码工程文件。
vendor\go-gms\apps
目录下,均包含GMS的app。

将k39tv1_64_bsp
中的BUILD_GMS
和BUILD_AGO_GMS
改成yes。
//device\mediateksample\k39tv1_64_bsp
BUILD_GMS = yes
BUILD_AGO_GMS = yes
修改完后编译安装,可以正常使用。
但是在k37mv1_bsp
工程下,修改BUILD_GMS
和BUILD_AGO_GMS
后,会出现Device is not certified
,设备未验证,无法使用app。
问题的关键在于build_fingerprint.txt
这个文件。
k39tv1_64_bsp
项目下BUILD_FINGERPRINT
定义如下。
//build\make\core\Makefile
BUILD_FINGERPRINT := $(PRODUCT_BRAND)/$(TARGET_PRODUCT)/$(TARGET_DEVICE):$(PLATFORM_VERSION)/$(BUILD_ID)/$(BF_BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS)
cmd控制台中调用
getprop ro.build.fingerprint
结果如下
alps/full_k39tv1_64_bsp/k39tv1_64_bsp:8.1.0/xxxx/xxxx:userdebug/test-keys
k37mv1_bsp
设备
调用getprop ro.build.fingerprint
结果如下。
FPLTE/FPLTE/FPLTE:8.1.0/xxxx/xxxx:userdebug/release-keys
其实这个就是编译过程中生成的build_fingerprint.txt的内容,具体位置在out\target\product\xxx_bsp下。
k37mv1_bsp
工程中BUILD_FINGERPRINT
定义如下
BUILD_FINGERPRINT := $(PRODUCT_BRAND)/$(CUSTOM_PRODUCT)/$(CUSTOM_DEVICE):$(PLATFORM_VERSION)/$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS)
由于之前修改了CUSTOM_DEVICE,CUSTOM_PRODUCT和PRODUCT_BRAND ,导致BUILD_FINGERPRINT 内容发生了改变,从而出现设备未验证的情况。
--- a/device/mediateksample/k37mv1_bsp/full_k37mv1_bsp.mk
+++ b/device/mediateksample/k37mv1_bsp/full_k37mv1_bsp.mk
-CUSTOM_PRODUCT=FPLTE
-CUSTOM_DEVICE=FPLTE
+CUSTOM_PRODUCT=full_k37mv1_bsp
+CUSTOM_DEVICE=k37mv1_bsp
-PRODUCT_BRAND := FPLTE
+PRODUCT_BRAND := alps
最后需要确保BUILD_KEYS := test-keys
,把release-keys
改掉
修改后为build_fingerprint.txt
中的内容为
alps/full_k37mv1_bsp/k37mv1_bsp:8.1.0/O11019/xxxxx:userdebug/test-keys
或
alps/full_k37mv1_bsp/k37mv1_bsp:8.1.0/O11019/xxxxx:user/test-keys
,对应了user或userdebug版本。
参考链接:
Android 9.0 导入GMS组件及Google Play Store
Android10(Q) GMS 全家桶移植
Device is not certified by Google
Android 第三方ROM定制之适配谷歌Play Store
AndroidL 源码编译 预置GMS包与第三方应用 系统属性管理
GMS 包配置说明
网友评论