侃遍天下无二人 发表于 2021-10-9 00:27

去掉雷⚡模拟器桌面广告

# 前言
今天晚上看到干百度大佬发了领取QQ飞车下载奖励的工具,刚好我这两天才把QQ飞车下下来玩,用的是雷电模拟器,看大佬那么努力我也不能闲着,于是乎我把目光瞄向了雷电模拟器的桌面。

雷电模拟器桌面广告不多,但挺烦人,我怕一误触就给我下下来几个G的游戏,安装第三方桌面确实可以避开广告,但第三方桌面UI适配不好,边缘图标可能无法点击,同时这样也会失去了官方桌面提供的特色功能,导出apk,而这一功能我时而会用到。
![在这里插入图片描述](https://img-blog.csdnimg.cn/ba31399910fb45acb2005cfd8932a9be.png)
于是乎,直接去掉桌面广告成了最佳选择,正好雷电模拟器附带root权限,配合ES文件浏览器可以很方便地将修改后的安装包塞回系统,上图是去掉广告后的效果,请各位欣赏

**特别提示:为了防止修改失败导致无法进入桌面启动应用,请在开始前先安装一个第三方桌面,例如冷桌面、Nova Launcher**

# 环境准备
(https://down.52pojie.cn/Tools/Android_Tools/Apktool_2.5.0.jar)
(https://down.52pojie.cn/Tools/Android_Tools/jadx_v1.2.0.zip)
(https://d6.injdk.cn/oraclejdk/11/jdk-11.0.12_windows-x64_bin.exe)(貌似网站有防盗链,直接访问(https://injdk.cn)下载吧)

# 言归正传,我们开始了
首先,我们看看雷电模拟器的桌面到底对应哪个apk,我们知道,安卓喜欢管桌面叫启动器,加上系统应用里也就这位长得和安卓原生桌面的图标一模一样,因此,这个带有Launcher3字样的就是我们要找的家伙
![在这里插入图片描述](https://img-blog.csdnimg.cn/578fe95d237e46bd9f8d94c5bb1795b9.png?)
长按备份,就可以将其导出到backups目录下,再复制粘贴到 Pictures 里,就能从电脑目录将app取出了。

我们将取出的app放进jadx分析(不要被大佬们的骚操作吓住了,其实大多数app都是无加固甚至无压缩的,冲就对了),发现代码清晰地展现在我们眼前,这些带有ad字样的一看就不是好东西,先瞅几眼:
![在这里插入图片描述](https://img-blog.csdnimg.cn/c44d772a989a4b9b80556ccbac98a4f9.png)
好吧,这里面没看见加载广告的网络请求,那就换下一个,LdHotSeatAdImp明显是一个“实现类”,实现了啥接口我没看着,但毫无疑问干活的肯定是它,那就进去看看吧:
![在这里插入图片描述](https://img-blog.csdnimg.cn/46c3c3773943417682814268e3f7fc5d.png)
这不就一下子找到广告了吗,我们用浏览器打开这个链接,会发现一大串Json字符,就是这些所谓的“热门游戏”,链接放此处,有兴趣的同学自己观摩一下:http://res.ldmnq.com/ldmnq_file/mnq_ad_json

大家注意showLauncherIcon方法需要同时满足三个条件才会执行,只要其中一个不满足就会直接返回,那自然就不会加载到广告了:
```java
iconViews != null && !iconViews.isEmpty() && toastView2 != null
```
所以我们设法让这个函数在任何情况下都直接反回就可以了

分析完毕,接下来进入smail


```
java -jar Apktool_2.5.0.jar d Launcher3_7.1.2.apk
```
解包apk,找到com.ldmnq.LdHotSeatAdImp对应的smail,搜索showLauncherIcon,定位到方法开头:

```java
.method public showLauncherIcon(Landroid/content/Context;Ljava/util/List;Lcom/ldmnq/LdHotSeatAdImp$ToastView;I)V
    .locals 3
    .param p1, "context"    # Landroid/content/Context;
    .param p3, "toastView"    # Lcom/ldmnq/LdHotSeatAdImp$ToastView;
    .param p4, "iconHW"    # I
    .annotation system Ldalvik/annotation/Signature;
      value = {
            "(",
            "Landroid/content/Context;",
            "Ljava/util/List",
            "<",
            "Landroid/widget/TextView;",
            ">;",
            "Lcom/ldmnq/LdHotSeatAdImp$ToastView;",
            "I)V"
      }
    .end annotation

    .prologue
    .line 156
    .local p2, "iconViews":Ljava/util/List;, "Ljava/util/List<Landroid/widget/TextView;>;"
    if-eqz p2, :cond_0
      
    invoke-interface {p2}, Ljava/util/List;->isEmpty()Z

    move-result v0

    if-nez v0, :cond_0

    if-nez p3, :cond_1

    .line 157
    :cond_0
    return-void
```
这里代码明显比上篇分析复杂多了,我们只看前面一小部分,注意```if-eqz p2, :cond_0```就是说如果 p2为0(或false或null),进入cond_0,而cond_0就是return-void,也就是函数直接返回,可见这里就是对第一个条件的判断,而```if-nez v0, :cond_0```表示如果v0非零,函数直接返回,参考这条,我们只要在```if-eqz p2, :cond_0```后面加上一句```if-nez p2, :cond_0```,就能保证无论p2是不是0,函数都会立刻返回,上面的if条件相当于变成了
```java
if(iconViews != null && iconViews == null && !iconViews.isEmpty() && toastView2 != null)
```
显然是个永假式

修改好后,我们用
```
java -jar Apktool_2.5.0.jar b Launcher3_7.1.2
```
重新打包,再用
```
jarsigner -keystore debug.keystore -storepass android -signedjar signed.apk Launcher3_7.1.2.apk keyalias
```
重新给apk签名(记住这个免费的命令,可以省掉开mt会员的钱),去广告版的雷电桌面就做好了

# 安装
我觉得有必要单独交代一下安装步骤,简单写写:
首先,立刻安装一个第三方桌面作为过渡(除非你有信心一次成功或者特别熟悉启动应用的adb命令),并将我们破解的apk导入模拟器(此时还无法安装)
然后,授予ES文件浏览器Root权限,并借此卸载掉系统桌面
接下来,把我们导入的apk移动到 /app/Launcher3/ ,并重启模拟器
重启后,选择系统桌面进入,会发现底下的广告已经不见了,此后可以删除第三方桌面

最后再欣赏一下去掉广告的模拟器桌面吧,嗯,这才是去广告版后该有的样子
![在这里插入图片描述](https://img-blog.csdnimg.cn/1b2690eb3df24af48ee0fb424f23739b.png)

yyb1813 发表于 2021-10-9 22:06

侃遍天下无二人 发表于 2021-10-9 18:24

elevo 发表于 2021-10-9 17:20
好像还是有不停的弹出广告

如果是指新闻之类的,删掉ldnews.exe就行

wd12aa 发表于 2021-10-9 04:59

我来学习一下

zz1181 发表于 2021-10-9 06:20

挺详细啊,谢谢分享

horlyac 发表于 2021-10-9 07:09

看着大神们都这么优秀,我真的是很惭愧

xizihao 发表于 2021-10-9 07:27

大佬流批wow~ ⊙o⊙

tydzjing 发表于 2021-10-9 07:51

图文并茂,我要照着操作一下

jokaka 发表于 2021-10-9 07:53

技术贴 学习支持一下

andyle 发表于 2021-10-9 07:56

不错,条理步骤很清晰的样子

wapj2900958 发表于 2021-10-9 07:56


挺详细啊,谢谢分享

GuiXiaoQi 发表于 2021-10-9 08:17

好好學習大佬的技術
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 去掉雷&#9889;模拟器桌面广告