Android静默广播检测-安装卸载广播监听

接收到通信管理局通知,应用存在后台静默监听安装、卸载等广播。

查看通信管理局的检测报告,应该是应用注册这三个广播

android.intent.action.PACKAGE_ADDED
android.intent.action.PACKAGE_REPLACED
android.intent.action.PACKAGE_REMOVED

全局查询后也没发现自己的应用是在什么时候注册的,那问题肯定就归于第三方sdk了。

比如某某sdk在初始化时注册了这三个广播后,通信管理局的测试人员将app切换至后台,再对设备上的应用进行随机删除,我们的应用将会收到系统的广播通知,那么恭喜各位的应用就违规了。

排查思路复写一下自己application的attachbasecontext方法,然后通过看日志来归因:

/**
 * @author maipian
 * @description 描述
 * @date 8/15/24
 */
public class MyApplication extends Application {
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(new MyContextWrapper(base));
    }
}
/**
 * @author maipian
 * @description 描述
 * @date 8/15/24
 */
public class MyContextWrapper extends ContextWrapper {

    private static final String TAG = "MyContextWrapper";

    public MyContextWrapper(Context base) {
        super(base);
    }

    @Override
    public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
        Log.d(TAG, "-------注册平台包名:" + receiver + "开始-------");
        printAction(filter, 0);
        Log.d(TAG, "-------注册平台包名: " + receiver + "结束-------");
        return super.registerReceiver(receiver, filter);
    }

    @Override
    public void unregisterReceiver(BroadcastReceiver receiver) {
        Log.d(TAG, "Unregistering receiver: " + receiver);
        super.unregisterReceiver(receiver);
    }

    private void printAction(IntentFilter filter, int i) {
        try {
            String s = filter.getAction(i);
            Log.d(TAG, "-------注册的广播行为: " + s);
            i++;
            printAction(filter, i);
        } catch (Exception e) {
        }
    }
}

这时候我们将看到是哪家的sdk在初始化时就注册了相关广播,然后去提交工单询问怎么关闭即可

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值