东坡下载:内容最丰富最安全的下载站!

帮助|文件类型库|最新更新|下载分类|排行榜

开关定时系统增强磁盘工具安装制作内存工具卸载清除备份恢复系统其它桌面工具CPU相关虚拟机

首页系统工具手机系统 → apk去广告工具(利用apktool去除apk文件里的广告)

apk去广告工具(利用apktool去除apk文件里的广告)

apk去广告工具(利用apktool去除apk文件里的广告) apktool去除apk文件里的广告

  • 大小:3.3M
  • 语言:中文
  • 平台:WinXP
  • 更新:2013-01-15 17:21
  • 等级:
  • 类型:手机系统
  • 网站:暂无
  • 授权:免费软件
  • 厂商:
  • 产地:国产软件
好用好玩 50%(0)
坑爹 坑爹 50%(0)
软件介绍软件截图相关软件软件教程网友评论下载地址

相关推荐: apk去广告

    基本知识

    apk安装包的文件结构

    以知名桌面软件“LauncherPro”为例,apk安装包文件目录:

    文件目录如下:

    - META-INF

    - res

    - anim

    - color

    - drawable

    - drawable-hdpi

    - drawable-land

    - drawable-land-hdpi

    - drawable-mdpi

    - drawable-port

    - drawable-port-hdpi

    - layout

    - layout-land

    - layout-port

    - xml

    - AndroidManifest.xml

    - classes.dex

    - resources.arsc

    - 多数情况都要汉化的是resources.arsc、classes.dex和res文件夹里的***.xml文件。

    - META-INF文件夹里面存放的是证书文件,软件修改后需要将里面的证书文件删除(***.RSA、***.SF、***.MF三个文件)再重新签名,否则软件无法安装。

    - res文件夹里存放的大部分是软件所需的资源及布局文件(drawable存放资源、layout、xml存放布局文件***.xml),部分需要汉化的单词、语句会在这些***.xml文件里。

    - AndroidManifest.xml文件里包含了软件名称、版本、权限、引用的库文件等信息。极少数软件在这个文件里会有单词、语句需要汉化。

    - classes.dex文件是Java源码编译后的代码文件。通常该文件里都有单词、语句需要汉化。

    - resources.arsc文件是编译后的资源文件,大多数情况下,需要汉化的单词、语句绝大多数都在这个文件里,汉化的时候首先就要看这个文件。

    * 另外,一些需要汉化的***.png图片文件、***.html文件、***.txt文件可能会在assets文件夹或res/raw文件夹内。图片文件需要用Photoshop修改,html、txt文件可以直接用Notepad++ Portable文本编辑工具修改(不建议用系统自带的记事本,这东西杀伤无数...)。

    2、打包/解包

    apk安装包其实就是zip格式的压缩包,只是文件扩展名改成了apk而已,所以可以直接用解/压缩软件WinRAR打开,若你的系统没有关联apk文件,请先安装WinRAR,打开WinRAR——选项——设置——综合,在“用户自定义压缩文件扩展名”处填上apk,点“确定”保存即可。之后就可以直接双击以WinRAR打开apk安装包文件。

    汉化软件的时候,不需要把整个apk安装包解包,对于需要汉化的文件,如resources.arsc、classes.dex等文件,直接用鼠标拖出来,汉完后再拖进apk安装包后重新签名就行了(签名问题下面会讲到)。

    3、签名

    Android的软件也需要签名,不过和Symbian相比,却要简单方便得多,首先是不需要自己去申请证书,下载个签名工具就可以签名了。另外,我们从电子市场、软件官网下载来的软件都是已经签好名的,可以直接安装,这里讲到的签名,是针对软件安装包被修改过的情况(如汉化需要修改安装包内的文件,原来的签名文件就不能用了,所以要重新签名软件才能正常安装。),正常情况下不需要签名。

    现在Android可用的签名工具很多,想方便点的话可以用汉化浪子出品的AndroidResEdit,这个软件自带签名包(工具在帖子附件有提供)。

    签名方法很简单,删除原证书文件后(META-INF 文件夹内的***.RSA、***.SF、***.MF三个文件),打开AndroidResEdit——签名——签名apk文件,选择需要签名的apk安装包后点击“立即签名”即可。

    4、安装Java环境

    这个是最基本的,汉化相关的软件都需要用到Java环境,必须要安装,否则汉化过程中出现各种奇奇怪怪的问题不要问我。具体安装Java环境方法,可以百度一下。

    安装apktool并反编译apk文件

    要安装apktool,要下载两个文件

    在windows环境下:

    apktool-install-windows-r04-brut1.tar.bz2

    apktool1.4.1.tar.bz2

    在linux环境下:

    apktool-install-linux-r04-brut1.tar.bz2

    apktool1.4.1.tar.bz2

    下载主页 http://code.google.com/p/android-apktool/

    下载解压缩后,会得到三个文件,分别为aapt.exe, apktool.bat与apktool.jar。

    然后将这三个文件扔到C盘下的windows目录中,即可。

    要确认apktool已经正确安装,可以运行命令行窗口,直接键入apktool,可看到如图显示:

    apktool安装正确后,就可以反编译apk文件了。反编译apk文件,只需要在命令行窗口下输入如下所示的命令语句:

    apktool d D:\dartE.apk D:\dartE

    命令解析:

    -apktool d 表示要反编译apk文件

    -D:\dartE.apk 是apk文件存放的绝对路径

    -D:\dartE 是要输出的反编译文件的存储位置(注:apktool会自动创建一个叫做dartE的文件夹来存放反编译文件,而若在之前已经存在dartE文件夹,则apktool会提示文件夹已存在,而不会进行反编译)

    键入命令后回车,出现如下几行语句后,就会发现在D盘下已经多了一个叫做dartE的文件夹,里面存放的就是反编译后的文件。

    汉化APK文件

    汉化APK文件,主要的任务就是利用apktool将apk文件反编译,然后找到其语言包(语言包中均为*.xml文件),将里面的英文改为对应的中文即可。另外,有些英文可能被写死在了程序源代码中,汉化这部分就需要搜索并汉化利用apktool工具反编译classes.dex文件后得到的源码文件*.smali文件了。

    首先,讲解如何找到并汉化apk语言包。

    利用apktool反编译apk文件后,会得到如图的几个文件及文件夹

    其中,smali文件夹下存放反编译后的源码文件*.smali。而res文件夹下,则是反编译后的apk资源文件。其中包括程序用到的图片,声音,布局xml,及语言包等。因此,应点开res文件夹,会看到如图所示的几个文件夹

    其中用values-***命名的文件夹,就是我们要找的语言包!

    values是英文语言包,values-zh是中国地区语言包(包含港澳台及内地),values-zh-rCN是中文简体语言包(只包含内地),values-zh-rTW是中文繁体语言包(港澳台)。除此以外,其它地区的语言包都是精简的对象,可以不过多了解。

    * 若要汉的软件没有中文语言包,可以自己在res目录下新建values-zh-rCN和values-zh-rTW文件夹,再把values文件夹内的原arrays.xml、strings.xml语言文件复制到values-zh-rCN和values-zh-rTW文件夹,然偶将语言文件内的单词、语句修改成中文并保存即可。

    在values文件夹里,通常有arrays.xml、strings.xml等语言文件,要汉化这些文件,可以用Notepad++ Portable打开,如图:

    我们只需要将>*****间的*****内容改成中文就行了。

    对于写死在源码中的英文,这需要我们利用Notepad++工具,在smali文件夹下搜索相应的英文单词,然后再修改为中文了。

    Tips:

    - 若对软件的汉化熟悉后,用“文件查找”搜索要汉的单词、语句时,可以直接输入“const-string”,因为基本上这些单词、语句都在const-string后面,如图:

    - 对于刚刚接触汉化的人,源码汉化这部分最好先在汉完资源文件和xml文件后,把软件装上去查找没有汉完的单词、语句,然后再到smali文件夹下查找汉化,软件上没有的单词,就不要多汉,不然出问题了很难查找,smali重新打包后,那些中文是搜不出来的,所以很难修改。切记,宁可少汉,也不要多汉,即使少汉了,日后还可以补汉上去。

    其它文件类型汉化

    - 除了语言包、***.xml、**.smali这三中常见的文件类型需要汉化外,有些软件还有另外一些文件需要汉化,例如txt、html、png等文件。

    * 下面对这类文件的汉化作下讲解:

    ① txt汉化,txt之类的文本文件可以直接用Notepad++ 打开,难度不大,将里面的内容修改成中文后保存即可。这类文件大部分用作显示关于信息、帮助信息等,所以基本上都是一些整句句子。另外,若保存后在手机上这些内容显示乱码的话,可以尝试将文件格式更改为UTF-8格式(在Notepad++ Portable中打开格式——转为UTF-8编码格式)。

    ②html文件的汉化也和txt文件类似,可以用Notepad++ Portable汉化,完成后保存即可,需要注意的格式问题也和txt文件一样。另外要注意的是这类文件里面有代码,熟悉汉化后对这些代码自会有相应的了解,例如

    ,表示这段代码后的文字内容以红色、居中显示。

    ③ png图片文件通常都是用Photoshop来修改的,部分软件是通过调用图片来达到显示选项的目的,而单词又在图片上,所以需要通Photoshop将图片上的单词修改成中文,保存后再拖回apk安装包中替换原文件即可。这个只需要Photoshop上的一些最基本的操作,难度并不大,就不作过多阐述了。

    去除广告

    利用apktool去除apk文件里的广告,主要是要去做两个部分工作:

    让广告在程序里无法显示(但程序仍会下载广告,只是没有显示)

    禁止程序自动在后台访问广告源,这样做后程序才不会偷偷的在后台下载广告,浪费我们的手机流量。

    目前Android的广告供应商有两个,一个是Admob,一个是Google Ads,前者已被后者收购,但两者SDK依然独立。

    - 广告代码

    Admob的广告代码为:

    <COM.ADMOB.ANDROID.ADS.ADVIEW< p>

    android:id=”@+id/ad”

    android:layout_width=”fill_parent”

    android:layout_height=”wrap_content” />

    Google Ads的广告代码为:

    <COM.GOOGLE.ADS.GOOGLEADVIEW< p>

    android:id=”@+id/adview”

    android:layout_width=”wrap_content”

    android:layout_height=”wrap_content” />

    - 广告下载源

    Admob的广告下载源:

    http://r.admob.com/ad_source.php

    http://mm.admob.com/

    http://api.admob.com

    Google Ads的广告下载源:

    http://pagead2.googlesyndication.com/pagead/afma_load_ads.js

    下面就来讲解如何做这两部分工作。

    禁止显示广告

    由于程序的布局信息都写在了res文件夹下的*.xml文件中,因此,我们可以?直接利用Notepad++搜索*.xml文件中的广告代码,?再将其显示的宽,高设置为0像素即可。即将上面的广告代码中

    android:layout_width=”...” 设置为 android:layout_width="0.0dip"

    android:layout_height="..." 设置为 android:layout_height="0.0dip"

    ? 搜索广告代码:

    在res文件夹下,按广告代码的关键字"com.admob.android.ads.AdView"或

    "com.google.ads.GoogleAdView"搜索。(为了以防万一,干脆两个广告供应商都搜索一遍)

    搜索后,在屏幕下方会得到如下结果。

    双击黄色的部分,转到程序中的相应代码处,然后将宽,高设置为0.0dip即可!

    ?去除广告下载源

    在Android程序中,广告下载源是被写在代码中的。而利用apktool反编译程序后,其编译后的源代码文件即classes.dex文件,被反编译为*.smali文件,这是一种文本文件,可以用记事本打开查看里面的内容(但其内容并非原始的*.class文件内容,因此并不是真正的源代码文件)。尽管如此,我们仍可以在其中搜索到广告下载源网站,并将网址改为无效的地址,借此来阻止程序自动下载广告数据。

    apktool会将反编译得到的*.smali文件放在smali文件夹中。因此我们在smali文件夹下利用Notepad++搜索广告下载源网址(在文章开始处已经列出),并将其网址替换为"0.0.0.0"。

    得到的内容如下所示,同样双击黄色部分,跳到代码处,将其网址改成

    "0.0.0.0"

    至此,我们已经完成了apk文件去广告的整个过程。

    将程序重新打包并签名

    将apk文件汉化,并去除广告后,最后一步要做的,就是将程序重新打包为apk文件并签名使其能够在手机中安装。同样的,我们需要分为两步进行:?将程序重新打包 ?为打包后的apk文件签名

    ?将程序重新打包

    利用apktool,可以将程序重新打包。在命令行下,输入如下命令

    * 命令说明:apktool b D:\dart

    - apktool b为重新编译命令

    - D:\dart 为需要编译的目录(就是存放刚刚反编译后的文件的文件夹,名称可以自定义)

    重新打包后,我们再查看D:\dart目录,会发现其中多了一个名称为dist的文件夹,打开,我们重新打包的apk文件就在里面啦~~~

    ?为打包后的apk文件签名

    签名的话,我们用汉化浪子出品的AndroidResEdit软件,其自带签名功能,相当方便啊。只要进入软件,点选【签名】,然后选择要签名的apk文件,在点击【立即签名】,然后在选择签名后的apk文件存放路径,就好了!一切就是这么简单!!!

    PC官方
    安卓官方手机版
    IOS官方手机版

    apk去广告工具(利用apktool去除apk文件里的广告)截图

    下载地址

    apk去广告工具(利用apktool去除apk文件里的广告)

    热门评论
    最新评论
    第 1 楼 广东广州电信 网友 东坡网友 发表于: 2018/12/20 8:59:26
    拦截上网时经常弹出一些小窗口的广告,通过拦截广告提高上网的效率。拦截广告的途径可以通过流览器设置,还可以通过下载一些专门拦截广告的软件

    支持( 1 ) 盖楼(回复)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)

    编辑推荐

    报错

    请简要描述您遇到的错误,我们将尽快予以修正。

    转帖到论坛
    轮坛转帖HTML方式

    轮坛转帖UBB方式