Skip to content

Commit 0816df7

Browse files
committed
fix:证书首次安装
1 parent e11be21 commit 0816df7

File tree

2 files changed

+29
-25
lines changed

2 files changed

+29
-25
lines changed

app/src/main/java/cn/darkal/networkdiagnosis/Activity/MainActivity.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
import android.animation.ObjectAnimator;
77
import android.app.Activity;
88
import android.app.SearchManager;
9+
import android.content.BroadcastReceiver;
910
import android.content.Context;
1011
import android.content.DialogInterface;
1112
import android.content.Intent;
13+
import android.content.IntentFilter;
1214
import android.content.SharedPreferences;
1315
import android.net.Uri;
1416
import android.os.Build;
@@ -110,6 +112,8 @@ public class MainActivity extends AppCompatActivity implements BackHandledInterf
110112
private BaseFragment mBackHandedFragment;
111113
private long exitTime = 0;
112114

115+
private Receiver receiver;
116+
113117
@BindView(R.id.fl_contain)
114118
public View rootView;
115119

@@ -151,8 +155,6 @@ protected void onCreate(Bundle savedInstanceState) {
151155

152156
shp = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
153157

154-
installCert();
155-
156158
setContentView(R.layout.activity_main);
157159

158160
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
@@ -161,7 +163,6 @@ protected void onCreate(Bundle savedInstanceState) {
161163
ButterKnife.bind(this);
162164
initFloatingActionMenu();
163165

164-
165166
OnGlobalLayoutListener globalLayoutListener = new OnGlobalLayoutListener(rootView);
166167
rootView.getViewTreeObserver().addOnGlobalLayoutListener(globalLayoutListener);
167168

@@ -583,9 +584,25 @@ protected void onNewIntent(Intent intent) {
583584
@Override
584585
protected void onStart() {
585586
super.onStart();
587+
receiver = new Receiver();
588+
registerReceiver(receiver, new IntentFilter("proxyfinished"));
586589
handleUriStartupParams();
587590
}
588591

592+
@Override
593+
protected void onStop() {
594+
unregisterReceiver(receiver);
595+
super.onStop();
596+
}
597+
598+
public class Receiver extends BroadcastReceiver {
599+
@Override
600+
public void onReceive(Context context, Intent intent) {
601+
installCert();
602+
Log.i("~~~~", "Receiver installCert");
603+
}
604+
}
605+
589606
/**
590607
* 启动的时候根据bundle参数决定切换到哪个tab
591608
*/

app/src/main/java/cn/darkal/networkdiagnosis/Activity/SettingsActivity.java

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,50 +4,32 @@
44
import android.app.Activity;
55
import android.content.Context;
66
import android.content.Intent;
7-
import android.content.SharedPreferences;
8-
import android.content.pm.ApplicationInfo;
9-
import android.content.pm.PackageInfo;
10-
import android.content.pm.PackageManager;
117
import android.content.res.Configuration;
12-
import android.net.Uri;
138
import android.os.Bundle;
149
import android.os.Environment;
1510
import android.preference.ListPreference;
1611
import android.preference.Preference;
1712
import android.preference.PreferenceActivity;
1813
import android.provider.Settings;
1914
import android.security.KeyChain;
20-
import android.support.design.widget.Snackbar;
2115
import android.support.v7.app.ActionBar;
22-
import android.util.Log;
2316
import android.view.MenuItem;
2417
import android.widget.Toast;
2518

26-
import com.tencent.bugly.Bugly;
2719
import com.tencent.bugly.beta.Beta;
2820

2921
import net.lightbody.bmp.BrowserMobProxy;
3022
import net.lightbody.bmp.proxy.dns.AdvancedHostResolver;
3123

32-
import org.apache.commons.io.FileUtils;
24+
import org.apache.commons.io.IOUtils;
3325

34-
import java.io.File;
3526
import java.io.FileInputStream;
36-
import java.io.FileOutputStream;
37-
import java.io.IOException;
38-
import java.io.InputStream;
3927

4028
import cn.darkal.networkdiagnosis.R;
4129
import cn.darkal.networkdiagnosis.SysApplication;
4230
import cn.darkal.networkdiagnosis.Utils.DeviceUtils;
43-
import cn.darkal.networkdiagnosis.Utils.FileUtil;
4431
import cn.darkal.networkdiagnosis.Utils.SharedPreferenceUtils;
4532
import cn.darkal.networkdiagnosis.View.LoadingDialog;
46-
import okhttp3.Call;
47-
import okhttp3.Callback;
48-
import okhttp3.OkHttpClient;
49-
import okhttp3.Request;
50-
import okhttp3.Response;
5133

5234
/**
5335
* A {@link PreferenceActivity} that presents a set of application settings. On
@@ -181,9 +163,14 @@ public void installCert() {
181163
Toast.makeText(this, "必须安装证书才可实现HTTPS抓包", Toast.LENGTH_LONG).show();
182164
try {
183165
byte[] keychainBytes;
184-
InputStream bis = MainActivity.class.getResourceAsStream(CERTIFICATE_RESOURCE);
185-
keychainBytes = new byte[bis.available()];
186-
bis.read(keychainBytes);
166+
FileInputStream is = null;
167+
try {
168+
is = new FileInputStream(CERTIFICATE_RESOURCE);
169+
keychainBytes = new byte[is.available()];
170+
is.read(keychainBytes);
171+
} finally {
172+
IOUtils.closeQuietly(is);
173+
}
187174

188175
Intent intent = KeyChain.createInstallIntent();
189176
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, keychainBytes);

0 commit comments

Comments
 (0)