屏蔽GMS的Dialog提示

作者: LiuJP | 来源:发表于2019-03-04 14:25 被阅读8次

接到一个活儿,是让屏蔽谷歌gms的dialog提示,屏蔽游戏中的ShareButton,CloudSaveButton,屏蔽UnityAd
1、屏蔽CloudSaveButton,在相应的未知加入以下IL:

805 ldarg.0 
806 ldfld   UnityEngine.UI.Button MainMenuController::CloudSaveButton
811 callvirt    UnityEngine.GameObject UnityEngine.Component::get_gameObject()
816 ldc.i4.0    
817 callvirt    System.Void UnityEngine.GameObject::SetActive(System.Boolean)

2、屏蔽UnityAd,也是找到相应ContinueClick()方法,修改判断逻辑

3、屏蔽Dialog:

 com.google.android.gms.common.GoogleApiAvailability.zza();

返回是Dialog;
修改smali,返回null;

hook代码:

  try {
        Method methodzza = null;
        Class<?> a   =target.getClassLoader().loadClass("com.google.android.gms.common.GoogleApiAvailability");
        for (Method method : a.getDeclaredMethods()) {
            if ("zza".equals(method.getName())) {
                Log.e("gamea", ":" + method.getName() + ":" + method.getReturnType().getName());
                if (method.getReturnType().getName().equals("android.app.Dialog")) {
                    methodzza = method;
                }
            }
        }
         if (methodzza != null) {
            DexposedBridge.hookMethod(methodzza, new XC_MethodHook() {
                @Override
                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                    super.beforeHookedMethod(param);
                    Log.e("gamea", "param:" + param.args[2]);
                }

                @Override
                protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                    super.afterHookedMethod(param);
                    Log.e("gamea", ":" + param.getResult());
                    param.setResult(null);
                }
            });
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

若是华为手机,手机上装有gms,还需要屏蔽PackageManager的“com.google.android.gms”查找
在这个app 中的位置是

com.google.android.gms.common.GoogleApiAvailability.isGoogleGmsAvailability();

相关文章

  • 屏蔽GMS的Dialog提示

    接到一个活儿,是让屏蔽谷歌gms的dialog提示,屏蔽游戏中的ShareButton,CloudSaveButt...

  • dialog无显示问题

    测试提交某个dialog没显示的问题,因为做的dialog是屏蔽了home键的,然后不可关闭,所以,除非自己点确定...

  • artDialog的一般用法

    1.dialog弹出短暂的提示窗口: 2.dialog弹出确认窗口: 3.dialog弹出窗口加载新的页面: 7....

  • Dialog,Toast和Snackbar

    一、Dialog,Toast和Snackbar 1、Dialog:当提示信息至关重要的时候,并且需要由用户做出决定...

  • Flutter-25- 轻量级提示

    轻量级操作提示 其实Flutter中有很多提示控件,比如Dialog、Snackbar和BottomSheet这些...

  • android之GMS介绍

    GMS GMS全称为Google Mobile Service,即谷歌移动服务。 GMS是Google开发并推动A...

  • Android AutoMotive系统预置GMS

    GMS介绍 GMS全称为GoogleMobile Service,即谷歌移动服务。GMS是Google开发并推动A...

  • Material Design 设计语言(三)提示

    提示(Tips) MD在组件中,提到了三种提示控件,分别是:Snackbar、Banner、Dialog。此前的 ...

  • 组件---Dialog

    什么是Dialog: dialog是在当前界面弹出的一个小窗口,用于显示重要提示信息。 生命周期: 生命周期方法:...

  • 关闭dialog时同时关闭activity

    背景 按照设计,做了一个透明的activity,里面包含了一个dialog,用于做弹出提示。当dialog关闭时(...

网友评论

    本文标题:屏蔽GMS的Dialog提示

    本文链接:https://www.haomeiwen.com/subject/ktqiuqtx.html