蘑菇視頻 v1.3.4版本的 MD5 值为:b21956b74446eba74a6fe191899b35cf
以下内容为反编译后的 h.java 源代码,内容仅作参考
package com.uc.crashsdk.a;
import android.os.Build;
import android.os.Process;
import android.text.TextUtils;
import android.util.SparseArray;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.source.rtsp.SessionDescription;
import com.google.android.exoplayer2.text.ttml.TtmlNode;
import com.uc.crashsdk.JNIBridge;
import com.uc.crashsdk.export.CrashStatKey;
import com.umeng.analytics.pro.ak;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import kotlin.jvm.internal.ByteCompanionObject;
import tv.danmaku.ijk.media.player.IjkMediaMeta;
public class h {
static final boolean a = true;
private static final Object b = new Object();
private static final Map<String, String> c = new HashMap();
private static int d = 0;
private static final Map<String, a> e = new HashMap();
private static final Object f = new Object();
private static final Object g = new Object();
private static final SparseArray<String> h = new SparseArray<>();
private static boolean i = false;
private static boolean j = false;
private static final Object k = new Object();
private static String l = null;
public static class a {
long a = 0;
int b = 0;
Map<String, String> c = new HashMap();
private String d;
private boolean e;
private boolean f;
a(String str, boolean z, boolean z2) {
this.e = false;
this.f = false;
this.d = str;
this.e = z;
this.f = z2;
}
private long d(String str) {
return g.a(a(str), true);
}
final void a(String str, String str2) {
this.c.put(str, str2);
}
final String b(String str) {
String a = a(str);
return a == null ? "" : a;
}
final boolean c(String str) {
if (g.a(str)) {
return false;
}
String str2 = null;
long j = 0;
HashMap hashMap = new HashMap();
Map c = h.c(str);
int i = 0;
for (String str3 : c.keySet()) {
String str4 = (String) c.get(str3);
if (str3.equals("lt")) {
str2 = str4;
} else if (this.e && str3.equals("up")) {
j = g.a(str4, true);
} else if (this.e && str3.equals("pid")) {
i = (int) g.a(str4, true);
} else {
hashMap.put(str3, str4);
}
}
String str5 = this.d;
if (str5 == null || str5.equals(str2)) {
this.a = j;
this.b = i;
this.d = str2;
this.c = hashMap;
return true;
}
return false;
}
final void a(String str, long j) {
long d = d(str) + j;
if (d <= 100) {
j = d < 0 ? 0L : d;
}
a(str, String.valueOf(j));
}
final boolean a(a aVar) {
if (!this.f) {
com.uc.crashsdk.a.a.a("crashsdk", String.format(Locale.US, "WaItem '%s' is not mergable!", this.d), null);
return false;
}
for (String str : aVar.c.keySet()) {
if (str.startsWith("c_")) {
a(str, aVar.a(str));
} else {
long d = aVar.d(str);
if (d == 0) {
a(str, aVar.a(str));
} else if (d < 100) {
a(str, d);
}
}
}
return true;
}
final String a(String str) {
return this.c.get(str);
}
final String a(boolean z, boolean z2, boolean z3) {
if (this.d == null) {
return null;
}
StringBuilder sb = new StringBuilder();
if (z) {
h.b(sb, "lt", "uc");
h.b(sb, "pre", com.uc.crashsdk.g.e());
h.b(sb, "pkg", com.uc.crashsdk.a.a);
h.b(sb, "rom", Build.VERSION.RELEASE);
h.b(sb, "brd", Build.BRAND);
h.b(sb, "model", Build.MODEL);
h.a(sb, "sdk", Build.VERSION.SDK_INT);
h.b(sb, ak.w, com.uc.crashsdk.e.e());
h.b(sb, "hdw", com.uc.crashsdk.e.f());
long l = h.l();
h.a(sb, "ram", l);
h.b(sb, "aram", h.a(l));
h.b(sb, "cver", "3.3.1.1");
h.b(sb, "cseq", "210916105822");
h.b(sb, "ctag", "release");
h.b(sb, "aver", com.uc.crashsdk.a.a());
h.b(sb, "ver", com.uc.crashsdk.g.R());
h.b(sb, "sver", com.uc.crashsdk.g.S());
h.b(sb, "seq", com.uc.crashsdk.g.T());
h.b(sb, "grd", com.uc.crashsdk.b.A() ? "fg" : "bg");
h.b(sb, ak.x, "android");
h.b(sb, "dn", com.uc.crashsdk.e.q());
String Z = com.uc.crashsdk.g.Z();
if (TextUtils.isEmpty(Z)) {
Z = com.uc.crashsdk.e.q();
}
h.b(sb, "k_uid", Z);
String aa = com.uc.crashsdk.g.aa();
if (!TextUtils.isEmpty(aa)) {
h.b(sb, "k_channel", aa);
}
sb.append("\n");
}
h.b(sb, "lt", this.d);
h.a(sb, this.c);
if (this.e && !z2) {
long j = this.a;
if (j != 0) {
h.b(sb, "up", String.valueOf(j));
}
if (z3) {
h.b(sb, "pid", String.format(Locale.US, "%d", Integer.valueOf(Process.myPid())));
} else {
int i = this.b;
if (i != 0) {
h.b(sb, "pid", String.format(Locale.US, "%d", Integer.valueOf(i)));
}
}
}
sb.append("\n");
return sb.toString();
}
}
static String a(long j2) {
if (j2 < 524288) {
return "512M";
}
return String.format(Locale.US, "%dG", Long.valueOf(((j2 / IjkMediaMeta.AV_CH_SIDE_RIGHT) + 512) / IjkMediaMeta.AV_CH_SIDE_RIGHT));
}
public static void b(StringBuilder sb, String str, String str2) {
sb.append(str);
sb.append("=");
sb.append(str2);
sb.append("`");
}
static Map c(String str) {
String[] split;
HashMap hashMap = new HashMap();
for (String str2 : str.split("`")) {
if (str2.length() > 1) {
String[] split2 = str2.split("=", 3);
if (split2.length == 2) {
hashMap.put(split2[0], split2[1]);
}
}
}
return hashMap;
}
public static void d() {
b(2, (long) ExoPlayer.DEFAULT_DETACH_SURFACE_TIMEOUT_MS);
a(1, 70000L);
}
public static boolean e() {
return j;
}
public static void f() {
b(1, (long) ExoPlayer.DEFAULT_DETACH_SURFACE_TIMEOUT_MS);
}
public static void g() {
b(3, 0L);
}
public static void h() {
b(4, 0L);
}
public static void i() {
if (com.uc.crashsdk.g.O()) {
f.a(1, new e(303));
}
}
public static byte[] j() {
return new byte[]{ByteCompanionObject.MAX_VALUE, 100, 110, 31};
}
public static void k() {
synchronized (k) {
l = null;
}
}
static long l() {
return o();
}
private static String m() {
return com.uc.crashsdk.g.U() + "pv.wa";
}
private static String n() {
return com.uc.crashsdk.g.U() + "cdt.wa";
}
private static long o() {
Iterator<String> it = g.a(new File("/proc/meminfo"), 2).iterator();
while (true) {
if (!it.hasNext()) {
break;
}
String next = it.next();
if (next.contains("MemTotal:")) {
try {
return Long.parseLong(next.replaceAll("\\D+", ""));
} catch (NumberFormatException e2) {
g.a(e2);
}
}
}
return 0L;
}
private static String p() {
String str = l;
if (g.a(str)) {
synchronized (k) {
str = g.a(com.uc.crashsdk.b.k(), com.uc.crashsdk.g.P() ? "https://errlogos.umeng.com/api/crashsdk/logcollect" : "https://errlog.umeng.com/api/crashsdk/logcollect", true);
l = str;
}
}
return str;
}
static void a(StringBuilder sb, String str, long j2) {
b(sb, str, String.valueOf(j2));
}
public static void b() {
a(2, 0L);
}
public static void c() {
a(3, 0L);
}
private static void b(int i2, long j2) {
if (com.uc.crashsdk.g.O()) {
f.a(1, new e(301, new Object[]{Integer.valueOf(i2)}), j2);
}
}
private static boolean c(String str, String str2) {
boolean z;
String c2;
String sb;
byte[] a2;
byte[] a3;
if (g.a(str2)) {
return true;
}
com.uc.crashsdk.a.a.a("wa", "Reporting datas: " + str2);
byte[] bytes = str2.getBytes();
try {
byte[] bArr = new byte[16];
c.a(bArr, 0, c.a());
c.a(bArr, 4, j());
c.a(bArr, 8, com.uc.crashsdk.a.f());
c.a(bArr, 12, d.d());
a3 = c.a(bytes, bArr);
} catch (Throwable th) {
g.a(th);
}
if (a3 != null) {
bytes = a3;
z = true;
if (str == null) {
str = "unknown";
}
String str3 = !com.uc.crashsdk.g.P() ? "4ea4e41a3993" : "28ef1713347d";
String valueOf = String.valueOf(System.currentTimeMillis());
c2 = g.c(str3 + str + valueOf + "AppChk#2014");
if (c2 != null) {
sb = null;
} else {
StringBuilder sb2 = new StringBuilder();
sb2.append(p());
sb2.append("?chk=");
sb2.append(c2.substring(c2.length() - 8, c2.length()));
sb2.append("&vno=");
sb2.append(valueOf);
sb2.append("&uuid=");
sb2.append(str);
sb2.append("&app=");
sb2.append(str3);
if (z) {
sb2.append("&enc=aes");
}
sb = sb2.toString();
}
com.uc.crashsdk.a.a.a("wa", "url: " + sb);
if (sb == null && (a2 = c.a(sb, bytes, true)) != null) {
String str4 = new String(a2);
com.uc.crashsdk.a.a.a("wa", "wa response: " + str4);
return !str4.contains("retcode=0");
}
return false;
}
z = false;
if (str == null) {
}
if (!com.uc.crashsdk.g.P()) {
}
String valueOf2 = String.valueOf(System.currentTimeMillis());
c2 = g.c(str3 + str + valueOf2 + "AppChk#2014");
if (c2 != null) {
}
com.uc.crashsdk.a.a.a("wa", "url: " + sb);
if (sb == null) {
return false;
}
String str42 = new String(a2);
com.uc.crashsdk.a.a.a("wa", "wa response: " + str42);
if (!str42.contains("retcode=0")) {
}
}
private static boolean d(String str) {
boolean c2;
File file = new File(str);
Iterator<a> it = a(file, "cst", 30).iterator();
while (it.hasNext()) {
a next = it.next();
String a2 = next.a("prc");
if (!g.a(a2)) {
Map<String, a> map = e;
a aVar = map.get(a2);
if (aVar != null) {
aVar.a(next);
} else {
map.put(a2, next);
}
}
}
Map<String, a> map2 = e;
StringBuilder a3 = a((Iterable<a>) map2.values(), true, false);
if (com.uc.crashsdk.g.Y()) {
c2 = b(com.uc.crashsdk.e.q(), a3.toString());
} else {
c2 = c(com.uc.crashsdk.e.q(), a3.toString());
}
g.b(file);
if (c2 || g.a(file, a((Iterable<a>) map2.values(), false, true).toString())) {
map2.clear();
}
return true;
}
static void a(StringBuilder sb, Map map) {
for (String str : map.keySet()) {
b(sb, str, (String) map.get(str));
}
}
public static void a(String str) {
synchronized (b) {
File file = new File(m());
a aVar = new a("pv", true, true);
String c2 = g.c(file);
com.uc.crashsdk.a.a.a("wa", "addAuthStat, read data: " + c2);
if (!g.a(c2)) {
aVar.c(c2);
}
aVar.a(str, 1L);
aVar.a("aujv", 1L);
String a2 = aVar.a(false, false, false);
com.uc.crashsdk.a.a.a("wa", "addAuthStat, save data: " + a2);
g.a(file, a2);
}
}
public static boolean b(int i2, Object[] objArr) {
switch (i2) {
case 351:
if (a || objArr != null) {
String str = (String) objArr[0];
int intValue = ((Integer) objArr[1]).intValue();
if (intValue == 1) {
if (j) {
return false;
}
j = true;
}
if (!com.uc.crashsdk.g.X()) {
com.uc.crashsdk.a.a.a("wa", "disable crp stat log");
return false;
}
File file = new File(str);
ArrayList<a> a2 = a(file, "crp", 100);
if (intValue != 4) {
a aVar = new a("crp", false, false);
if (intValue == 1) {
aVar.a("et", String.valueOf(com.uc.crashsdk.b.I()));
aVar.a("ete", String.valueOf(com.uc.crashsdk.b.J()));
} else if (intValue == 3) {
aVar.a("et", "1");
aVar.a("ete", "1");
} else if (intValue == 2) {
aVar.a("hpv", "1");
}
aVar.a("prc", com.uc.crashsdk.e.h());
aVar.a("imp", com.uc.crashsdk.b.F() ? "1" : SessionDescription.SUPPORTED_SDP_VERSION);
a(aVar);
a2.add(0, aVar);
}
if (!a2.isEmpty()) {
boolean c2 = c(com.uc.crashsdk.e.q(), a((Iterable<a>) a2, true, false).toString());
g.b(file);
if (!c2) {
g.a(file, a((Iterable<a>) a2, false, true).toString());
}
}
return true;
}
throw new AssertionError();
case 352:
if (a || objArr != null) {
return d((String) objArr[0]);
}
throw new AssertionError();
case 353:
if (a || objArr != null) {
return b((String) objArr[0], (String) objArr[1], ((Boolean) objArr[2]).booleanValue(), ((Boolean) objArr[3]).booleanValue());
}
throw new AssertionError();
case 354:
if (a || objArr != null) {
File file2 = new File((String) objArr[0]);
boolean c3 = c(com.uc.crashsdk.e.q(), a((Iterable<a>) a(file2, "cst", 30), true, false).toString());
if (c3) {
g.b(file2);
}
return c3;
}
throw new AssertionError();
default:
return false;
}
}
public static void a() {
a(0, com.uc.crashsdk.b.H() ? 700000L : 70000L);
}
private static void a(int i2, long j2) {
if (com.uc.crashsdk.b.F()) {
f.a(0, new e(302, new Object[]{Integer.valueOf(i2)}), j2);
}
}
public static void b(boolean z) {
if (a(z, "crash detail upload")) {
return;
}
String str = com.uc.crashsdk.g.U() + "dt.wa";
com.uc.crashsdk.b.a(f, str, new e(352, new Object[]{str}));
String n = n();
com.uc.crashsdk.b.a(g, n, new e(354, new Object[]{n}));
}
public static boolean a(String str, String str2) {
try {
String str3 = "c_" + str.replaceAll("[^0-9a-zA-Z-_]", "-");
String replaceAll = g.a(str2) ? "" : str2.replaceAll("[`=]", "-");
Map<String, String> map = c;
synchronized (map) {
if (map.get(str3) == null) {
int i2 = d;
if (i2 >= 20) {
return false;
}
d = i2 + 1;
}
map.put(str3, replaceAll);
return true;
}
} catch (Throwable th) {
g.a(th);
return false;
}
}
private static boolean b(String str, String str2) {
boolean z;
String sb;
byte[] a2;
if (g.a(str2)) {
return true;
}
com.uc.crashsdk.a.a.a("wa", "Reporting datas: " + str2);
byte[] bytes = str2.getBytes();
long currentTimeMillis = System.currentTimeMillis();
String c2 = g.c(com.uc.crashsdk.g.e() + str + currentTimeMillis + "AppChk#2014");
try {
a2 = c.a(bytes, c2.substring(c2.length() - 16, c2.length()).getBytes());
} catch (Throwable th) {
g.a(th);
}
if (a2 != null) {
bytes = a2;
z = true;
String substring = c2.substring(c2.length() - 8, c2.length());
StringBuilder sb2 = new StringBuilder();
sb2.append(!com.uc.crashsdk.g.P() ? "https://px-intl.ucweb.com" : "https://px.ucweb.com");
sb2.append("/api/v1/crashtrack/upload?chk=");
sb2.append(substring);
sb2.append("&vno=");
sb2.append(currentTimeMillis);
sb2.append("&uuid=");
sb2.append(str);
sb2.append("&app=");
sb2.append(com.uc.crashsdk.g.e());
if (z) {
sb2.append("&enc=aes");
}
sb = sb2.toString();
com.uc.crashsdk.a.a.a("wa", "url: " + sb);
if (sb != null) {
return false;
}
byte[] a3 = c.a(sb, bytes, true);
if (a3 == null) {
com.uc.crashsdk.a.a.a("wa", "px response is empty!");
return false;
}
String str3 = new String(a3);
com.uc.crashsdk.a.a.a("wa", "px response: " + str3);
return str3.contains("retcode=0");
}
z = false;
String substring2 = c2.substring(c2.length() - 8, c2.length());
StringBuilder sb22 = new StringBuilder();
sb22.append(!com.uc.crashsdk.g.P() ? "https://px-intl.ucweb.com" : "https://px.ucweb.com");
sb22.append("/api/v1/crashtrack/upload?chk=");
sb22.append(substring2);
sb22.append("&vno=");
sb22.append(currentTimeMillis);
sb22.append("&uuid=");
sb22.append(str);
sb22.append("&app=");
sb22.append(com.uc.crashsdk.g.e());
if (z) {
}
sb = sb22.toString();
com.uc.crashsdk.a.a.a("wa", "url: " + sb);
if (sb != null) {
}
}
private static void a(a aVar) {
Map<String, String> map = c;
synchronized (map) {
for (String str : map.keySet()) {
aVar.a(str, c.get(str));
}
}
}
public static void a(boolean z) {
a(1, z);
}
public static boolean a(boolean z, String str) {
if (com.uc.crashsdk.b.d && !z && JNIBridge.nativeIsCrashing()) {
com.uc.crashsdk.a.a.b("crashsdk", "Native is crashing, skip stat for " + str);
return true;
}
return false;
}
private static boolean b(String str, String str2, boolean z, boolean z2) {
a aVar;
File file = new File(n());
ArrayList<a> a2 = a(file, "cst", 30);
String str3 = str + str2;
Iterator<a> it = a2.iterator();
while (true) {
if (!it.hasNext()) {
aVar = null;
break;
}
aVar = it.next();
if (str3.equals(aVar.b("prc") + aVar.b("typ"))) {
break;
}
}
if (aVar == null) {
aVar = new a("cst", false, true);
aVar.a("prc", str);
aVar.a("typ", str2);
a(aVar);
a2.add(aVar);
}
aVar.a("cnt", 1L);
if (z) {
aVar.a("lim", 1L);
}
if (z2) {
aVar.a("syu", 1L);
}
return g.a(file, a((Iterable<a>) a2, false, false).toString());
}
private static void a(int i2, boolean z) {
if (a(z, "crash rate")) {
return;
}
String str = com.uc.crashsdk.g.U() + "cr.wa";
com.uc.crashsdk.b.a(b, str, new e(351, new Object[]{str, Integer.valueOf(i2)}));
}
public static void a(int i2, Object[] objArr) {
String str;
long j2;
boolean c2;
boolean z;
switch (i2) {
case 301:
if (!a && objArr == null) {
throw new AssertionError();
}
a(((Integer) objArr[0]).intValue(), false);
return;
case 302:
if (!a && objArr == null) {
throw new AssertionError();
}
synchronized (b) {
int intValue = ((Integer) objArr[0]).intValue();
if (intValue == 0) {
if (!i) {
i = true;
}
}
if (com.uc.crashsdk.a.b.equals("2.0") && com.uc.crashsdk.b.c(268435456)) {
com.uc.crashsdk.a.a.a("wa", "pv stat is disabled");
} else {
File file = new File(m());
String c3 = g.c(file);
a aVar = new a("pv", true, true);
com.uc.crashsdk.a.a.a("wa", "addPvStatImpl, read data: " + c3);
if (!g.a(c3)) {
aVar.c(c3);
}
if (intValue == 0) {
com.uc.crashsdk.a.a.a("wa", String.format(Locale.US, "Last upload pid is %d", Integer.valueOf(aVar.b)));
if (aVar.b != Process.myPid()) {
z = false;
break;
} else {
z = true;
break;
}
}
if (intValue == 0) {
aVar.a("pv", 1L);
str = "fjv";
} else if (intValue == 1) {
str = "hpv";
} else {
if (intValue == 2) {
aVar.a("pv", 1L);
str = "npv";
}
String q = com.uc.crashsdk.e.q();
j2 = aVar.a;
if (j2 != 0) {
long currentTimeMillis = System.currentTimeMillis() - j2;
com.uc.crashsdk.a.a.a("wa", String.format(Locale.US, "Upload delta %d s, min interval: %d s", Long.valueOf(currentTimeMillis / 1000), 28800L));
if (currentTimeMillis < 28800000) {
c2 = false;
if (c2) {
aVar.c = new HashMap();
aVar.a = System.currentTimeMillis();
aVar.b = Process.myPid();
}
String a2 = aVar.a(false, false, true);
com.uc.crashsdk.a.a.a("wa", "addPvStatImpl, save data: " + a2);
g.a(file, a2);
}
}
c2 = c(q, aVar.a(true, true, false));
if (c2) {
}
String a22 = aVar.a(false, false, true);
com.uc.crashsdk.a.a.a("wa", "addPvStatImpl, save data: " + a22);
g.a(file, a22);
}
aVar.a(str, 1L);
String q2 = com.uc.crashsdk.e.q();
j2 = aVar.a;
if (j2 != 0) {
}
c2 = c(q2, aVar.a(true, true, false));
if (c2) {
}
String a222 = aVar.a(false, false, true);
com.uc.crashsdk.a.a.a("wa", "addPvStatImpl, save data: " + a222);
g.a(file, a222);
}
}
return;
case 303:
b(false);
return;
default:
if (!a) {
throw new AssertionError();
}
return;
}
}
private static StringBuilder a(Iterable<a> iterable, boolean z, boolean z2) {
StringBuilder sb = new StringBuilder();
boolean z3 = true;
for (a aVar : iterable) {
if (z3) {
sb.append(aVar.a(z, z, z2));
z3 = false;
} else {
sb.append(aVar.a(false, z, z2));
}
}
return sb;
}
public static void b(String str) {
synchronized (k) {
l = str;
String k2 = com.uc.crashsdk.b.k();
b.a(k2, str + "\n");
}
}
public static void a(String str, int i2, int i3) {
if (com.uc.crashsdk.g.O()) {
synchronized (f) {
Map<String, a> map = e;
a aVar = map.get(str);
if (aVar == null) {
aVar = new a("cst", false, true);
map.put(str, aVar);
a(aVar);
}
SparseArray<String> sparseArray = h;
synchronized (sparseArray) {
if (sparseArray.size() == 0) {
a(100, "pv");
a(102, "hpv");
a(1, TtmlNode.COMBINE_ALL);
a(2, "afg");
a(101, "abg");
a(3, "jfg");
a(4, "jbg");
a(7, "nfg");
a(8, "nbg");
a(27, "nafg");
a(28, "nabg");
a(9, "nho");
a(10, "uar");
a(29, "ulm");
a(30, "ukt");
a(31, "uet");
a(32, "urs");
a(11, "ufg");
a(12, "ubg");
a(40, "anf");
a(41, "anb");
a(42, "ancf");
a(43, "ancb");
a(13, "lup");
a(14, "luf");
a(15, "lef");
a(200, "ltf");
a(16, "laf");
a(22, "lac");
a(23, "lau");
a(17, "llf");
a(18, "lul");
a(19, "lub");
a(20, "luc");
a(21, "luu");
a(24, "lzc");
a((int) CrashStatKey.LOG_UPLOAD_ENCRYPT_COUNT, "lec");
a(25, "lrc");
a(26, "lss");
}
}
String str2 = sparseArray.get(i2);
if (str2 == null) {
com.uc.crashsdk.a.a.a("crashsdk", "map key is not set with: " + i2, null);
}
aVar.a("prc", str);
if (str2 != null) {
aVar.a(str2, String.valueOf(i3));
}
}
}
}
public static boolean a(String str, String str2, boolean z, boolean z2) {
if (com.uc.crashsdk.g.O()) {
return com.uc.crashsdk.b.a(g, n(), new e(353, new Object[]{str, str2, Boolean.valueOf(z), Boolean.valueOf(z2)}));
}
return false;
}
private static void a(int i2, String str) {
h.put(i2, str);
}
private static ArrayList<a> a(File file, String str, int i2) {
ArrayList<String> a2 = g.a(file, i2);
ArrayList<a> arrayList = new ArrayList<>();
Iterator<String> it = a2.iterator();
while (it.hasNext()) {
a aVar = new a(str, false, false);
if (aVar.c(it.next())) {
arrayList.add(aVar);
}
}
return arrayList;
}
}