拓冰建站拓冰建站
首页 / 资讯中心 / 正文

microG华为设备适配完整指南:签名伪造与位置权限配置一次讲清

microG华为设备适配完整指南签名伪造与位置权限配置一次讲清【免费下载链接】GmsCoreFree implementation of Play Services项目地址: https://gitcode.com/GitHub_Trending/gm/GmsCoreMicroG ServicesmicroG是让依赖 GMS 的应用在没有 Google Play 服务的设备上跑起来的免费开源实现。本文以华为设备为例从原理到操作完整讲清 microG 华为适配的三个关键点签名伪造、huawei 构建变体、位置权限配置。为什么 GMS 应用在华为设备上直接跑不通不少用户反馈microG 装好了应用却仍报Google 服务不可用。问题通常出在两道上——签名验证关系统会检查 GMS 服务提供方是否持有 Google 官方签名。华为设备上这条验证走的是系统提供的专用签名接口ISignatureService与标准 Android 的机制不同普通变体的签名伪造服务接不到这个问题。位置权限关HarmonyOS 对位置权限采用分级授权只授予仅使用期间允许时microG 的位置服务切到后台就会被挂起。针对这两关microG 在源码中各留了一个华为适配目录fake-signature/src/huawei/重写签名服务play-services-location/core/src/huawei/负责权限请求与分步引导截图。理解它们各自的职责下面的配置才有的放矢。签名伪造原理解析如何扮成 Google什么是签名伪造先用白话解释当系统来问GMS 服务是谁签的时microG 回答一个官方 Google 服务签名让应用以为自己在跟真 Google Play 服务对话。技术名称就叫签名伪造signature faking。在标准 Android 上这个答案由签名伪造模块的主实现返回在华为设备上问题发给的是华为专用接口所以 huawei 变体把整个服务实现重写了一遍——它监听系统的绑定请求校验调用方身份后从两种签名里选一个返回官方签名或真实签名。白名单机制哪些应用被伪造并非所有应用都一律伪造。服务内部维护一张 SQLite 白名单表以应用包名为主键fake列记录是否伪造// SignatureService 查询白名单无记录走默认建议值有记录则查 fake 列 try (Cursor cursor database.query(TABLE_APPLIST, null, COLUMN_NAME ?, new String[]{packageName}, null, null, null)) {白名单初始数据来自两个预置配置数组一组要伪造、一组绝不伪造。也就是说哪些应用享受官方签名待遇由项目配置提前决定你无需手工管理数据库。具体签名串存放在fake-signature/src/main/res/values/signature.xml中一长串十六进制就是官方签名的 DER 编码。huawei 构建变体怎么选选对 huawei 构建变体是 microG 华为适配的第一课。项目用 Gradle 多 flavor 机制按target维度为不同设备出包各模块差异如下模块标准变体华为变体fake-signature标准签名伪造服务适配华为ISignatureService接口play-services-location标准权限请求流程强制请求华为后台权限 分步引导图play-services-core通用界面华为专属资源覆盖判断规则一句话下载的变体必须与设备匹配。华为设备装标准变体签名验证走不到正确的接口应用照旧报服务不可用反之 huawei 变体装在非华为设备上同样不合适。变体信息通常可以在 microG 服务的关于页面确认界面组件由play-services-core/microg-ui-tools/提供。从零跑通microG 位置权限怎么配装对变体后剩下最高频的操作只有一件事把位置权限设为始终允许。两步配置法进入系统设置 → 应用 → microG 服务在权限区域找到位置信息入口。点进去在每次使用询问 / 仅使用期间允许 / 始终允许 / 禁止四个选项中选始终允许。 为什么必须是始终允许位置服务的本质是后台供给方——你的应用没打开时别人仍在向它要位置。仅使用期间允许会让它在后台被系统切断。自动权限请求与手动兜底microG 不会干等你手动配置。华为适配目录中的AskPermissionNotificationActivity.kt实现了渐进式请求先要前台位置权限授予后立即追加请求后台位置权限华为设备上还可以强制附带一项系统级后台权限// 华为变体额外在请求列表中加入系统后台权限 if (BuildConfig.FORCE_SHOW_BACKGROUND_PERMISSION.isNotEmpty()) { permissions.add(BuildConfig.FORCE_SHOW_BACKGROUND_PERMISSION) }如果当时点了拒绝通知不会自动消失——点通知可重新进入请求页或直接按上面两张截图手动进设置页配置。暂不提醒只是本次取消不算永久拒绝随时可重新触发。排障闭环3 个常见失效场景对照排障可以按固定顺序走配置都做完应用仍异常时原因基本落在这三行里——问题现象最可能原因解决方案应用仍报Google 服务不可用变体不匹配华为设备装了标准变体重装 huawei 变体确认签名伪造服务已启动应用退后台后位置更新停止权限只给了使用期间允许按截图两步改为始终允许完全弹不出权限申请通知被拦截或之前拒绝后取消手动进应用信息页配置并放行 microG 服务通知再补一条系统为省电会杀后台服务。若权限配满后 microG 仍被挂起把它加入省电白名单并在最近任务里锁定——这一步完全在系统电源管理里完成不涉及任何仓库配置。要点收束出问题时按顺序查先确认变体与设备匹配再确认位置权限已设为始终允许最后检查省电白名单。签名伪造白名单由项目静态维护你只需保证服务在运行无需碰数据库。三步都通过之后依赖 GMS 的应用在华为设备上即可正常使用。【免费下载链接】GmsCoreFree implementation of Play Services项目地址: https://gitcode.com/GitHub_Trending/gm/GmsCore创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门