第一部分:软件准备。
2 ?8 W$ p8 l& z; y c- E' n1.apktool————对apk执行分解(反编译)和合成(编译)的工具:
2.dex————对classes.dex分解(dump)和合成(build)的工具
S: Y: ^" x, p1 b$ h3.APKsign————apk签名工具
' O4 g) b; @. o1 l% Z3 T# h; P: b4.notepad++或者Em edit————文本编辑工具
# k: H- p3 ~3 @$ i5 B8 g" F# U/ d$ \4 o7 q5.java环境变量配置————apk签名需要
5 `; w! e. v2 _前三个工具打包为a.d.cn文件如下可下载:
8 z! z, Y1 @3 n' W3 h. t% C a7 x/ d5 D1 N2 X7 r1 V, v, P! jhttp://115.com/file/e6g54s9p#
$ K: Y5 [( }. l* a4 K; Z' D, B( Ba.d.cn.zip
http://115.com/file/e6g54wp4#
notepad 5.9_installer.zip
& L" z3 U9 ?) U4 S' O4 c
第二部分:去广告原理。. f, W6 W- K% Y( J. V8 I
先简单了解下软件的广告原理
一个软件若要显示广告,需要先导入SDK,并在AndroidManifest.xml中注册。`
Res\layout内的xml文件就包含有广告界面的配置代码,修改这些代码改变广告显示的大小就可以去除广告界面。
/ J. R S7 `# _# `只是单单不显示广告,软件还会下载广告所需的数据,那么就要修改代码来屏蔽广告下载源。
目前Android的广告供应商有两个,一个是Admob,一个是Google Ads,前者已被后者收购,但两者SDK依然独立。
+ ~8 Q$ |6 [/ g& K3 j0 `. z
+ E- l4 z/ B! |6 z9 j* v另外国内还有casee.cn,但十分不常见。
4 X5 L5 n* I, Z. A( Q; d4 b* K, ]7 D2 K4 YRes\layout内的xml文件广告代码一般格式如下:
; i4 q. ?; f$ m, w4 w6 k, L3 I # f& e" X1 G% {# |广告下载源 `
" I2 l" U/ I2 ]/ h2 Y' J5 ]+ \Admob的广告下载源:9 m- A0 o# V3 `9 c
http://r.admob.com/ad_source.php
" g. I) w3 ~3 t- z& ^8 X9 |
Q' ?6 p8 |5 h L+ @http://mm.admob.com
- E# o; J4 f' n% H4 F. r1 i4 H! Z
; D8 b9 a l+ u& e0 ` ihttp://api.admob.com
/ ?) v. r" P' x2 D: w3 z! L
8 y/ b, l. ~) L. _Google Ads的广告下载源:& b2 ]- t. s, @1 f; R i6 i1 ?
M7 M2 j7 G$ X, \! vhttp://pagead2.googlesyndication.com/pagead/afma_load_ads.js
r D# S: U/ }5 g1 C7 N4 w0 v( n
5 z! D+ R- `. ^* V7 q! S- ?6 M
5 m! @# F& L- _( @0 J以上广告源是比较
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
的广告源,但是现在市面的软件广告源十分不规范,即使屏蔽了上述广告源,软件还是可能显示广告的。% G; M D) |0 a; f: V第三部分:实际操作
: V" M' O. o+ ~4 ?6 W
+ F; }7 X* ^4 m$ r8 R2 Q% {
7 J* m5 V, a7 P2 m `1.准备apk I; Y/ u4 g+ H, Y2 y" b% M& y* A将apk文件放入apktool文件夹内(可改名,改得简单易于操作)。
% s# c( T. h: V4 p$ v
INCLUDEPICTURE "http://img.d.cn/android/android_atta/month_1108/110817211752a8f4589692fada.jpg" \* MERGEFORMATINET
2.反编译2 Z9 A, a( H5 c
' _' x% l s0 ^( e: Z. @运行run.bat文件,cmd窗口中输入命令 apktool d 1.apk 如图(解释:d为dump缩写,反编译的意思。)' ~' L v. `" a. F0 b- b0 o) e
4 S# |: q- L i* E
8 p4 V- i9 U* i6 O; P' c+ y/ w; d
" J. Z6 ` f3 G; P2 Y, D1 U: e. p
如下图为反编译成功。& v* `9 g' u, K E; f& \
8 \8 v1 e' ^: s( p3 n# m3 N3 L
' }6 Z2 r, w3 R3 e
" g: {# d: O- |, N# p然后将在apktool文件夹中生成一个文件夹,名称为apk的名称,这个文件夹里的文件就是组成apk的文件。
1 b: O' j6 A& S/ B6 M" r2 i! k, I! E" }) k3.修改3 B5 p1 T* K/ r$ D9 f9 {( u3 K6 o
打开notepad++,按ctrl+F,调出搜索对话框,如图:
5 T0 h7 X% n+ H; K y* l- j
& ?7 t$ Y5 o2 e, ^% _4 ?0 o3 W1 _. B3 v9 w. D5 b2 R, a记得要搜索目录,选第三个选项卡。3 |+ F2 u0 t0 m" [1 q! T6 |; ]$ U我们需要搜索的关键词一般主要有以下几个:
) b9 [: @5 ?* d# c: j1 t4 V4 ~! s
4 D! N3 e$ P( W2 _9 a$ ladmob.com admob google.com http://
; B1 S1 R0 _) Z2 w* T [& v, e如下图:notepad++下面会显示搜索出来的文件位置,点击跳转到相应的文件,一般为*.smali文件。
) D+ V9 x0 R5 R U( K; _- v
# y# F% i% r d; f/ g5 q0 k3 Z) E4 e& @ \" t: a. i8 {然后我们将http:// 开头的字符串改成0.0.0.0或者127.1.1.1等无效的ip。使广告源无法访问。改完记得保存文件。4 T7 @" \: x- ?& H
# N3 G! K q6 q+ L% z i7 Y如果搜索的是非IP地址,那么将字符串该乱即可,例如google.com改成a.com等,个人经验而谈。
: X$ b3 M2 b+ J* G$ }. Z4 V$ v
* W: }! Z) u# _* T4 A A
^) y; a- z" G% F/ o5 A8 Z
) e- p+ a) {3 ], `* ]- H4.编译8 f& o4 H: g7 y) f# `$ r保存文件后将进行编译。在CMD命令提示符后输入命令 apktool b 1 2.apk (解释:b为build缩写,编译的意思。)) m9 S- \4 E4 u2 h9 D
. q4 t: h1 {1 x# b- ^+ I$ l如上图过程为编译成功,此时将在apktool文件夹中生成一个*.apk文件,这个就是编译后得到的文件。( C- C% B& J/ s0 o5 J% P
5.签名) U0 N, Q7 H: J7 U( }
5 F+ b9 \/ @' R' H! O: Z运行APKsign目录下的APKsign.exe,得到窗口:
, F. C. \% B1 f3 f! `$ c# {' z, ]9 X / y6 Y9 X9 W9 a2 v7 k0 t: I
; d' ?' s' r% o2 g. j! y
选择好APK所在目录,签名后文件爱你保存的目录,点击制作签名。稍片刻会有个签名成功的确认按钮,点击确认结束。
& } h& t; p& n. S) Y& y6 ]
3 R0 W6 w9 r2 X) z得到签名后的apk文件。接下来安装测试即可。