APK逆向-添加统计和广告

1.下载最新版的apktool的jar包:
https://ibotpeaches.github.io/Apktool/install/
https://bitbucket.org/iBotPeaches/apktool/downloads
(可配置apktool运行环境,Mac os: 把下载的文件copy到/usr/local/bin目录下,修改权限为可执行chmod a+x apktool.jar apktool)
2.反编译:java -jar apktool.jar d xxx.apk
3.重新打包:java -jar apktool_2.2.4.jar b xxx。(在xxx目录dist目录下生成重新打包的apk文件)
(修改包名重新打包,注意有些布局自定义属性要更改对应包名,不然打包通不过)
4.签名:
生成签名文件, keytool -genkey -keystore test.keystore-alias test -keyalg RSA -validity 10000
签名 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore test.keystore -signedjar signed.apk t.apk 'test'
(最后的'test'要跟生成签名 -alias 后面的test保持一致的命名)
(上传GP要求zipalign,命令:/Library/Android/sdk/build-tools/23.0.3/zipalign -v 4 test.apk zip.apk)
5.修改smali文件
注意.line 行号不能乱(只是追踪堆栈有用),函数调用基类不能写错(例如 Activity)
6.加入友盟统计
com 目录下添加友盟反编译文件夹
Manifest中添加如下配置:



最好定义一个基类添加追踪代码,然后修改smail文件的基类。

7.加入AdMob广告.
com 目录下添加AdMod反编译文件夹
Manifest中添加如下配置:




跟添加友盟统计一样在基类里面初始化:

MobileAds.initialize(this, "YOUR_ADMOB_APP_ID");

最好通过自定义View

public class MyAdView extends LinearLayout {
    public MyAdView(Context context) {
        super(context);

    }

    public MyAdView(Context context, AttributeSet attrs) {
        super(context, attrs);
        addAdView(context);
    }

    public MyAdView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }


    private void addAdView(Context context){
        AdView adView = new AdView(context);
        adView.setAdSize(AdSize.BANNER);
        adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
        addView(adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        adView.loadAd(adRequest);
    }


}

你可能感兴趣的:(APK逆向-添加统计和广告)