我们正在努力,需要集成第三方库的任意数量到一个更大的框架的广告中介项目。 所有图书馆都有联系外部服务器,并返回一个有效的Android布局或失败的常见行为,但我们可以假设在其内部功能没有知识或控制。
由第三方库进行服务器的交互是从框架/应用程序,发起呼叫序列的立场不透明。 这潜在地允许实现访问和传输基于一个应用程序的权限的敏感信息的任何库。
我们的目标是为调用进程能够捕捉才能通过到网络的框架/应用级由集成库所取得的HTTP请求。 理想的情况是将处理和潜在地阻塞请求的能力。 另一种方法是找到一种方法来记录请求和可操作的分析提供反馈。
我没有找到任何东西在文档或搜索论坛很有帮助。 这是可能的Android中?
你会考虑第二辅助性应用,而无需权限,这需要的第三方库的插件。 你的主应用程序通过AIDL与你的助手应用程序内进行通信。 该第三方库只能给像“load_ad的https:// ...”抽象的命令。 实际的请求是由您的主应用程序来完成。 或者到AIDL的第三方库,可以播放他们的命令(见广播接收器 )。
第二个应用程序使用相同的android:sharedUserId并创造只能被授予您的主应用程序权限。 通过这种方式,辅助性的应用程序是你的主应用程序的唯一可能的客户。
创建自定义的URLStreamHandlerFactory和URLStreamHandler的,并通过调用URL.setURLStreamHandlerFactory从应用程序的onCreate()设置它(这)将允许捕捉甚至第三方库的所有网络流量。
文章来源: How to hook/monitor network calls made by integrated third party libraries?