百度手机卫士 v8.4.5版本的 MD5 值为:c65ef854a40bb6200c4d8c4603c58403

以下内容为反编译后的 acv.java 源代码,内容仅作参考


package dxoptimizer;

import android.content.Context;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.text.TextUtils;
import java.util.HashMap;
import java.util.Map;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.params.HttpClientParams;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpProtocolParams;

public class acv {
    private static final String a = acv.class.getName();
    private static DefaultHttpClient b;

    public static synchronized void a() {
        synchronized (acv.class) {
            if (b != null) {
                b.getConnectionManager().shutdown();
                b = null;
            }
        }
    }

    public static synchronized DefaultHttpClient b() {
        DefaultHttpClient defaultHttpClient;
        synchronized (acv.class) {
            if (b != null) {
                defaultHttpClient = b;
            } else {
                SchemeRegistry schemeRegistry = new SchemeRegistry();
                schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
                schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
                BasicHttpParams basicHttpParams = new BasicHttpParams();
                b = new DefaultHttpClient(new ThreadSafeClientConnManager(basicHttpParams, schemeRegistry), basicHttpParams);
                HttpConnectionParams.setSoTimeout(b.getParams(), 30000);
                HttpConnectionParams.setConnectionTimeout(b.getParams(), 30000);
                b.getParams().setIntParameter("http.protocol.max-redirects", 10);
                HttpClientParams.setCookiePolicy(b.getParams(), "compatibility");
                HttpProtocolParams.setUserAgent(b.getParams(), "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.04 (lucid) Firefox/3.6.18");
                b.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(3, true));
                defaultHttpClient = b;
            }
        }
        return defaultHttpClient;
    }

    public static void a(DefaultHttpClient defaultHttpClient, Map map) {
        String str;
        int i;
        String str2;
        String str3;
        if (map != null) {
            if (map != null) {
                str2 = (String) map.get("host");
                i = map.containsKey("port") ? ((Number) map.get("port")).intValue() : -1;
                str3 = (String) map.get("user");
                str = (String) map.get("password");
            } else {
                str = null;
                i = -1;
                str2 = null;
                str3 = null;
            }
            if (!TextUtils.isEmpty(str2) && i > 0) {
                acd.c(a, "connecting with proxy, addr:" + str2 + ", port:" + i);
                defaultHttpClient.getParams().setParameter("http.route.default-proxy", new HttpHost(str2, i, "http"));
                if (!TextUtils.isEmpty(str3) && !TextUtils.isEmpty(str)) {
                    defaultHttpClient.getCredentialsProvider().setCredentials(new AuthScope(str2, i), new UsernamePasswordCredentials(str3, str));
                    return;
                } else {
                    defaultHttpClient.getCredentialsProvider().clear();
                    return;
                }
            }
            defaultHttpClient.getParams().setParameter("http.route.default-proxy", null);
            defaultHttpClient.getCredentialsProvider().clear();
        }
    }

    public static Map a(Context context) {
        Cursor cursor;
        Uri parse = Uri.parse("content://telephony/carriers/preferapn");
        NetworkInfo activeNetworkInfo = ((ConnectivityManager) context.getSystemService("connectivity")).getActiveNetworkInfo();
        if (activeNetworkInfo != null && activeNetworkInfo.getType() == 0) {
            try {
                cursor = context.getContentResolver().query(parse, null, null, null, null);
                if (cursor != null) {
                    try {
                        try {
                            if (cursor.moveToFirst()) {
                                final String string = cursor.getString(cursor.getColumnIndex("proxy"));
                                final int i = cursor.getInt(cursor.getColumnIndex("port"));
                                final String string2 = cursor.getString(cursor.getColumnIndex("user"));
                                final String string3 = cursor.getString(cursor.getColumnIndex("password"));
                                HashMap hashMap = new HashMap() {
                                    {
                                        put("host", string);
                                        put("port", Integer.valueOf(i));
                                        put("user", string2);
                                        put("password", string3);
                                    }
                                };
                                if (cursor == null) {
                                    return hashMap;
                                }
                                cursor.close();
                                return hashMap;
                            }
                        } catch (Exception e) {
                            e = e;
                            e.printStackTrace();
                            if (cursor != null) {
                                cursor.close();
                            }
                            return null;
                        }
                    } catch (Throwable th) {
                        th = th;
                        if (cursor != null) {
                            cursor.close();
                        }
                        throw th;
                    }
                }
                if (cursor != null) {
                    cursor.close();
                }
            } catch (Exception e2) {
                e = e2;
                cursor = null;
            } catch (Throwable th2) {
                th = th2;
                cursor = null;
                if (cursor != null) {
                }
                throw th;
            }
        }
        return null;
    }
}