android apk广告去除

今天实践了一下android应用程序中的广告的去除及再次植入,总结一下,以备日后查阅。

其实这个并没啥技术含量,也不是什么秘密,关键在于实践。于是乎,今天我找了有米(youmi)广告sdk做实验。其实还有一堆广告商,android就是这点乱,广告商成群,应用下载平台也很多,先拿其中一家的练练手吧。

youmi sdk 3.07链接: http://wiki.youmi.net/Youmi_Android_Banner_Version_3.07

sdk用户手册说的很清楚,而且操作也很简单,两步可以搞定。接下来我会用一个hello world来做个示例。

1. 在AndroidManifest.xml中加入权限设置及activity 和receiver ;

下面需要加入的代码。

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
    </uses-permission>
    <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
    <!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
    </uses-permission> -->
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT">
        
    </uses-permission>
        <activity
            android:configChanges="keyboard|keyboardHidden|orientation"
            android:name="net.youmi.android.AdActivity" />

        <meta-data
            android:name="YOUMI_CHANNEL"
            android:value="0" >
        </meta-data>
        
        <!-- 广告效果的接受器 -->
        <receiver android:name="net.youmi.android.YoumiReceiver">
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED"/>
                <action android:name="android.intent.action.PACKAGE_INSTALL"/>
                <data android:scheme="package"/>
            </intent-filter>
        </receiver>


2. 初始化与广告相关的两个类AdManager及Adview;AdManager一般在apk的第一个activity的onCreate()中初始化,估计也就是初始化youmi AD。Adview是在需要显示广告条的activity中初始化,具体实例化一个广告条。

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 //       setContentView(R.layout.activity_main);
        //  初始化Admanager
        AdManager.init(this,"537ef88653a2993c", "b9e10bcfe994a9fb", 30, false);
     LinearLayout layout=new LinearLayout(this); 
  layout.setOrientation(LinearLayout.VERTICAL); 
  layout.setBackgroundResource(R.drawable.bg);    
 //  初始化AdView
  AdView adView = new AdView(this); 
  LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);  
  layout.addView(adView, params); 
}


知道了如何使用广告sdk,那么去除第三方app的广告条也就不是什么难事了。

接下来通过APKDB反编译已经含有广告条的helloworld,

1. 删除AndroidManifest.xml中与广告相关的activity, meta-data及receiver.

2. 删除广告包/net/youmi
3. 在源码中删除与AdManager及Adview相关的代码

这里只是一个实例,提供了去除广告的方法,你可以在android市场上下载一个带广告的apk尝试一下吧,屡试不爽。

如果广告平台提供native SDK的话,会大大增加去除广告的难度,要知道直接修改so还是要花蛮大代价的。

 

你可能感兴趣的:(android去广告)