当前位置: 首页 > news >正文

A13 GMS应用预装

接到一个需求,需要预装GMS,在此记录一下

一需求:

预装GMS,使其能够正常打开使用

二步骤:

1 放置gms相关文件

 

因为GMS需要用自己的签名,不可以使用系统签名。不然导致认证不通过,我用传统方式预装开机应用是安装失败的,开机后看不到应用,我查看ylog,是签名不对

S002F1E  01-01 00:00:39.936  1041  1041 I PackageManager: /system/priv-app/GooglePlayStore changed; collecting certs
S002F1F  01-01 00:00:39.939  1041  1041 W PackageManager: Failed to scan /system/priv-app/GooglePlayStore: No APK Signature Scheme v2 signature in package /system/priv-app/GooglePlayStore/GooglePlayStore.apk
S002F20  01-01 00:00:39.939  1041  1041 I PackageManager: /system/priv-app/GooglePlayServices changed; collecting certs
S002F21  01-01 00:00:39.941  1041  1041 W PackageManager: Failed to scan /system/priv-app/GooglePlayServices: No APK Signature Scheme v2 signature in package /system/priv-app/GooglePlayServices/GooglePlayServices.apk
S002F22  01-01 00:00:39.954  1041  1041 D PackageManager: Scanning app dir /system/app, fileCount = 22
S002F23  01-01 00:00:39.954  1041  1041 I PackageManager: /system/app/BluetoothMidiService changed; collecting certs
S002F24  01-01 00:00:39.962  1041  1274 W PackageParsing: No actions in intent-filter at /system/app/CarrierDefaultApp/CarrierDefaultApp.apk Binary XML file line #44
S002F25  01-01 00:00:39.962  1041  1041 I PackageManager: /system/app/BookmarkProvider changed; collecting certs
S002F26  01-01 00:00:39.973  1041  1273 W PackageParsing: Ignoring duplicate uses-permissions/uses-permissions-sdk-m: android.permission.READ_PHONE_STATE in package: com.abupdate.fota_demo_iot at: Binary XML file line #15

 看日志是 apk没有v2签名,导致系统预装时校验失败,查看apk 如下

查看预装gms应用包的签名信息PS E:\sync\ft18> apksigner verify --verbose .\com.google.android.gms252234.apk
Verifies
Verified using v1 scheme (JAR signing): false
Verified using v2 scheme (APK Signature Scheme v2): false
Verified using v3 scheme (APK Signature Scheme v3): true
Verified using v3.1 scheme (APK Signature Scheme v3.1): false
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: true
Number of signers: 1
PS E:\sync\ft18\gongwang\yiterui>

查阅资料,这种方式下,不能使用传统预装模式,需要复制apk到目标目录 ,所以Android.mk文件以GooglePlayStore应用为例,其他格式相同,只需更换名称内容如下

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
$(shell mkdir -p $(TARGET_OUT)/priv-app/GooglePlayStore) // 创建目标目录,
$(shell cp -r $(LOCAL_PATH)/GooglePlayStore45717.apk $(TARGET_OUT)/priv-app/GooglePlayStore) //将文件复制到目标目录
LOCAL_PACKAGE_NAME := GooglePlayStore //当前包名称

记得将该内容添加编译,如下:

Date:   Tue Jul 15 18:13:38 2025 +0800gms集成编译Change-Id: I1b752641814a253fbd80ae37cacd940a1cf80754diff --git a/ums9158_1h10/product/var.mk b/ums9158_1h10/product/var.mk
index f76da1b..70853b3 100755
--- a/ums9158_1h10/product/var.mk
+++ b/ums9158_1h10/product/var.mk
@@ -22,8 +22,10 @@ $(call md-disable, ai)# disable vdsp nnhal  and ai end ##system navigation 0show 1hiddenqemu.hw.mainkeys=1
-
+PRODUCT PACKAGES +=GooglePlayStore \
+                  GoogleServicesFramework \
+                  GooglePlayServices

这样就预装成功了。(登录google playstore 需要科学上网)

二GMS认证:

这边是借用了已经认证过的信息,修改如下:

commit 5b1cc8bd4f6634aa7953480c9a3cb462d3c61928                                                                                  
Author: lijp <lijp@flyscale.cn>                                                                                                  
Date:   Thu May 29 13:37:10 2025 +0800                                                                                           修改fingerprint属性(谷歌GMS认证)                                                                                             Change-Id: I7bb2a441f9457136cdf43f04512a31bac061d71b                                                                         diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py                                                         
index 67bbb45e3..0a5ce5b83 100644                                                                                                
--- a/tools/releasetools/common.py                                                                                               
+++ b/tools/releasetools/common.py                                                                                               
@@ -651,8 +651,8 @@ class BuildInfo(object):                                                                                     except ExternalError:                                                                                                     return "{}/{}/{}:{}/{}/{}:{}/{}".format(                                                                                self.GetBuildProp("ro.product.brand"),                                                                              
-            self.GetBuildProp("sl8541e_1h10_32b_Natv"),                                                                         
-            self.GetBuildProp("sl8541e_1h10_32b"),                                                                              
+            "sl8541e_1h10_32b_Natv",                                                                                            
+            "sl8541e_1h10_32b",                                                                                                 self._GetPlatformVersion(),                                                                                         self.GetBuildProp("ro.build.id"),                                                                                   self.GetBuildProp("ro.build.version.incremental"),                                                                  commit 4e13c07f018cb261d9722b87d4de2266887aadd4                                                                                  
Author: lijp <lijp@flyscale.cn>                                                                                                  
Date:   Thu May 29 13:24:38 2025 +0800                                                                                           修改fingerprint属性(谷歌GMS认证)                                                                                             Change-Id: Id0b99d15a41af3411282b987f3db4ac747b474a0                                                                         diff --git a/core/sysprop.mk b/core/sysprop.mk                                                                                   
index 9fcedd759..7adcab5e6 100755                                                                                                
--- a/core/sysprop.mk                                                                                                            
+++ b/core/sysprop.mk                                                                                                            
@@ -178,7 +178,7 @@ ifeq (,$(strip $(BUILD_FINGERPRINT)))                                                                        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 := $(PRODUCT_BRAND)/sl8541e_1h10_32b_Natv/sl8541e_1h10_32b:$(PLATFORM_VERSION)/$(BUILD_ID)/$(BF_BUILD_NUMBER​‌​
):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS)                                                                                  endif                                                                                                                           # unset it for safety.                                                                                                          BF_BUILD_NUMBER :=                                                                                                              
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py                                                         
index c2e6ad0bb..67bbb45e3 100644                                                                                                
--- a/tools/releasetools/common.py                                                                                               
+++ b/tools/releasetools/common.py                                                                                               
@@ -651,8 +651,8 @@ class BuildInfo(object):                                                                                     except ExternalError:                                                                                                     return "{}/{}/{}:{}/{}/{}:{}/{}".format(                                                                                self.GetBuildProp("ro.product.brand"),                                                                              
-            self.GetBuildProp("ro.product.name"),                                                                               
-            self.GetBuildProp("ro.product.device"),                                                                             
+            self.GetBuildProp("sl8541e_1h10_32b_Natv"),                                                                         
+            self.GetBuildProp("sl8541e_1h10_32b"),                                                                              self._GetPlatformVersion(),                                                                                         self.GetBuildProp("ro.build.id"),                                                                                   self.GetBuildProp("ro.build.version.incremental"),  

然后编译测试就额可以了~

http://www.dtcms.com/a/282683.html

相关文章:

  • 微服务引擎 MSE 及云原生 API 网关 2025 年 5 月产品动态
  • Git 提交信息(Commit Message)的规范校验,husky + commitlint
  • Java全栈工程师面试实录:从电商场景到AIGC的深度技术挑战
  • 手动搭建PHP环境:步步为营,解锁Web开发
  • 【尝试】基于openai-whisper进行语音转文字windows版本
  • 【项目实践】SMBMS(Javaweb版)汇总版
  • flink sql如何对hive string类型的时间戳进行排序
  • python应用day11--requests爬虫详解
  • Dify工作流节点-Agent
  • 前端上传 pdf 文件 ,前端自己解析出来 生成界面 然后支持编辑
  • 数据降维方法:PCA
  • Vue2.x封装预览PDF组件
  • 利用pdfjs实现的pdf预览简单demo(包含翻页功能)
  • 从0开始学习R语言--Day48--Calibration Curves 评估模型
  • ByteToMessageDecoder详解
  • 众趣分享 | 浅谈三维重建(空间计算)技术原理
  • STM32外设介绍5(DMA<直接存储器访问>)
  • 开源模型应用落地-qwen模型小试-Qwen3-Embedding 模型集成 vLLM 实战解析(二)
  • Python第三次作业
  • 【Node 日常使用 】
  • GitHub 趋势日报 (2025年07月15日)
  • 中望3D 2026亮点速递(1)-全新槽功能螺纹功能,减少繁琐操作
  • Oracle,PostgreSQL查看字段码值方式
  • 国内外服务器的不同之处
  • 【Qt】麒麟系统安装套件
  • 机器学习:AI 自主学习能力的来源
  • Rocky9安装Ansible
  • 网络安全(初级)(XSS-labs 1-8)
  • 【React Native】模态页Modal
  • 论文导读--PQ3D:通过分段级分组实现多模态特征融合和 MTU3D:在线查询表示学习与动态空间记忆