此篇文章发布距今已超过60天,您需要注意文章的内容或图片是否可用!
通报内容:APP后台静默时,存在监听用户手机安装、卸载应用情况,超出功能实现和信息收集必要范围通信管理局的测试人员通常将app切换至后台,再对设备上的应用进行随机删除,应用将会收到系统的广播通知,那么各位的应用就违规了
android.intent.action.PACKAGE_ADDED android.intent.action.PACKAGE_REPLACED android.intent.action.PACKAGE_REMOVED |
先排查项目中是否注册了上面几个广播,如果项目中没有注册,就是依赖的三方SDK偷偷注册收集,下面介绍怎么排查是哪个SDK进行监听上报
1.1 直接贴代码,可复制
public class MyApp extends DaggerApplication {
private static MyApp instance; @Override protected void attachBaseContext(Context base) { super.attachBaseContext(new PackageListenerContextWrapper(base)); }
}
|
import android.content.BroadcastReceiver; import android.content.Context; import android.content.ContextWrapper; import android.content.Intent; import android.content.IntentFilter; import android.util.Log; public class PackageListenerContextWrapper extends ContextWrapper {
private static final String TAG = "PackageListener"; public PackageListenerContextWrapper(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) { e.printStackTrace(); } } } |
1.2.测试,根据包名确定SDK服务商
将app切换至后台,再对设备上的应用进行随机删除,或者adb安装应用,观察控制台是否有广播行为打印android.intent.action.PACKAGE_ADDED、android.intent.action.PACKAGE_REPLACED、android.intent.action.PACKAGE_REMOVED2.2 如果是三方sdk问题,先联系sdk服务商,沟通次问题,如果有新版SDK已修复,升级即可。没有修复就换个sdk吧。。。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
ZhouSa.com-周飒博客
还没有评论,来说两句吧...