听书去、【转】TXT听书去广告

带头大哥 2018-5-25 657

声明:本文章仅做技术研究,请勿用于非法用途。

这个软件还不错但是有广告,我的手机安装了手机毒霸,也没能阻止其广告,遂有了自己手动去掉其广告的想法。
软件版本1.6,大家可在网上下载。

有两个目的:
一、去掉右边的应用推荐
二、去掉底部的广告


一、去掉右边的应用推荐:

1、用apktool反编译该程序,在\res\layout布局文件中搜索关键字:“应用推荐”,有三处地方,如下图:

其中在activity_main_book_list.xml 和activity_online.xml 的两处需要修改,还要一处不是我们要找的应用推荐所在的按钮,因此无需改动。
第一处:

1
<Button android:textSize="15.0sp" android:textColor="@color/red" android:layout_gravity="right|center" android:id="@id/btn_goods" android:background="@drawable/btn_goods_bg" android:layout_width="30.0dip" android:layout_height="wrap_content" android:text="应用推荐" />


第二处:

1
<Button android:textSize="15.0sp" android:textColor="@color/red" android:layout_gravity="right|center" android:id="@id/btn_goods" android:background="@drawable/btn_goods_bg" android:layout_width="30.0dip" android:layout_height="wrap_content" android:text="应用推荐" />


第三处:

1
<TextView android:textSize="18.0sp" android:textColor="#ff595959" android:ellipsize="marquee" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="3.0dip" android:layout_marginRight="3.0dip" android:text="免费实用应用推荐" android:singleLine="true" android:layout_weight="1.0" android:layout_centerInParent="true" />



把这两处的android:layout_width和android:layout_height的值都改成0dip,让这个按钮不可见,就OK了,这个很简单。

二、去掉底部的广告
1、在布局文件中容易发现广告的关键字adlayout,可以猜测是放广告的位置,那么在\res\layout布局文件中搜索关键字:“id/adlayout”共有5处,如下图:

1
<LinearLayout android:gravity="center_horizontal" android:id="@id/adlayout" android:layout_width="fill_parent" android:layout_height="wrap_content" />


同样高度和宽度都改成0dip,那么广告是看不见了,但是不能阻止程序加载广告,实际上广告是运行了,只是我们没让它显示出来,由于广告也很费手机的流量,所以我们要通过改变代码让广告不运行。

2、通过adlayout来找是程序的何处访问了该布局文件,我们可以在smali\com\aitingshu\R$id.smali里发现:
Line 8: .field public static final adlayout:I = 0x7f09000b
再次搜索smali文件中有哪些方法调用了0x7f09000b,发现在smali\com\aitingshu\base\BaseAdActivity.smali当中的.method protected final b()V方法调用了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
.method protected final b()V
    .locals 5
 
    const v4, 0x106000c
 
    const v0, 0x7f09000b
 
    invoke-virtual {p0, v0}, Lcom/aitingshu/base/BaseAdActivity;->findViewById(I)Landroid/view/View;
 
    move-result-object v0
 
    check-cast v0, Landroid/widget/LinearLayout;
 
    if-eqz v0, :cond_0
 
    new-instance v2, Landroid/common/d;
 
    sget-object v1, Landroid/common/c;->a:Landroid/common/c;
 
    invoke-direct {v2, p0, v1}, Landroid/common/d;-><init>(Landroid/app/Activity;Landroid/common/c;)V
 
    invoke-virtual {v2, v4}, Landroid/common/d;->setBackgroundColor(I)V
 
    invoke-virtual {v2}, Landroid/common/d;->a()V
 
    const/4 v1, 0x2
 
    invoke-virtual {v2, v1}, Landroid/common/d;->findViewById(I)Landroid/view/View;
 
    move-result-object v1
 
    check-cast v1, Landroid/widget/TextView;
 
    const/4 v3, -0x1
 
    invoke-virtual {v1, v3}, Landroid/widget/TextView;->setTextColor(I)V
 
    const/4 v1, 0x3
 
    invoke-virtual {v2, v1}, Landroid/common/d;->findViewById(I)Landroid/view/View;
 
    move-result-object v1
 
    check-cast v1, Landroid/widget/TextView;
 
    const v3, -0x777778
 
    invoke-virtual {v1, v3}, Landroid/widget/TextView;->setTextColor(I)V
 
    sget-object v1, Lcom/aitingshu/base/BaseAdActivity;->b:Landroid/widget/LinearLayout$LayoutParams;
 
    invoke-virtual {v0, v2, v1}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
 
    invoke-virtual {v0, v4}, Landroid/widget/LinearLayout;->setBackgroundColor(I)V
 
    const-string v0, ""
 
    const-string v1, "init ad done"
 
    invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
 
    :cond_0
    return-void
.end method


这段代码较长,实际上我们不需要关注代码具体做了什么,只要注意到尾部 "init ad done",表示广告初始化结束,那么之上的一段代码就是广告初始化的过程,我们要跳过去,不让广告初始化,在此方法的前面几句代码中,有一个条件跳转:
if-eqz v0, :cond_0
直接跳到方法尾部返回,因此,我们把if-eqz v0, :cond_0改成goto :cond_0,无条件跳转,越过广告初始化过程,保存文件,重新编译,签名,测试,成功去掉底部广告。


帖子版权声明 1、本帖标题:听书去、【转】TXT听书去广告
    本站网址:https://www.cto.ac.cn/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、本站资源大多存储在云盘,如发现链接失效,可以点: 这里进行反馈,我们会第一时间更新。
除非注明,本帖由带头大哥在本站《教程书籍》版块原创发布, 转载请注明出处!
最新回复 (1)
全部楼主
返回