Google pay默认支付(payment)应用之二 -TpHceService默认被disable原因

2023-11-12

根据上篇文章《GooglePay默认支付(payment)应用 之一》

我们提到在GmsCore(Google play services)核心套件里边声明的TpHceService开机后发现被disabled。

 

那么原因是什么呢?

一起来看看吧~

 

由于GmsCore包太大,无法简单反编译,只要通过本地有的Frameworks代码log来解析这个APK,指着得出一些结论。

通过debug, 发现:

04-02 02:13:23.932897   999  1186 I ActivityManager: Start proc 2377:com.google.android.gms.persistent/u0a92 for broadcast {com.google.android.gms/com.google.android.gms.chimera.GmsIntentOperationService$PersistentTrustedReceiver}

04-02 02:13:32.777532   640   691 D StagefrightMetadataRetriever: setDataSource fd=9 (/product/media/audio/notifications/Antimony.ogg), offset=0, length=27849
04-02 02:13:32.777632  2377  2989 D ApplicationPackageManager:  xdt SetComponentEnabledSettings: cmpName:ComponentInfo{com.google.android.gms/com.google.android.gms.tapandpay.hce.service.TpHceService}, newState:2, flags:1
04-02 02:13:32.778354  2377  2989 D ApplicationPackageManager: xdtjava.lang.Throwable
04-02 02:13:32.778354  2377  2989 D ApplicationPackageManager: 	at android.app.ApplicationPackageManager.setComponentEnabledSetting(ApplicationPackageManager.java:2554)
04-02 02:13:32.778354  2377  2989 D ApplicationPackageManager: 	at asbd.a(:com.google.android.gms@200414037@20.04.14 (120400-294335909):3)
04-02 02:13:32.778354  2377  2989 D ApplicationPackageManager: 	at com.google.android.gms.tapandpay.init.TapAndPayInitIntentOperation.onHandleIntent(:com.google.android.gms@200414037@20.04.14 (120400-294335909):3)
04-02 02:13:32.778354  2377  2989 D ApplicationPackageManager: 	at com.google.android.chimera.IntentOperation.onHandleIntent(:com.google.android.gms@200414037@20.04.14 (120400-294335909):2)
04-02 02:13:32.778354  2377  2989 D ApplicationPackageManager: 	at qkg.onHandleIntent(:com.google.android.gms@200414037@20.04.14 (120400-294335909):4)
04-02 02:13:32.778354  2377  2989 D ApplicationPackageManager: 	at dsr.run(:com.google.android.gms@200414037@20.04.14 (120400-294335909):7)
04-02 02:13:32.778354  2377  2989 D ApplicationPackageManager: 	at dsq.run(:com.google.android.gms@200414037@20.04.14 (120400-294335909):7)
04-02 02:13:32.778354  2377  2989 D ApplicationPackageManager: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
04-02 02:13:32.778354  2377  2989 D ApplicationPackageManager: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
04-02 02:13:32.778354  2377  2989 D ApplicationPackageManager: 	at java.lang.Thread.run(Thread.java:919)

04-02 02:13:32.781648   999  2861 D PackageManager :  packageName: com.google.android.gms className: com.google.android.gms.tapandpay.hce.service.TpHceService newState: 2 CallingUid: 10092 CallingPid: 2377,CallingPackage:null, userId0, flags:1
04-02 02:13:32.786797   999  2861 D PackageManager: Instant App installer not found with android.intent.action.INSTALL_INSTANT_APP_PACKAGE
04-02 02:13:32.786933   999  2861 D PackageManager: Clear ephemeral installer activity
04-02 02:13:32.795865   999  1176 D AppOps  : checkOperation: uid reject #4 for code 0 uid 1001 package com.mediatek.ims
04-02 02:13:32.796189   999  1176 W Looper  : Drained
04-02 02:13:32.836054   999  1200 I ActivityManager:   Force stopping service ServiceRecord{2484b2e u0 com.google.android.gms/.tapandpay.hce.service.TpHceService}

由这句可知,

ApplicationPackageManager:     at com.google.android.gms.tapandpay.init.TapAndPayInitIntentOperation.onHandleIntent(:com.google.android.gms@200414037@20.04.14 (120400-294335909):3)

这个是在Gms包里边代码逻辑 通过调用Framework, PackageManager setComponentEnabledSetting API将TpHceService disable.

 

/* compiled from: :com.google.android.gms@200414037@20.04.14 (120400-294335909) */
/* renamed from: asbd */
public final class asbd {
    static final AtomicBoolean a = new AtomicBoolean(false);
    private static final sqv b = sqv.a(sfo.aA);

    public static void a(Context context) {
        try {
            if (arrk.c(context)) {
                if (asbd.c(context)) {
                    asbd.e(context);
                    return;
                }
            }
            if (asbd.d(context)) { 
                asbd.f(context);
                if (arqy.f(context)) {
                    ((DevicePolicyManager) context.getSystemService("device_policy")).setPasswordQuality(arqy.a(context), 0);
                }
                new asoh(context).c.edit().putBoolean("tap_and_pay_enabled", true).apply();
                asbd.e(context);
                return;
            }
            context.getPackageManager().setComponentEnabledSetting(new ComponentName(context, "com.google.android.gms.tapandpay.hce.service.TpHceService"), 2, 1); //  执行这个将在不杀死进程的情况下disable service.
        } catch (RuntimeException e) {
            context = e;
            ((bmiw) ((bmiw) ((bmiw) b.b()).a(context)).a("asbd", "a", 74, ":com.google.android.gms@200414037@20.04.14 (120400-294335909)")).a("Error initializing Google Pay");
        } catch (arsr e2) {
            context = e2;
            ((bmiw) ((bmiw) ((bmiw) b.b()).a(context)).a("asbd", "a", 74, ":com.google.android.gms@200414037@20.04.14 (120400-294335909)")).a("Error initializing Google Pay");
        }
    }

有上段反编译代码,结果再明显不过了。

属于GmsCore内部动态逻辑决定了TpHceService这个component的enable状态。

 

至于具体的判断条件,

还是没有找到这一根本条件,混淆的太过严重。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google pay默认支付(payment)应用之二 -TpHceService默认被disable原因 的相关文章

随机推荐

  • 锐浪报表-实现导入导出

    锐浪报表 实现导入导出 实现思路 代码实现 实现思路 导入导出实现思路 我们使用锐浪报表自带的导出功能导出 XX grf 后 鼠标右键是可以像编辑文本一样编辑内容的 由此联想到 用记事本手写一个模板改一下后缀名是不是也可以当作报表模板 答案
  • 好消息:vue3.3发布了,来看看更新那些功能

    前言 vue3 3发布了 来看看更新那些功能 原英文地址 Announcing Vue 3 3 The Vue PointThe offical blog for the Vue js projecthttps blog vuejs org
  • 2023年完整版Java学习路线图

    目录 第一阶段 Java核心基础 第二阶段 数据库核心技术 第三阶段 Java Web内容 第四阶段 企业级框架讲解 第五阶段 分布式微服务架构 第六阶段 技能深入提升 第七阶段 企业级项目实战 Java学习路线图 以下是我为您提供的原创J
  • NOIP学习之顺序查找:145.找最大数序列

    测试链接 总时间限制 1000ms 内存限制 65536kB 描述 输入n行 每行不超过100个无符号整数 无符号数不超过4位 请输出最大整数以及最大整数所在的行号 行号从1开始 如果该数据在多个行中出现 则按从小到大输出相应行号 行号之间
  • 【计算机视觉

    文章目录 一 MnasNet 二 GhostNet 三 Compact Convolutional Transformers CCT 四 NesT 五 Res2Net 六 EfficientNetV2 七 Capsule Network 八
  • JQuery安装与下载教程

    jQuery安装与下载 JQuery 是一个javaScript库 是一个轻量级的 写的少 做的多 的JavaScript库 jQuery 极大地简化javaScript编程 juery相比js优点 jquery的onload加载事件速度更
  • 方波转为正弦波的简单方案简介

    将方波信号转化为正弦波信号 主要是需要抑制方波信号的谐波信号 主要是抑制三次谐波 经过仿真测试 能够将方波转化为正弦波的滤波器 其衰减必须足够陡峭 将谐波频率尽可能压掉 在实际的滤波器中 经过测试 采用椭圆低通滤波器是能够实现所需要的滤波功
  • 【C++】STL常用容器总结之四:链表list

    5 链表list List是每个节点包含前驱指针 后继指针和数据域三个部分的双向链表 List不提供随机存取 访问元素需要按顺序走到需存取的元素 时间复杂度为O n 在list的任何位置上执行插入或删除操作都非常迅速 只需在list内部调整
  • 单目标优化:飞狐优化算法(Flying Foxes Optimization,FFO)求解cec2017(提供Matlab代码)

    一 飞狐优化算法简介 飞狐优化算法 Flying Foxes Optimization FFO 由Konstantinos Zervoudakis与Stelios Tsafarakis于2022年提出 参考文献 Zervoudakis K
  • 冒泡排序与快速排序【C语言】

    冒泡排序 基本思想 对有n个记录的序列进行冒泡排序 首先将第一个数字与第二个数字进行比较 若为逆序 则将两个数字的顺序交换 然后比较第二个数字与第三个数字 若为逆序 则将两个数字的顺序交换 依此类推 经过第一轮排序后 最大的数字将 下沉 到
  • PHP进行中文URL编转码为GB2312或UTF8

    中文转URL编码 GB2312 urlencode iconv utf 8 gb2312 中国人 中文转URL编码 UTF8 urlencode 中国人
  • ubuntu磁盘扩容方法(简单有效)

    准备工作 使用Vmware进行扩展 在进行磁盘扩展的时候 虚拟机不可以有快照 使用快照管理删除快照 开始扩容 点击 虚拟机 设置 硬盘 扩展 填写扩展大小 分区设置 扩展完成后并还需要在操作系统进行设置才能真正使用 下面有几种方法 第一种方
  • 运行开源库CCPD-RPnet代码,提示「KeyError: Caught KeyError in replica 0 on device 0」错误

    文章目录 问题描述 问题排查 Solution Other 问题描述 通过python3 demo py i demo m models fh02 pth运行车牌识别CCPD开源代码 提示 KeyError Caught KeyError
  • Spark

    1 Spark概述 Spark是一个支持多语言的数据计算 科学计算 机器学习引擎 同时支持单节点或者集群运行模式 其强大的功能包括 批处理 结构化的SQL计算 流式计算 机器学习库 图计算等 2 Spark集群环境的搭建 1 下载解压安装包
  • 骑士周游问题

    算法 1 骑士周游问题 马踏棋盘算法也被称为骑士周游问题 将马随机放在国际象棋的 8x8 棋盘中 0 7 0 7 的某个方格中 马鞍走起规则 马走日字 进行移动 要求每个方格只进入一次 走遍棋盘上全部64个方格 3 会使用到图的遍历算法 D
  • 【Ansible自动化运维实战】使用Asible批量部署Apache

    Ansible自动化运维实战 使用Asible批量部署Apache 一 本次实践目的 二 Plyabook内容 三 运行playbook 一 本次实践目的 将apache批量部署到被控节点 二 Plyabook内容 hosts node1
  • 嵌入式linux闹钟,嵌入式电子闹钟课程设计.doc

    嵌入式系统综合实验 题 目 基于嵌入式的数字闹钟系统设计 学生姓名 秦乙 学 号 20071309087 学 院 电子与信息工程学院 专 业 信息工程 二 一 年 十二 月 二十七 日 目 录 论文标题错误 未定义书签 摘要和关键词错误 未
  • 利用OpenCV的函数matchTemplate()实现在图像中寻找、检索、搜索模板图像【图像模板匹配】

    利用OpenCV的函数matchTemplate 实现在图像中寻找 检索 搜索模板图像 图像模板匹配 在博文 https www hhai cc thread 220 1 1 html 中我们利用直方图的反向投影原理可以寻找图像中具有某个直
  • 绝对干货!初学者也能看懂的DPDK解析

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由Willko发表于云 社区专栏 一 网络IO的处境和趋势 从我们用户的使用就可以感受到网速一直在提升 而网络技术的发展也从1GE 10GE 25GE 40GE 100GE的演变
  • Google pay默认支付(payment)应用之二 -TpHceService默认被disable原因

    根据上篇文章 GooglePay默认支付 payment 应用 之一 我们提到在GmsCore Google play services 核心套件里边声明的TpHceService开机后发现被disabled 那么原因是什么呢 一起来看看吧