diff --git a/README.md b/README.md
index 8460f7f..cffb638 100644
--- a/README.md
+++ b/README.md
@@ -1,89 +1,276 @@
-## AndroidHttpCapture网络诊断工具 [](https://travis-ci.org/JZ-Darkal/AndroidHttpCapture)
-是一款针对于移动流量劫持而开发的手机抓包软件,可以当作是Android版的‘Fiddler’
-主要功能包括:手机端抓包、PING/DNS/TraceRoute诊断、抓包HAR数据上传分享
-使用前请确保手机HTTP代理的关闭
-### [Demo APK下载](http://h5.darkal.cn/har/demo.apk)
+# AndroidHttpCapture
-### [点击查看操作手册](http://h5.darkal.cn/har/guide/widget.guide.html)
+AndroidHttpCapture is an Android network diagnostic and packet capture tool designed for mobile traffic debugging. It can be considered a mobile version of **Fiddler** for Android.
+It supports on-device HTTP/HTTPS capture, HAR export, DNS/Ping/TraceRoute diagnostics, response modification, host configuration, WebView debugging, and system proxy capture for other apps.
-### 功能简介
-1. HTTP/HTTPS抓包
-当用户通过AndroidHttpCapture访问页面的时候,所有的http请求都会被记录下来,然后这些请求包可以预览、分享、上传(上传接口的网址需自行在MainActivity修改)。
-#### 第一次进入程序需要安装CA证书以便进行HTTPS抓包(原理同fiddler,MITM中间人)不安装证书的话无法抓取HTTPS的请求
-预览页面可以查看从APP启动起所有网络请求数据,实现了按分页过滤、URL搜索功能,并可清空所有数据包
-预览的内容包括Request Header、Request Cookie、Request Content、Response Header、Response Cookie、Response Content
-Content内容如果为JSON将会自动格式化显示
-
-
-分享功能将抓包生成的所有数据包打包为har文件并压缩为zip,支持分享到微信、QQ等
+> **Note**
+> Before using AndroidHttpCapture, please make sure the phone’s existing HTTP proxy settings are disabled.
-2. 返回包注入
-支持修改流量返回包(该版本暂时只支持http的修改)
-
-
+---
-3. 环境切换
-支持切换模拟为微信、手Q,默认为普通浏览器。
-
+## Features
-4. 多样性输入:导航、地址栏、扫一扫、schema呼起
-支持地址栏直接输入地址,扫扫描二维码,以及schema呼起app并打开目标页面。
-schema的协议格式为:jdhttpmonitor://webview?param={'url'='http://www.darkal.cn'}
+### 1. HTTP/HTTPS Capture
-5. Host配置
-可以配置各域名的host
-
+When users open a webpage through AndroidHttpCapture, all HTTP requests will be recorded. Captured packets can be previewed, shared, and uploaded.
+The upload endpoint should be configured manually in `MainActivity`.
-6. 查看console.log日志
-
+On first launch, users need to install the CA certificate in order to capture HTTPS traffic. The principle is the same as Fiddler: HTTPS traffic is captured through a MITM proxy.
+If the certificate is not installed, HTTPS requests cannot be captured.
-7. 网络工具
-目前AndroidHttpCapture集成了常见的网络工具,如dns,ping,以及设备信息
-
+For newer Android versions, the app may not be able to open the certificate installation page automatically. In that case, please install the certificate manually:
-8. 设置系统代理,监听其他app请求包
-当将用户手机的代理服务器设置为127.0.0.1:8888时,可以对其他app(例如微信)的HTTP数据进行抓包
-(此时AndroidHttpCapture就是一个手机上的fiddler)
-
+```text
+Settings -> Security & Lock Screen -> Encryption & Credentials -> Install Certificate
+```
-### Q & A
-1. 分享的http包如何查看和分析?
- 分享的文件解压后为.har文件,可以通过fiddler方式或者在线工具进行分析。
- Fiddler方式需要先将包导到电脑上,然后使用fiddler导入该包:Import Sessions->Select Import Format ->HTTPArchive ->选择包,即可
- 在线工具外网:http://h5.darkal.cn/har/ 只需要将包拖入此工具即可分析
+Certificate path:
-### 已知BUG
-1. 信任所有的服务器证书不做校验
-~~2. 开启返回包注入功能后,https返回的部分页面存在 err_CONTENT_LENGTH_MISMATCH 错误
~~(看起来似乎是解决了,待用户反馈)
+```text
+/har/littleproxy-mitm.pem
+```
-#### 如果觉得工具好用的话请多多star以及Pull requests
支持我喝杯咖啡请扫描下面的二维码,谢谢(ง •̀_•́)ง
-
+The preview page shows all network requests captured since the app started. It supports pagination, URL search, filtering, and clearing captured packets.
-#### 相关技术交流可以加入QQ群:816839175
-
+The captured data includes:
-### 致谢
-AndroidHttpCapture基于Netty、browsermob-proxy来实现核心抓包的功能
-Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
-https://github.com/netty/netty
-由于Android5.0+不支持Provider 为JKS的证书,所以逆向修改了Netty库的证书部分适配Android系统(netty_android.jar)
+- Request Headers
+- Request Cookies
+- Request Body
+- Response Headers
+- Response Cookies
+- Response Body
-A free utility to help web developers watch and manipulate network traffic from their AJAX applications.
-https://github.com/lightbody/browsermob-proxy
-修改了多处browsermob-proxy的源码适配Android系统
+If the content is JSON, it will be automatically formatted for easier reading.
+
+The share feature packages all captured packets into a HAR file and compresses it as a ZIP file, which can then be shared through apps such as WeChat, QQ, or other supported Android sharing targets.
+
+---
+
+### 2. Response Injection
+
+AndroidHttpCapture supports modifying response traffic.
+
+> Current limitation: this version only supports HTTP response modification.
+
+---
+
+### 3. Environment Switching
+
+The app supports switching between different simulated environments, including:
+
+- Normal browser
+- WeChat
+- QQ
+
+The default environment is a normal browser.
+
+---
+
+### 4. Multiple Input Methods
+
+AndroidHttpCapture supports multiple ways to open a target page:
+
+- Navigation menu
+- Address bar
+- QR code scanning
+- Schema launch
+
+Schema format:
+
+```text
+jdhttpmonitor://webview?param={'url'='http://www.darkal.cn'}
+```
+
+---
+
+### 5. Host Configuration
+
+The app supports custom host configuration for specific domains.
+
+This is useful for testing different backend environments or redirecting domain traffic during development.
+
+---
+
+### 6. Console Log Viewer
+
+AndroidHttpCapture can display `console.log` output from the WebView page, making it easier to debug hybrid apps and mobile web pages.
+
+---
+
+### 7. Network Tools
+
+AndroidHttpCapture includes several common network diagnostic tools, such as:
+
+- DNS lookup
+- Ping
+- Device information
+
+These tools help developers quickly diagnose network issues directly on the Android device.
+
+---
+
+### 8. System Proxy Capture
+
+When the phone’s proxy server is set to:
+
+```text
+127.0.0.1:8888
+```
+
+AndroidHttpCapture can capture HTTP traffic from other apps, such as WeChat.
+
+In this mode, AndroidHttpCapture works like a mobile Fiddler running directly on the phone.
+
+> **Security Notice**
+> Please only use this feature for debugging your own apps, test environments, or traffic that you are authorized to inspect.
+
+---
+
+## Demo APK
+
+Demo APK download:
+
+```text
+Please add your APK download link here.
+```
+
+---
+
+## User Guide
+
+Operation manual:
+
+```text
+Please add your user guide link here.
+```
+
+---
+
+## Q & A
+
+### How can I view and analyze shared HTTP packets?
+
+The shared file is a compressed ZIP file. After extracting it, you will get a `.har` file.
+
+You can analyze the HAR file using Fiddler or an online HAR viewer.
+
+#### Fiddler
+
+Import the HAR file into Fiddler:
+
+```text
+Import Sessions -> Select Import Format -> HTTPArchive -> Select HAR file
+```
+
+#### Online HAR Viewer
+
+You can also use an online HAR viewer:
+
+```text
+http://static.hk.darkal.cn/har/
+```
+
+Drag the HAR file into the tool to analyze it.
+
+---
+
+## Known Issues
+
+1. The app currently trusts all server certificates without validation.
+2. When response injection is enabled, some HTTPS pages may encounter:
+
+```text
+ERR_CONTENT_LENGTH_MISMATCH
+```
+
+This issue appears to have been improved, but more user feedback is needed.
+
+---
+
+## Implementation
+
+AndroidHttpCapture is built on top of **Netty** and **browsermob-proxy**.
+
+### Netty
+
+Netty is an asynchronous event-driven network application framework for rapid development of maintainable, high-performance protocol servers and clients.
+
+Project link:
+
+```text
+https://github.com/netty/netty
+```
+
+Because Android 5.0+ does not support certificates with the `JKS` provider, part of Netty’s certificate implementation was reverse-modified to adapt it to Android.
+
+The modified library is:
+
+```text
+netty_android.jar
+```
+
+### browsermob-proxy
+
+browsermob-proxy is a free utility that helps web developers watch and manipulate network traffic from AJAX applications.
+
+Project link:
+
+```text
+https://github.com/lightbody/browsermob-proxy
+```
+
+Several parts of browsermob-proxy were modified to make it compatible with Android.
+
+---
+
+## Contributing
+
+Contributions are welcome.
+
+If you find this project useful, please consider:
+
+- Starring the repository
+- Reporting bugs
+- Submitting pull requests
+- Improving documentation
+- Sharing feedback
+
+---
+
+## Support
+
+If you like this project and want to support its development, you can buy me a coffee.
+
+```text
+Please add your donation QR code or support link here.
+```
+
+---
+
+## Disclaimer
+
+AndroidHttpCapture is intended for legitimate development, debugging, testing, QA, and educational purposes.
+
+Do not use this tool to capture, inspect, modify, or distribute network traffic without proper authorization. The author is not responsible for any misuse of this software.
+
+---
+
+## License
+
+MIT License
-MIT License
Copyright (c) 2016 AndroidHttpCapture
Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+of this software and associated documentation files, to deal in the Software
+without restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies of the
+Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
diff --git a/app/build.gradle b/app/build.gradle
index 73adbe9..c080f93 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -8,21 +8,24 @@ android {
storeFile file('./darkal.jks')
storePassword '333333'
v1SigningEnabled true
- v2SigningEnabled false
+ v2SigningEnabled true
}
}
dexOptions {
javaMaxHeapSize "4g"
}
- compileSdkVersion 27
- buildToolsVersion '27.0.3'
- dataBinding {
+ compileSdkVersion 34
+ dataBinding {
enabled = true
}
+ buildFeatures {
+ dataBinding true
+ viewBinding true
+ }
defaultConfig {
applicationId "cn.darkal.networkdiagnosis"
- minSdkVersion 14
- targetSdkVersion 22
+ minSdkVersion 21
+ targetSdkVersion 34
versionCode 31
versionName "3.2.31"
// Enabling multidex support.
@@ -70,16 +73,17 @@ dependencies {
testImplementation 'junit:junit:4.12'
implementation 'com.jakewharton:butterknife:8.8.1'
+// annotationProcessor 'com.android.databinding:compiler:3.1.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
implementation 'com.android.databinding:library:3.1.3'
implementation 'com.android.databinding:adapters:3.1.3'
implementation 'com.squareup.okhttp3:okhttp:3.4.1'
- implementation 'com.android.support:appcompat-v7:27.1.1'
- implementation 'com.android.support:design:27.1.1'
- implementation 'com.android.support:support-v4:27.1.1'
- implementation 'com.android.support:gridlayout-v7:27.1.1'
+ implementation 'com.android.support:appcompat-v7:28.0.0'
+ implementation 'com.android.support:design:28.0.0'
+ implementation 'com.android.support:support-v4:28.0.0'
+ implementation 'com.android.support:gridlayout-v7:28.0.0'
// compile 'com.android.support:cardview-v7:24.0.0'
- implementation 'com.android.support:support-annotations:27.1.1'
+ implementation 'com.android.support:support-annotations:28.0.0'
implementation 'com.android.support:multidex:1.0.3'
// littleproxy及其依赖
implementation('net.lightbody.bmp:littleproxy:1.1.0-beta-bmp-17') {
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 4a4e5fa..97ec900 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -21,7 +21,7 @@
-dontpreverify # 混淆时是否做预校验
-verbose # 混淆时是否记录日志
-keepattributes *Annotation* # 保持注解
--ignorewarning # 忽略警告
+#-ignorewarning # 忽略警告
-dontoptimize # 优化不优化输入的类文件
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所采用的算法
diff --git a/app/src/androidTest/java/cn/darkal/networkdiagnosis/ApplicationTest.java b/app/src/androidTest/java/cn/darkal/networkdiagnosis/ApplicationTest.java
index 6873d0e..4d3d1a6 100644
--- a/app/src/androidTest/java/cn/darkal/networkdiagnosis/ApplicationTest.java
+++ b/app/src/androidTest/java/cn/darkal/networkdiagnosis/ApplicationTest.java
@@ -1,13 +1,13 @@
-package cn.darkal.networkdiagnosis;
+// package cn.darkal.networkdiagnosis;
-import android.app.Application;
-import android.test.ApplicationTestCase;
+// import android.app.Application;
+// import android.test.ApplicationTestCase;
-/**
- * Testing Fundamentals
- */
-public class ApplicationTest extends ApplicationTestCase {
- public ApplicationTest() {
- super(Application.class);
- }
-}
\ No newline at end of file
+// /**
+// * Testing Fundamentals
+// */
+// public class ApplicationTest extends ApplicationTestCase {
+// public ApplicationTest() {
+// super(Application.class);
+// }
+// }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 857a7a5..43f4b1d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,21 +2,25 @@
-
+
-
-
-
+
+
+
+
+
+
-
-
+
+
@@ -87,11 +94,13 @@
@@ -105,13 +114,17 @@
+ android:name=".Activity.HarDetailActivity"
+ android:exported="false" />
+ android:name=".Activity.JsonPreviewActivity"
+ android:exported="false" />
-
+
\ No newline at end of file
diff --git a/app/src/main/java/cn/darkal/networkdiagnosis/Activity/ChangeFilterActivity.java b/app/src/main/java/cn/darkal/networkdiagnosis/Activity/ChangeFilterActivity.java
index 5c75f26..b149581 100644
--- a/app/src/main/java/cn/darkal/networkdiagnosis/Activity/ChangeFilterActivity.java
+++ b/app/src/main/java/cn/darkal/networkdiagnosis/Activity/ChangeFilterActivity.java
@@ -14,15 +14,13 @@
import android.widget.RelativeLayout;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import cn.darkal.networkdiagnosis.Adapter.ContentFilterAdapter;
-import cn.darkal.networkdiagnosis.Bean.ResponseFilterRule;
+import cn.darkal.networkdiagnosis.bean.ResponseFilterRule;
import cn.darkal.networkdiagnosis.R;
import cn.darkal.networkdiagnosis.SysApplication;
-import cn.darkal.networkdiagnosis.Utils.DeviceUtils;
import cn.darkal.networkdiagnosis.Utils.SharedPreferenceUtils;
public class ChangeFilterActivity extends AppCompatActivity {
diff --git a/app/src/main/java/cn/darkal/networkdiagnosis/Activity/MainActivity.java b/app/src/main/java/cn/darkal/networkdiagnosis/Activity/MainActivity.java
index b6ff32c..bdc9419 100644
--- a/app/src/main/java/cn/darkal/networkdiagnosis/Activity/MainActivity.java
+++ b/app/src/main/java/cn/darkal/networkdiagnosis/Activity/MainActivity.java
@@ -74,7 +74,7 @@
import butterknife.BindView;
import butterknife.ButterKnife;
import cn.darkal.networkdiagnosis.Adapter.PageFilterAdapter;
-import cn.darkal.networkdiagnosis.Bean.PageBean;
+import cn.darkal.networkdiagnosis.bean.PageBean;
import cn.darkal.networkdiagnosis.Fragment.BaseFragment;
import cn.darkal.networkdiagnosis.Fragment.BackHandledInterface;
import cn.darkal.networkdiagnosis.Fragment.NetworkFragment;
diff --git a/app/src/main/java/cn/darkal/networkdiagnosis/Adapter/ContentFilterAdapter.java b/app/src/main/java/cn/darkal/networkdiagnosis/Adapter/ContentFilterAdapter.java
index 2ca0355..1d2a7ac 100644
--- a/app/src/main/java/cn/darkal/networkdiagnosis/Adapter/ContentFilterAdapter.java
+++ b/app/src/main/java/cn/darkal/networkdiagnosis/Adapter/ContentFilterAdapter.java
@@ -12,14 +12,9 @@
import java.util.List;
import cn.darkal.networkdiagnosis.Activity.ChangeFilterActivity;
-import cn.darkal.networkdiagnosis.Activity.MainActivity;
import cn.darkal.networkdiagnosis.BR;
-import cn.darkal.networkdiagnosis.Bean.PageBean;
-import cn.darkal.networkdiagnosis.Bean.ResponseFilterRule;
-import cn.darkal.networkdiagnosis.Fragment.PreviewFragment;
+import cn.darkal.networkdiagnosis.bean.ResponseFilterRule;
import cn.darkal.networkdiagnosis.R;
-import cn.darkal.networkdiagnosis.SysApplication;
-import cn.darkal.networkdiagnosis.Utils.DeviceUtils;
/**
* Created by Darkal on 2016/9/5.
diff --git a/app/src/main/java/cn/darkal/networkdiagnosis/Adapter/PageFilterAdapter.java b/app/src/main/java/cn/darkal/networkdiagnosis/Adapter/PageFilterAdapter.java
index 275a3e9..9fe647e 100644
--- a/app/src/main/java/cn/darkal/networkdiagnosis/Adapter/PageFilterAdapter.java
+++ b/app/src/main/java/cn/darkal/networkdiagnosis/Adapter/PageFilterAdapter.java
@@ -9,7 +9,7 @@
import java.util.List;
-import cn.darkal.networkdiagnosis.Bean.PageBean;
+import cn.darkal.networkdiagnosis.bean.PageBean;
import cn.darkal.networkdiagnosis.BR;
import cn.darkal.networkdiagnosis.R;
diff --git a/app/src/main/java/cn/darkal/networkdiagnosis/SysApplication.java b/app/src/main/java/cn/darkal/networkdiagnosis/SysApplication.java
index 88eff04..b085ca3 100644
--- a/app/src/main/java/cn/darkal/networkdiagnosis/SysApplication.java
+++ b/app/src/main/java/cn/darkal/networkdiagnosis/SysApplication.java
@@ -24,7 +24,7 @@
import java.util.Locale;
import java.util.Random;
-import cn.darkal.networkdiagnosis.Bean.ResponseFilterRule;
+import cn.darkal.networkdiagnosis.bean.ResponseFilterRule;
import cn.darkal.networkdiagnosis.Utils.DeviceUtils;
import cn.darkal.networkdiagnosis.Utils.SharedPreferenceUtils;
diff --git a/app/src/main/java/cn/darkal/networkdiagnosis/Utils/DeviceUtils.java b/app/src/main/java/cn/darkal/networkdiagnosis/Utils/DeviceUtils.java
index 199c9df..ce931d1 100644
--- a/app/src/main/java/cn/darkal/networkdiagnosis/Utils/DeviceUtils.java
+++ b/app/src/main/java/cn/darkal/networkdiagnosis/Utils/DeviceUtils.java
@@ -6,23 +6,15 @@
import android.util.Log;
import net.lightbody.bmp.BrowserMobProxy;
-import net.lightbody.bmp.filters.RequestFilter;
import net.lightbody.bmp.filters.ResponseFilter;
import net.lightbody.bmp.proxy.dns.AdvancedHostResolver;
import net.lightbody.bmp.util.HttpMessageContents;
import net.lightbody.bmp.util.HttpMessageInfo;
-import org.littleshoot.proxy.HttpFilters;
-import org.littleshoot.proxy.HttpFiltersSource;
-
-import java.net.InetSocketAddress;
import java.util.List;
-import cn.darkal.networkdiagnosis.Bean.ResponseFilterRule;
+import cn.darkal.networkdiagnosis.bean.ResponseFilterRule;
import cn.darkal.networkdiagnosis.SysApplication;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.handler.codec.http.HttpObject;
-import io.netty.handler.codec.http.HttpRequest;
import io.netty.handler.codec.http.HttpResponse;
/**
diff --git a/app/src/main/java/cn/darkal/networkdiagnosis/Bean/PageBean.java b/app/src/main/java/cn/darkal/networkdiagnosis/bean/PageBean.java
similarity index 95%
rename from app/src/main/java/cn/darkal/networkdiagnosis/Bean/PageBean.java
rename to app/src/main/java/cn/darkal/networkdiagnosis/bean/PageBean.java
index 1a01f51..f836f12 100644
--- a/app/src/main/java/cn/darkal/networkdiagnosis/Bean/PageBean.java
+++ b/app/src/main/java/cn/darkal/networkdiagnosis/bean/PageBean.java
@@ -1,4 +1,4 @@
-package cn.darkal.networkdiagnosis.Bean;
+package cn.darkal.networkdiagnosis.bean;
/**
* Created by xuzhou on 2016/9/5.
diff --git a/app/src/main/java/cn/darkal/networkdiagnosis/Bean/ResponseFilterRule.java b/app/src/main/java/cn/darkal/networkdiagnosis/bean/ResponseFilterRule.java
similarity index 92%
rename from app/src/main/java/cn/darkal/networkdiagnosis/Bean/ResponseFilterRule.java
rename to app/src/main/java/cn/darkal/networkdiagnosis/bean/ResponseFilterRule.java
index 7605dc0..f77a87c 100644
--- a/app/src/main/java/cn/darkal/networkdiagnosis/Bean/ResponseFilterRule.java
+++ b/app/src/main/java/cn/darkal/networkdiagnosis/bean/ResponseFilterRule.java
@@ -1,8 +1,8 @@
-package cn.darkal.networkdiagnosis.Bean;
+package cn.darkal.networkdiagnosis.bean;
import java.io.Serializable;
-import static cn.darkal.networkdiagnosis.Bean.ResponseFilterRule.RULE_TYPE.STRING_REPLACE;
+import static cn.darkal.networkdiagnosis.bean.ResponseFilterRule.RULE_TYPE.STRING_REPLACE;
/**
* Created by darkal on 2017/5/31.
diff --git a/app/src/main/java/org/littleshoot/proxy/mitm/CertificateHelper.java b/app/src/main/java/org/littleshoot/proxy/mitm/CertificateHelper.java
index a4358e2..bad11b1 100755
--- a/app/src/main/java/org/littleshoot/proxy/mitm/CertificateHelper.java
+++ b/app/src/main/java/org/littleshoot/proxy/mitm/CertificateHelper.java
@@ -255,10 +255,8 @@ private static X509Certificate signCertificate(
X509v3CertificateBuilder certificateBuilder,
PrivateKey signedWithPrivateKey) throws OperatorCreationException,
CertificateException {
- ContentSigner signer = new JcaContentSignerBuilder(SIGNATURE_ALGORITHM)
- .setProvider(PROVIDER_NAME).build(signedWithPrivateKey);
- return new JcaX509CertificateConverter().setProvider(
- PROVIDER_NAME).getCertificate(certificateBuilder.build(signer));
+ ContentSigner signer = new JcaContentSignerBuilder(SIGNATURE_ALGORITHM).build(signedWithPrivateKey);
+ return new JcaX509CertificateConverter().getCertificate(certificateBuilder.build(signer));
}
public static TrustManager[] getTrustManagers(KeyStore keyStore)
diff --git a/app/src/main/res/layout/item_filter.xml b/app/src/main/res/layout/item_filter.xml
index 3185354..072f69f 100644
--- a/app/src/main/res/layout/item_filter.xml
+++ b/app/src/main/res/layout/item_filter.xml
@@ -4,7 +4,7 @@
+ type="cn.darkal.networkdiagnosis.bean.ResponseFilterRule" />
+ type="cn.darkal.networkdiagnosis.bean.PageBean" />
- - false
- - false
+
+
diff --git a/build.gradle b/build.gradle
index bb818af..a9fc7a4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.1.3'
+ classpath 'com.android.tools.build:gradle:4.0.0'
classpath 'com.tencent.bugly:symtabfileuploader:latest.release'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 44b68b4..7decb3c 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Thu Jul 05 14:53:57 CST 2018
+#Wed Dec 09 15:54:43 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip