Initial commit

This commit is contained in:
2025-05-13 19:24:51 +02:00
commit a950f49678
10604 changed files with 932663 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
package com.baidu.uaq.agent.android.crashes;
import com.tencent.open.SocialConstants;
import org.json.JSONException;
import org.json.JSONObject;
/* compiled from: ApplicationInfo.java */
/* loaded from: classes.dex */
public class a extends com.baidu.uaq.agent.android.harvest.type.d {
private String b;
private String c;
private String d;
public a() {
this.b = "";
this.c = "";
this.d = "";
}
public static a a(JSONObject jSONObject) {
a aVar = new a();
try {
aVar.b = jSONObject.getString(SocialConstants.PARAM_APPNAME);
aVar.c = jSONObject.getString("appVersion");
aVar.d = jSONObject.getString("bundleId");
} catch (JSONException e) {
e.printStackTrace();
}
return aVar;
}
@Override // com.baidu.uaq.agent.android.harvest.type.a
public JSONObject d() {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put(SocialConstants.PARAM_APPNAME, this.b);
jSONObject.put("appVersion", this.c);
jSONObject.put("bundleId", this.d);
} catch (JSONException e) {
e.printStackTrace();
}
return jSONObject;
}
public a(com.baidu.uaq.agent.android.harvest.bean.a aVar) {
this.b = "";
this.c = "";
this.d = "";
this.b = aVar.g();
this.c = aVar.e();
this.d = aVar.f();
}
}

View File

@@ -0,0 +1,122 @@
package com.baidu.uaq.agent.android.crashes;
import com.baidu.uaq.agent.android.UAQ;
import com.baidu.uaq.agent.android.util.l;
import com.ubt.jimu.diy.view.fragment.BuildStepFragment;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/* compiled from: Crash.java */
/* loaded from: classes.dex */
public class b extends com.baidu.uaq.agent.android.harvest.type.d {
private static final UAQ l = UAQ.getInstance();
private int b;
private final UUID c;
private final String d;
private final long e;
private final String f;
private final String g;
private e h;
private a i;
private f j;
private List<h> k;
public b(UUID uuid, String str, long j) {
this.b = 1;
this.c = uuid;
this.d = str;
this.e = j;
this.f = l.getConfig().getAPIKey();
this.g = l.getConfig().getCuid();
}
private static Throwable a(Throwable th) {
Throwable cause = th.getCause();
return cause == null ? th : a(cause);
}
public static b b(String str) {
b bVar;
JSONObject jSONObject;
try {
jSONObject = new JSONObject(str);
bVar = new b(UUID.fromString(jSONObject.getString(BuildStepFragment.UUID)), jSONObject.getString("buildId"), jSONObject.getLong("timestamp"));
} catch (JSONException e) {
e = e;
bVar = null;
}
try {
bVar.h = e.a(jSONObject.getJSONObject("deviceInfo"));
bVar.i = a.a(jSONObject.getJSONObject("appInfo"));
bVar.j = f.a(jSONObject.getJSONObject("exception"));
bVar.k = h.b(jSONObject.getJSONArray("threads"));
} catch (JSONException e2) {
e = e2;
e.printStackTrace();
return bVar;
}
return bVar;
}
public static String f() {
return "";
}
private JSONArray g() {
JSONArray jSONArray = new JSONArray();
Iterator<h> it = this.k.iterator();
while (it.hasNext()) {
jSONArray.put(it.next().d());
}
return jSONArray;
}
@Override // com.baidu.uaq.agent.android.harvest.type.a
public JSONObject d() {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put("protocolVersion", this.b);
jSONObject.put("platform", "Android");
jSONObject.put(BuildStepFragment.UUID, this.c.toString());
jSONObject.put("buildId", this.d);
jSONObject.put("timestamp", Long.valueOf(this.e));
jSONObject.put("appToken", this.f);
jSONObject.put("cuid", com.baidu.uaq.agent.android.util.e.a(this.g));
jSONObject.put("deviceInfo", this.h.d());
jSONObject.put("appInfo", this.i.d());
jSONObject.put("exception", this.j.d());
jSONObject.put("threads", g());
jSONObject.put("activityHistory", new JSONArray());
com.baidu.uaq.agent.android.harvest.bean.b j = com.baidu.uaq.agent.android.harvest.multiharvest.d.c().j();
if (j != null) {
jSONObject.put("dataToken", j.a());
}
} catch (Exception e) {
e.printStackTrace();
}
return jSONObject;
}
public UUID e() {
return this.c;
}
public b(Throwable th) {
this.b = 1;
com.baidu.uaq.agent.android.b a = com.baidu.uaq.agent.android.a.a();
Throwable a2 = a(th);
this.c = new UUID(l.a().nextLong(), l.a().nextLong());
this.d = f();
this.e = System.currentTimeMillis() / 1000;
this.f = l.getConfig().getAPIKey();
this.g = l.getConfig().getCuid();
this.h = new e(a.a(), a.e());
this.i = new a(a.b());
this.j = new f(a2);
this.k = h.a(a2);
}
}

View File

@@ -0,0 +1,260 @@
package com.baidu.uaq.agent.android.crashes;
import com.baidu.uaq.agent.android.UAQ;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.lang.Thread;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Iterator;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicBoolean;
/* compiled from: CrashReporter.java */
/* loaded from: classes.dex */
public class c {
private static d f;
private static ExecutorService h;
private Thread.UncaughtExceptionHandler a;
private boolean b;
private static final com.baidu.uaq.agent.android.logging.a c = com.baidu.uaq.agent.android.logging.b.a();
private static final UAQ d = UAQ.getInstance();
private static final c e = new c();
private static final AtomicBoolean g = new AtomicBoolean(false);
/* compiled from: CrashReporter.java */
private static class a implements Runnable {
private final com.baidu.uaq.agent.android.crashes.b a;
a(com.baidu.uaq.agent.android.crashes.b bVar) {
this.a = bVar;
}
/* JADX WARN: Multi-variable type inference failed */
/* JADX WARN: Type inference failed for: r2v22 */
/* JADX WARN: Type inference failed for: r2v23 */
/* JADX WARN: Type inference failed for: r2v24, types: [java.io.InputStream] */
/* JADX WARN: Type inference failed for: r2v26, types: [java.io.InputStream] */
/* JADX WARN: Type inference failed for: r2v27 */
/* JADX WARN: Type inference failed for: r2v4, types: [java.lang.StringBuilder] */
/* JADX WARN: Type inference failed for: r2v5, types: [java.io.InputStream] */
/* JADX WARN: Type inference failed for: r2v6 */
/* JADX WARN: Type inference failed for: r2v7 */
/* JADX WARN: Type inference failed for: r2v8, types: [java.io.InputStream] */
@Override // java.lang.Runnable
public void run() {
HttpURLConnection httpURLConnection;
String str = c.d.getConfig().isUseSsl() ? "https://" : "http://";
String str2 = ":" + c.d.getConfig().getCollectorPort();
?? sb = new StringBuilder();
sb.append(str);
sb.append(c.d.getConfig().getCollectorHost());
sb.append(str2);
sb.append("/sdk_push_crash");
String sb2 = sb.toString();
InputStreamReader inputStreamReader = null;
try {
try {
try {
c.c.d("Crash url = " + sb2);
httpURLConnection = (HttpURLConnection) new URL(sb2).openConnection();
} catch (Exception e) {
e = e;
sb = 0;
} catch (Throwable th) {
th = th;
sb = 0;
}
if (httpURLConnection == null) {
c.c.d("connection is null when send crash data!");
return;
}
httpURLConnection.setConnectTimeout(5000);
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
httpURLConnection.setRequestProperty("Content-Type", "application/json");
httpURLConnection.setRequestProperty("X-App-License-Key", c.d.getConfig().getAPIKey());
httpURLConnection.setRequestProperty("Content-Encoding", "gzip");
byte[] a = com.baidu.uaq.agent.android.util.b.a(this.a.c() + "\n", "utf-8");
httpURLConnection.setFixedLengthStreamingMode(a.length);
httpURLConnection.setRequestProperty("Content-Length", String.valueOf(a.length));
OutputStream outputStream = httpURLConnection.getOutputStream();
outputStream.write(a);
outputStream.flush();
outputStream.close();
if (httpURLConnection.getResponseCode() == 200) {
c.c.d("Crash " + this.a.e().toString() + " successfully submitted.");
sb = httpURLConnection.getInputStream();
try {
InputStreamReader inputStreamReader2 = new InputStreamReader(sb);
try {
BufferedReader bufferedReader = new BufferedReader(inputStreamReader2);
StringBuilder sb3 = new StringBuilder();
while (true) {
String readLine = bufferedReader.readLine();
if (readLine == null) {
break;
} else {
sb3.append(readLine);
}
}
c.c.d("send crash success, response: " + sb3.toString());
c.f.b(this.a);
inputStreamReader = inputStreamReader2;
sb = sb;
} catch (Exception e2) {
e = e2;
inputStreamReader = inputStreamReader2;
c.c.a("Unable to report crash to UAQ, will try again later.", e);
if (inputStreamReader != null) {
try {
inputStreamReader.close();
} catch (IOException e3) {
e3.printStackTrace();
}
}
if (sb != 0) {
sb.close();
}
return;
} catch (Throwable th2) {
th = th2;
inputStreamReader = inputStreamReader2;
if (inputStreamReader != null) {
try {
inputStreamReader.close();
} catch (IOException e4) {
e4.printStackTrace();
}
}
if (sb == 0) {
throw th;
}
try {
sb.close();
throw th;
} catch (IOException e5) {
e5.printStackTrace();
throw th;
}
}
} catch (Exception e6) {
e = e6;
}
} else {
c.c.a("Something went wrong while submitting a crash (will try again later) - Response code " + httpURLConnection.getResponseCode());
sb = 0;
}
httpURLConnection.disconnect();
if (inputStreamReader != null) {
try {
inputStreamReader.close();
} catch (IOException e7) {
e7.printStackTrace();
}
}
if (sb != 0) {
sb.close();
}
} catch (IOException e8) {
e8.printStackTrace();
}
} catch (Throwable th3) {
th = th3;
}
}
}
/* compiled from: CrashReporter.java */
private class b implements Thread.UncaughtExceptionHandler {
private final AtomicBoolean a;
private void a(Thread thread, Throwable th) {
if (c.this.a != null) {
c.c.d("Chaining crash reporting duties to " + c.this.a.getClass().getSimpleName());
c.this.a.uncaughtException(thread, th);
}
}
@Override // java.lang.Thread.UncaughtExceptionHandler
public void uncaughtException(Thread thread, Throwable th) {
if (!this.a.compareAndSet(false, true)) {
com.baidu.uaq.agent.android.stats.a.b().a("Supportability/AgentHealth/Recursion/UncaughtExceptionHandler");
return;
}
if (!c.d.getConfig().isReportCrashes() || !c.e.b) {
c.c.d("A crash has been detected but crash reporting is disabled!");
a(thread, th);
return;
}
try {
com.baidu.uaq.agent.android.stats.b bVar = new com.baidu.uaq.agent.android.stats.b();
bVar.a();
c.c.d("A crash has been detected in " + thread.getStackTrace()[0].getClassName() + " and will be reported ASAP.");
com.baidu.uaq.agent.android.crashes.b bVar2 = new com.baidu.uaq.agent.android.crashes.b(th);
c unused = c.e;
c.f.a(bVar2);
c.a(bVar2);
c.c.d("Crash collection took " + bVar.b() + "ms");
a(thread, th);
} catch (Throwable unused2) {
a(thread, th);
}
}
private b() {
this.a = new AtomicBoolean(false);
}
}
public c() {
h = Executors.newCachedThreadPool(new com.baidu.uaq.agent.android.util.g("CrashReporter"));
this.b = false;
}
public static void a(d dVar) {
e.b = true;
if (g.compareAndSet(false, true)) {
f = dVar;
h.submit(new Runnable() { // from class: com.baidu.uaq.agent.android.crashes.c.1
@Override // java.lang.Runnable
public void run() {
c.e.a();
}
});
e.b();
}
}
private void b() {
Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
if (defaultUncaughtExceptionHandler == null) {
c.d("Installing UAQ crash handler.");
} else {
if (defaultUncaughtExceptionHandler instanceof b) {
c.d("UAQ crash handler already installed.");
return;
}
this.a = defaultUncaughtExceptionHandler;
c.d("Installing UAQ crash handler and chaining " + this.a.getClass().getName());
}
Thread.setDefaultUncaughtExceptionHandler(new b());
}
/* JADX INFO: Access modifiers changed from: private */
public void a() {
c.d("reportSavedCrashes, size=" + f.b());
Iterator<com.baidu.uaq.agent.android.crashes.b> it = f.a().iterator();
while (it.hasNext()) {
a(it.next());
}
}
public static void a(com.baidu.uaq.agent.android.crashes.b bVar) {
h.submit(new a(bVar));
}
}

View File

@@ -0,0 +1,15 @@
package com.baidu.uaq.agent.android.crashes;
import java.util.List;
/* compiled from: CrashStore.java */
/* loaded from: classes.dex */
public interface d {
List<b> a();
void a(b bVar);
int b();
void b(b bVar);
}

View File

@@ -0,0 +1,104 @@
package com.baidu.uaq.agent.android.crashes;
import com.unity3d.ads.adunit.AdUnitActivity;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/* compiled from: DeviceInfo.java */
/* loaded from: classes.dex */
public class e extends com.baidu.uaq.agent.android.harvest.type.d {
private long b;
private int c;
private String d;
private long[] e;
private String f;
private String g;
private String h;
private String i;
private String j;
private String k;
private String l;
private String m;
public e() {
}
public static e a(JSONObject jSONObject) {
e eVar = new e();
try {
eVar.b = jSONObject.getLong("memoryUsage");
eVar.c = jSONObject.getInt(AdUnitActivity.EXTRA_ORIENTATION);
eVar.d = jSONObject.getString("networkStatus");
eVar.e = a(jSONObject.getJSONArray("diskAvailable"));
eVar.f = jSONObject.getString("OSVersion");
eVar.g = jSONObject.getString("deviceName");
eVar.h = jSONObject.getString("OSBuild");
eVar.i = jSONObject.getString("architecture");
eVar.m = jSONObject.getString("runTime");
eVar.j = jSONObject.getString("modelNumber");
eVar.k = jSONObject.getString("screenResolution");
eVar.l = jSONObject.getString("deviceUuid");
} catch (JSONException e) {
e.printStackTrace();
}
return eVar;
}
private JSONArray e() {
JSONArray jSONArray = new JSONArray();
for (long j : this.e) {
jSONArray.put(Long.valueOf(j));
}
return jSONArray;
}
@Override // com.baidu.uaq.agent.android.harvest.type.a
public JSONObject d() {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put("memoryUsage", Long.valueOf(this.b));
jSONObject.put(AdUnitActivity.EXTRA_ORIENTATION, Integer.valueOf(this.c));
jSONObject.put("networkStatus", this.d);
jSONObject.put("diskAvailable", e());
jSONObject.put("OSVersion", this.f);
jSONObject.put("deviceName", this.g);
jSONObject.put("OSBuild", this.h);
jSONObject.put("architecture", this.i);
jSONObject.put("runTime", this.m);
jSONObject.put("modelNumber", this.j);
jSONObject.put("screenResolution", this.k);
jSONObject.put("deviceUuid", this.l);
} catch (JSONException e) {
e.printStackTrace();
}
return jSONObject;
}
public e(com.baidu.uaq.agent.android.harvest.bean.c cVar, com.baidu.uaq.agent.android.harvest.bean.d dVar) {
this.b = dVar.a();
this.c = dVar.d();
this.d = dVar.b();
this.e = dVar.c();
this.f = cVar.e();
this.g = cVar.m();
this.h = cVar.i();
this.i = cVar.f();
this.j = cVar.n();
this.k = cVar.h();
this.l = cVar.l();
this.m = cVar.g();
}
private static long[] a(JSONArray jSONArray) {
long[] jArr = new long[jSONArray.length()];
for (int i = 0; i < jSONArray.length(); i++) {
try {
jArr[i] = jSONArray.getLong(i);
} catch (JSONException e) {
e.printStackTrace();
}
}
return jArr;
}
}

View File

@@ -0,0 +1,47 @@
package com.baidu.uaq.agent.android.crashes;
import com.unity3d.ads.metadata.MediationMetaData;
import org.json.JSONException;
import org.json.JSONObject;
/* compiled from: ExceptionInfo.java */
/* loaded from: classes.dex */
public class f extends com.baidu.uaq.agent.android.harvest.type.d {
private String b;
private String c;
public f() {
}
public static f a(JSONObject jSONObject) {
f fVar = new f();
try {
fVar.b = jSONObject.getString(MediationMetaData.KEY_NAME);
fVar.c = jSONObject.getString("cause");
} catch (JSONException e) {
e.printStackTrace();
}
return fVar;
}
@Override // com.baidu.uaq.agent.android.harvest.type.a
public JSONObject d() {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put(MediationMetaData.KEY_NAME, this.b);
jSONObject.put("cause", this.c);
} catch (JSONException e) {
e.printStackTrace();
}
return jSONObject;
}
public f(Throwable th) {
this.b = th.getClass().getName();
if (th.getMessage() != null) {
this.c = th.getMessage();
} else {
this.c = "";
}
}
}

View File

@@ -0,0 +1,61 @@
package com.baidu.uaq.agent.android.crashes;
import android.content.Context;
import android.content.SharedPreferences;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/* compiled from: JsonCrashStore.java */
/* loaded from: classes.dex */
public class g implements d {
private static final com.baidu.uaq.agent.android.logging.a b = com.baidu.uaq.agent.android.logging.b.a();
private final Context a;
public g(Context context) {
this.a = context;
}
@Override // com.baidu.uaq.agent.android.crashes.d
public void a(b bVar) {
synchronized (this) {
SharedPreferences.Editor edit = this.a.getSharedPreferences("APMCrashStore", 0).edit();
edit.putString(bVar.e().toString(), bVar.c());
edit.commit();
}
}
@Override // com.baidu.uaq.agent.android.crashes.d
public int b() {
return this.a.getSharedPreferences("APMCrashStore", 0).getAll().size();
}
@Override // com.baidu.uaq.agent.android.crashes.d
public void b(b bVar) {
synchronized (this) {
SharedPreferences.Editor edit = this.a.getSharedPreferences("APMCrashStore", 0).edit();
edit.remove(bVar.e().toString());
edit.commit();
}
}
@Override // com.baidu.uaq.agent.android.crashes.d
public List<b> a() {
Map<String, ?> all;
SharedPreferences sharedPreferences = this.a.getSharedPreferences("APMCrashStore", 0);
ArrayList arrayList = new ArrayList();
synchronized (this) {
all = sharedPreferences.getAll();
}
for (Object obj : all.values()) {
if (obj instanceof String) {
try {
arrayList.add(b.b((String) obj));
} catch (Exception e) {
b.a("Exception encountered while deserializing crash", e);
}
}
}
return arrayList;
}
}

View File

@@ -0,0 +1,144 @@
package com.baidu.uaq.agent.android.crashes;
import com.ubt.jimu.diy.model.CategoryModel;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/* compiled from: ThreadInfo.java */
/* loaded from: classes.dex */
public class h extends com.baidu.uaq.agent.android.harvest.type.d {
private boolean b;
private long c;
private String d;
private int e;
private StackTraceElement[] f;
private String g;
private h() {
}
public static List<h> a(Throwable th) {
ArrayList arrayList = new ArrayList();
h hVar = new h(th);
long e = hVar.e();
arrayList.add(hVar);
for (Map.Entry<Thread, StackTraceElement[]> entry : Thread.getAllStackTraces().entrySet()) {
Thread key = entry.getKey();
StackTraceElement[] value = entry.getValue();
if (key.getId() != e) {
arrayList.add(new h(key, value));
}
}
return arrayList;
}
public static List<h> b(JSONArray jSONArray) {
ArrayList arrayList = new ArrayList();
for (int i = 0; i < jSONArray.length(); i++) {
try {
arrayList.add(a(jSONArray.getJSONObject(i)));
} catch (JSONException e) {
e.printStackTrace();
}
}
return arrayList;
}
private JSONArray f() {
JSONArray jSONArray = new JSONArray();
for (StackTraceElement stackTraceElement : this.f) {
try {
if (stackTraceElement != null) {
JSONObject jSONObject = new JSONObject();
if (stackTraceElement.getFileName() != null) {
jSONObject.put("fileName", stackTraceElement.getFileName());
}
jSONObject.put("className", stackTraceElement.getClassName());
jSONObject.put("methodName", stackTraceElement.getMethodName());
jSONObject.put("lineNumber", Integer.valueOf(stackTraceElement.getLineNumber()));
jSONArray.put(jSONObject);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
return jSONArray;
}
@Override // com.baidu.uaq.agent.android.harvest.type.a
public JSONObject d() {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put("crashed", Boolean.valueOf(this.b));
jSONObject.put("state", this.g);
jSONObject.put("threadNumber", Long.valueOf(this.c));
jSONObject.put("threadId", this.d);
jSONObject.put("priority", Integer.valueOf(this.e));
jSONObject.put("stack", f());
} catch (JSONException e) {
e.printStackTrace();
}
return jSONObject;
}
public long e() {
return this.c;
}
public h(Throwable th) {
this.b = true;
this.c = Thread.currentThread().getId();
this.d = Thread.currentThread().getName();
this.e = Thread.currentThread().getPriority();
this.f = th.getStackTrace();
this.g = Thread.currentThread().getState().toString();
}
public h(Thread thread, StackTraceElement[] stackTraceElementArr) {
this.b = false;
this.c = thread.getId();
this.d = thread.getName();
this.e = thread.getPriority();
this.f = stackTraceElementArr;
this.g = thread.getState().toString();
}
public static h a(JSONObject jSONObject) {
h hVar = new h();
try {
hVar.b = jSONObject.getBoolean("crashed");
hVar.g = jSONObject.getString("state");
hVar.c = jSONObject.getLong("threadNumber");
hVar.d = jSONObject.getString("threadId");
hVar.e = jSONObject.getInt("priority");
hVar.f = a(jSONObject.getJSONArray("stack"));
} catch (JSONException e) {
e.printStackTrace();
}
return hVar;
}
public static StackTraceElement[] a(JSONArray jSONArray) {
StackTraceElement[] stackTraceElementArr = new StackTraceElement[jSONArray.length()];
int i = 0;
while (i < jSONArray.length()) {
try {
String str = CategoryModel.unknown;
if (jSONArray.getJSONObject(i).optString("fileName") != null) {
str = jSONArray.getJSONObject(i).optString("fileName");
}
StackTraceElement stackTraceElement = new StackTraceElement(jSONArray.getJSONObject(i).getString("className"), jSONArray.getJSONObject(i).getString("methodName"), str, jSONArray.getJSONObject(i).getInt("lineNumber"));
int i2 = i + 1;
stackTraceElementArr[i] = stackTraceElement;
i = i2 + 1;
} catch (JSONException e) {
e.printStackTrace();
}
}
return stackTraceElementArr;
}
}