TIM v2.3.1版本的 MD5 值为:d6957e3ee7ce901ccc491cefdea0da8c
以下内容为反编译后的 GetKeyPlugin.java 源代码,内容仅作参考
package com.tencent.biz.webviewplugin;
import android.app.Activity;
import android.content.Intent;
import android.text.TextUtils;
import com.tencent.biz.AuthorizeConfig;
import com.tencent.biz.common.util.Util;
import com.tencent.common.app.AppInterface;
import com.tencent.mobileqq.activity.QQBrowserActivity;
import com.tencent.mobileqq.app.AppConstants;
import com.tencent.mobileqq.msf.core.NetConnInfoCenter;
import com.tencent.mobileqq.utils.DeviceInfoUtil;
import com.tencent.mobileqq.utils.HexUtil;
import com.tencent.mobileqq.webview.swift.JsBridgeListener;
import com.tencent.mobileqq.webview.swift.WebViewPlugin;
import com.tencent.qphone.base.util.BaseApplication;
import com.tencent.qphone.base.util.QLog;
import com.tencent.smtt.sdk.CookieManager;
import com.tencent.smtt.sdk.CookieSyncManager;
import com.tencent.smtt.utils.Md5Utils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import mqq.app.AppRuntime;
import mqq.manager.TicketManager;
import org.json.JSONException;
import org.json.JSONObject;
@Deprecated
public class GetKeyPlugin extends WebViewPlugin {
public static final String f83380a = "Cookie";
public static final String f83381c = "async_cookie=1";
private long f6666a;
protected AuthorizeConfig f6667a;
protected Thread f6668a;
protected String f6671b;
private boolean f6672b;
protected final int f6665a = 0;
protected final int f83382b = 1;
protected final int f6673c = 2;
protected final int d = 3;
private boolean f6670a = true;
HashMap f6669a = new HashMap();
public GetKeyPlugin() {
this.mPluginNameSpace = "Cookie";
}
@Override
public void onCreate() {
this.f6667a = AuthorizeConfig.a();
}
private boolean m1808a() {
boolean z = BaseApplication.getContext().getSharedPreferences(AppConstants.f17367Y, 4).getBoolean("ptlogin_flag" + this.mRuntime.m9632a().getAccount(), false);
if (QLog.isColorLevel()) {
QLog.d(this.TAG, 2, "mPtloginFlag: " + z);
}
return z;
}
private boolean m1809a(String str) {
if (str.contains("mail.qq.com")) {
CookieManager cookieManager = CookieManager.getInstance();
AppInterface m9632a = this.mRuntime.m9632a();
Activity a2 = this.mRuntime.a();
if (a2 != null) {
Intent intent = a2.getIntent();
cookieManager.setAcceptCookie(true);
if (intent.getBooleanExtra(QQBrowserActivity.as, false)) {
this.f6672b = true;
String stringExtra = intent.getStringExtra(QQBrowserActivity.at);
if (m9632a != null) {
a(m9632a, stringExtra, "qq.com");
b(m9632a, stringExtra, "mail.qq.com");
}
}
}
}
return true;
}
protected void a(String str, String str2) {
ArrayList arrayList = (ArrayList) this.f6669a.get(str);
if (arrayList == null) {
arrayList = new ArrayList();
}
arrayList.add(str2);
this.f6669a.put(str, arrayList);
}
private void a() {
HashMap hashMap = new HashMap();
Set<Map.Entry> entrySet = this.f6669a.entrySet();
StringBuilder sb = new StringBuilder(this.f6669a.size() == 0 ? 16 : this.f6669a.size() * 256);
for (Map.Entry entry : entrySet) {
String str = (String) entry.getKey();
ArrayList arrayList = (ArrayList) entry.getValue();
if (arrayList != null && arrayList.size() > 0) {
String[] strArr = (String[]) arrayList.toArray(new String[arrayList.size()]);
if (QLog.isColorLevel()) {
sb.append("set cookies: ").append(str).append(", value: ").append(Util.c(Arrays.toString(strArr), new String[0])).append("\n");
}
hashMap.put(str, strArr);
}
}
if (QLog.isColorLevel()) {
QLog.i(this.TAG, 2, sb.toString());
}
if (hashMap.size() > 0) {
CookieManager.getInstance().setCookies(hashMap);
}
this.f6669a.clear();
}
private String a(String str) {
StringBuffer stringBuffer = new StringBuffer("");
ArrayList arrayList = (ArrayList) this.f6669a.get(str);
if (arrayList == null) {
return stringBuffer.toString();
}
Iterator it = arrayList.iterator();
while (it.hasNext()) {
stringBuffer.append((String) it.next());
}
return stringBuffer.toString();
}
@Override
public boolean handleEvent(String str, long j, Map map) {
if (j == 32) {
}
if (j == 8589934610L) {
return m1809a(str);
}
return false;
}
@Override
public void onPostPluginAsyncTask() {
if (QLog.isColorLevel()) {
QLog.d(this.TAG, 2, "async set cookie done, cost=" + (System.currentTimeMillis() - this.f6666a));
}
this.f6670a = true;
}
@Override
public boolean handleJsRequest(JsBridgeListener jsBridgeListener, String str, String str2, String str3, String... strArr) {
if (QLog.isColorLevel()) {
QLog.d(this.TAG, 2, "handleJsRequest, url=" + Util.b(str, new String[0]));
}
if (!"Cookie".equals(str2) || str == null || str3 == null) {
return false;
}
try {
JSONObject jSONObject = new JSONObject(strArr[0]);
String string = jSONObject.has("callback") ? jSONObject.getString("callback") : "";
String[] strArr2 = new String[1];
strArr2[0] = this.f6670a ? "true" : "false";
callJs(string, strArr2);
if (QLog.isColorLevel()) {
QLog.d(this.TAG, 4, "on JS query async cookie setting status:" + this.f6670a);
}
return true;
} catch (JSONException e) {
QLog.e(this.TAG, 2, "on JS query async cookie setting status exception:" + e.getMessage());
return false;
} catch (Exception e2) {
QLog.e(this.TAG, 2, "on JS query async cookie setting status exception:" + e2.getMessage());
return false;
}
}
@Override
public void onDestroy() {
AppInterface m9632a;
if (this.f6672b && (m9632a = this.mRuntime.m9632a()) != null) {
a(m9632a);
}
if (this.f6668a != null && this.f6668a.isAlive()) {
this.f6668a.interrupt();
}
}
private String b(String str) {
if (!TextUtils.isEmpty(str)) {
if (str.length() < 10) {
StringBuilder sb = new StringBuilder("o");
for (int length = str.length(); length < 10; length++) {
sb.append("0");
}
return sb.append(str).toString();
}
return "o" + str;
}
return str;
}
private void a(String str, CookieManager cookieManager, String str2) {
if (cookieManager != null && !TextUtils.isEmpty(str) && !TextUtils.isEmpty(str2) && str.equalsIgnoreCase("https://aq.qq.com/cn2/findpsw/mobile_web_find_input_account?source_id=2756")) {
a(str, String.format("dvid1=%s; PATH=/; DOMAIN=.%s; Secure; HttpOnly;", HexUtil.a(NetConnInfoCenter.GUID), str2));
String m9130a = DeviceInfoUtil.m9130a();
if (!TextUtils.isEmpty(m9130a)) {
a(str, String.format("dvid5=%s; PATH=/; DOMAIN=.%s; Secure; HttpOnly;", m9130a, str2));
}
String m9136b = DeviceInfoUtil.m9136b();
if (!TextUtils.isEmpty(m9136b)) {
a(str, String.format("dvid4=%s; PATH=/; DOMAIN=.%s; Secure; HttpOnly;", Md5Utils.getMD5(m9136b), str2));
}
String c2 = DeviceInfoUtil.c(BaseApplication.getContext());
if (!TextUtils.isEmpty(c2)) {
a(str, String.format("dvid2=%s; PATH=/; DOMAIN=.%s; Secure; HttpOnly;", Md5Utils.getMD5(c2), str2));
}
String b2 = DeviceInfoUtil.b(BaseApplication.getContext());
if (!TextUtils.isEmpty(b2)) {
a(str, String.format("dvid3=%s; PATH=/; DOMAIN=.%s; Secure; HttpOnly;", Md5Utils.getMD5(b2), str2));
}
}
}
public Boolean a(AppRuntime appRuntime, String str, String str2) {
if (TextUtils.isEmpty(str) || TextUtils.isEmpty(str2)) {
return false;
}
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
String str3 = "http://www." + str2 + '/';
cookieManager.setCookie(str3, "uin=o" + str + "; PATH=/; DOMAIN=." + str2 + ';');
cookieManager.setCookie(str3, "pt2gguin=o" + str + "; PATH=/; DOMAIN=." + str2 + ';');
CookieSyncManager.createInstance(appRuntime.getApplication().getApplicationContext());
CookieSyncManager.getInstance().sync();
return true;
}
public Boolean b(AppRuntime appRuntime, String str, String str2) {
if (TextUtils.isEmpty(str) || TextUtils.isEmpty(str2)) {
return false;
}
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
String str3 = "http://www." + str2 + '/';
StringBuilder sb = new StringBuilder();
sb.append("p_uin=").append(b(str)).append("; PATH=/; DOMAIN=.").append(str2).append(';');
cookieManager.setCookie(str3, sb.toString());
StringBuilder sb2 = new StringBuilder();
sb2.append("uin=").append(b(str)).append("; PATH=/; DOMAIN=.").append(str2).append(';');
cookieManager.setCookie(str3, sb2.toString());
String pskey = ((TicketManager) appRuntime.getManager(2)).getPskey(str, str2);
if (TextUtils.isEmpty(pskey)) {
return false;
}
cookieManager.setCookie(str3, "p_skey=" + pskey + "; PATH=/; DOMAIN=." + str2 + ';');
CookieSyncManager.createInstance(appRuntime.getApplication().getApplicationContext());
CookieSyncManager.getInstance().sync();
return true;
}
public Boolean a(AppRuntime appRuntime) {
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
String str = "http://www.qq.com/";
cookieManager.setCookie(str, "uin=; PATH=/; DOMAIN=.qq.com;");
cookieManager.setCookie(str, "pt2gguin=; PATH=/; DOMAIN=.qq.com;");
String str2 = "http://www.mail.qq.com/";
StringBuilder sb = new StringBuilder();
sb.append("p_uin=").append("").append("; PATH=/; DOMAIN=.").append("mail.qq.com").append(';');
cookieManager.setCookie(str2, sb.toString());
StringBuilder sb2 = new StringBuilder();
sb2.append("uin=").append("").append("; PATH=/; DOMAIN=.").append("mail.qq.com").append(';');
cookieManager.setCookie(str2, sb2.toString());
cookieManager.setCookie(str2, "p_skey=; PATH=/; DOMAIN=.mail.qq.com;");
CookieSyncManager.createInstance(appRuntime.getApplication().getApplicationContext());
CookieSyncManager.getInstance().sync();
return true;
}
}