- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
344 lines
11 KiB
Java
344 lines
11 KiB
Java
package com.applovin.impl;
|
|
|
|
import android.media.MediaCrypto;
|
|
import android.media.MediaCryptoException;
|
|
import android.media.MediaDrm;
|
|
import android.media.UnsupportedSchemeException;
|
|
import android.text.TextUtils;
|
|
import com.applovin.exoplayer2.common.base.Charsets;
|
|
import com.applovin.impl.y6;
|
|
import com.applovin.impl.z7;
|
|
import com.mbridge.msdk.playercommon.exoplayer2.C;
|
|
import com.mbridge.msdk.playercommon.exoplayer2.util.MimeTypes;
|
|
import csdk.gluads.Consts;
|
|
import java.nio.ByteBuffer;
|
|
import java.nio.ByteOrder;
|
|
import java.nio.charset.Charset;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.UUID;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class m9 implements z7 {
|
|
public static final z7.c d = new z7.c() { // from class: com.applovin.impl.m9$$ExternalSyntheticLambda0
|
|
@Override // com.applovin.impl.z7.c
|
|
public final z7 a(UUID uuid) {
|
|
z7 b;
|
|
b = m9.b(uuid);
|
|
return b;
|
|
}
|
|
};
|
|
private final UUID a;
|
|
private final MediaDrm b;
|
|
private int c;
|
|
|
|
private static boolean e() {
|
|
return "ASUS_Z00AD".equals(xp.d);
|
|
}
|
|
|
|
@Override // com.applovin.impl.z7
|
|
public int c() {
|
|
return 2;
|
|
}
|
|
|
|
@Override // com.applovin.impl.z7
|
|
/* renamed from: f, reason: merged with bridge method [inline-methods] */
|
|
public l9 d(byte[] bArr) {
|
|
return new l9(a(this.a), bArr, xp.a < 21 && t2.d.equals(this.a) && "L3".equals(a("securityLevel")));
|
|
}
|
|
|
|
private static byte[] e(byte[] bArr) {
|
|
bh bhVar = new bh(bArr);
|
|
int m = bhVar.m();
|
|
short o = bhVar.o();
|
|
short o2 = bhVar.o();
|
|
if (o != 1 || o2 != 1) {
|
|
pc.c("FrameworkMediaDrm", "Unexpected record count or type. Skipping LA_URL workaround.");
|
|
return bArr;
|
|
}
|
|
short o3 = bhVar.o();
|
|
Charset charset = Charsets.UTF_16LE;
|
|
String a2 = bhVar.a(o3, charset);
|
|
if (a2.contains("<LA_URL>")) {
|
|
return bArr;
|
|
}
|
|
int indexOf = a2.indexOf("</DATA>");
|
|
if (indexOf == -1) {
|
|
pc.d("FrameworkMediaDrm", "Could not find the </DATA> tag. Skipping LA_URL workaround.");
|
|
}
|
|
String str = a2.substring(0, indexOf) + "<LA_URL>https://x</LA_URL>" + a2.substring(indexOf);
|
|
int i = m + 52;
|
|
ByteBuffer allocate = ByteBuffer.allocate(i);
|
|
allocate.order(ByteOrder.LITTLE_ENDIAN);
|
|
allocate.putInt(i);
|
|
allocate.putShort(o);
|
|
allocate.putShort(o2);
|
|
allocate.putShort((short) (str.length() * 2));
|
|
allocate.put(str.getBytes(charset));
|
|
return allocate.array();
|
|
}
|
|
|
|
private m9(UUID uuid) {
|
|
b1.a(uuid);
|
|
b1.a(!t2.b.equals(uuid), "Use C.CLEARKEY_UUID instead");
|
|
this.a = uuid;
|
|
MediaDrm mediaDrm = new MediaDrm(a(uuid));
|
|
this.b = mediaDrm;
|
|
this.c = 1;
|
|
if (t2.d.equals(uuid) && e()) {
|
|
a(mediaDrm);
|
|
}
|
|
}
|
|
|
|
@Override // com.applovin.impl.z7
|
|
public void c(byte[] bArr) {
|
|
this.b.closeSession(bArr);
|
|
}
|
|
|
|
public static m9 c(UUID uuid) {
|
|
try {
|
|
return new m9(uuid);
|
|
} catch (UnsupportedSchemeException e) {
|
|
throw new sp(1, e);
|
|
} catch (Exception e2) {
|
|
throw new sp(2, e2);
|
|
}
|
|
}
|
|
|
|
@Override // com.applovin.impl.z7
|
|
public byte[] d() {
|
|
return this.b.openSession();
|
|
}
|
|
|
|
@Override // com.applovin.impl.z7
|
|
public z7.d b() {
|
|
MediaDrm.ProvisionRequest provisionRequest = this.b.getProvisionRequest();
|
|
return new z7.d(provisionRequest.getData(), provisionRequest.getDefaultUrl());
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public static /* synthetic */ z7 b(UUID uuid) {
|
|
try {
|
|
return c(uuid);
|
|
} catch (sp unused) {
|
|
pc.b("FrameworkMediaDrm", "Failed to instantiate a FrameworkMediaDrm for uuid: " + uuid + Consts.STRING_PERIOD);
|
|
return new g7();
|
|
}
|
|
}
|
|
|
|
private static void a(MediaDrm mediaDrm) {
|
|
mediaDrm.setPropertyString("securityLevel", "L3");
|
|
}
|
|
|
|
public static class a {
|
|
public static boolean a(MediaDrm mediaDrm, String str) {
|
|
boolean requiresSecureDecoder;
|
|
requiresSecureDecoder = mediaDrm.requiresSecureDecoder(str);
|
|
return requiresSecureDecoder;
|
|
}
|
|
}
|
|
|
|
@Override // com.applovin.impl.z7
|
|
public Map b(byte[] bArr) {
|
|
return this.b.queryKeyStatus(bArr);
|
|
}
|
|
|
|
@Override // com.applovin.impl.z7
|
|
public byte[] b(byte[] bArr, byte[] bArr2) {
|
|
if (t2.c.equals(this.a)) {
|
|
bArr2 = i3.b(bArr2);
|
|
}
|
|
return this.b.provideKeyResponse(bArr, bArr2);
|
|
}
|
|
|
|
/* JADX WARN: Code restructure failed: missing block: B:27:0x0056, code lost:
|
|
|
|
if ("AFTT".equals(r0) == false) goto L28;
|
|
*/
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
private static byte[] b(java.util.UUID r3, byte[] r4) {
|
|
/*
|
|
java.util.UUID r0 = com.applovin.impl.t2.e
|
|
boolean r1 = r0.equals(r3)
|
|
if (r1 == 0) goto L18
|
|
byte[] r1 = com.applovin.impl.ji.a(r4, r3)
|
|
if (r1 != 0) goto Lf
|
|
goto L10
|
|
Lf:
|
|
r4 = r1
|
|
L10:
|
|
byte[] r4 = e(r4)
|
|
byte[] r4 = com.applovin.impl.ji.a(r0, r4)
|
|
L18:
|
|
int r1 = com.applovin.impl.xp.a
|
|
r2 = 23
|
|
if (r1 >= r2) goto L26
|
|
java.util.UUID r1 = com.applovin.impl.t2.d
|
|
boolean r1 = r1.equals(r3)
|
|
if (r1 != 0) goto L58
|
|
L26:
|
|
boolean r0 = r0.equals(r3)
|
|
if (r0 == 0) goto L5f
|
|
java.lang.String r0 = com.applovin.impl.xp.c
|
|
java.lang.String r1 = "Amazon"
|
|
boolean r0 = r1.equals(r0)
|
|
if (r0 == 0) goto L5f
|
|
java.lang.String r0 = com.applovin.impl.xp.d
|
|
java.lang.String r1 = "AFTB"
|
|
boolean r1 = r1.equals(r0)
|
|
if (r1 != 0) goto L58
|
|
java.lang.String r1 = "AFTS"
|
|
boolean r1 = r1.equals(r0)
|
|
if (r1 != 0) goto L58
|
|
java.lang.String r1 = "AFTM"
|
|
boolean r1 = r1.equals(r0)
|
|
if (r1 != 0) goto L58
|
|
java.lang.String r1 = "AFTT"
|
|
boolean r0 = r1.equals(r0)
|
|
if (r0 == 0) goto L5f
|
|
L58:
|
|
byte[] r3 = com.applovin.impl.ji.a(r4, r3)
|
|
if (r3 == 0) goto L5f
|
|
return r3
|
|
L5f:
|
|
return r4
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: com.applovin.impl.m9.b(java.util.UUID, byte[]):byte[]");
|
|
}
|
|
|
|
@Override // com.applovin.impl.z7
|
|
public z7.a a(byte[] bArr, List list, int i, HashMap hashMap) {
|
|
y6.b bVar;
|
|
byte[] bArr2;
|
|
String str;
|
|
if (list != null) {
|
|
bVar = a(this.a, list);
|
|
bArr2 = b(this.a, (byte[]) b1.a(bVar.f));
|
|
str = a(this.a, bVar.d);
|
|
} else {
|
|
bVar = null;
|
|
bArr2 = null;
|
|
str = null;
|
|
}
|
|
MediaDrm.KeyRequest keyRequest = this.b.getKeyRequest(bArr, bArr2, str, i, hashMap);
|
|
byte[] a2 = a(this.a, keyRequest.getData());
|
|
String defaultUrl = keyRequest.getDefaultUrl();
|
|
if ("https://x".equals(defaultUrl)) {
|
|
defaultUrl = "";
|
|
}
|
|
if (TextUtils.isEmpty(defaultUrl) && bVar != null && !TextUtils.isEmpty(bVar.c)) {
|
|
defaultUrl = bVar.c;
|
|
}
|
|
return new z7.a(a2, defaultUrl, xp.a >= 23 ? keyRequest.getRequestType() : Integer.MIN_VALUE);
|
|
}
|
|
|
|
public String a(String str) {
|
|
return this.b.getPropertyString(str);
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public /* synthetic */ void a(z7.b bVar, MediaDrm mediaDrm, byte[] bArr, int i, int i2, byte[] bArr2) {
|
|
bVar.a(this, bArr, i, i2, bArr2);
|
|
}
|
|
|
|
@Override // com.applovin.impl.z7
|
|
public void a(byte[] bArr) {
|
|
this.b.provideProvisionResponse(bArr);
|
|
}
|
|
|
|
@Override // com.applovin.impl.z7
|
|
public synchronized void a() {
|
|
int i = this.c - 1;
|
|
this.c = i;
|
|
if (i == 0) {
|
|
this.b.release();
|
|
}
|
|
}
|
|
|
|
@Override // com.applovin.impl.z7
|
|
public void a(byte[] bArr, byte[] bArr2) {
|
|
this.b.restoreKeys(bArr, bArr2);
|
|
}
|
|
|
|
@Override // com.applovin.impl.z7
|
|
public void a(final z7.b bVar) {
|
|
this.b.setOnEventListener(bVar == null ? null : new MediaDrm.OnEventListener() { // from class: com.applovin.impl.m9$$ExternalSyntheticLambda1
|
|
@Override // android.media.MediaDrm.OnEventListener
|
|
public final void onEvent(MediaDrm mediaDrm, byte[] bArr, int i, int i2, byte[] bArr2) {
|
|
m9.this.a(bVar, mediaDrm, bArr, i, i2, bArr2);
|
|
}
|
|
});
|
|
}
|
|
|
|
@Override // com.applovin.impl.z7
|
|
public boolean a(byte[] bArr, String str) {
|
|
if (xp.a >= 31) {
|
|
return a.a(this.b, str);
|
|
}
|
|
try {
|
|
MediaCrypto mediaCrypto = new MediaCrypto(this.a, bArr);
|
|
try {
|
|
return mediaCrypto.requiresSecureDecoderComponent(str);
|
|
} finally {
|
|
mediaCrypto.release();
|
|
}
|
|
} catch (MediaCryptoException unused) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
private static y6.b a(UUID uuid, List list) {
|
|
if (!t2.d.equals(uuid)) {
|
|
return (y6.b) list.get(0);
|
|
}
|
|
if (xp.a >= 28 && list.size() > 1) {
|
|
y6.b bVar = (y6.b) list.get(0);
|
|
int i = 0;
|
|
for (int i2 = 0; i2 < list.size(); i2++) {
|
|
y6.b bVar2 = (y6.b) list.get(i2);
|
|
byte[] bArr = (byte[]) b1.a(bVar2.f);
|
|
if (xp.a((Object) bVar2.d, (Object) bVar.d) && xp.a((Object) bVar2.c, (Object) bVar.c) && ji.a(bArr)) {
|
|
i += bArr.length;
|
|
}
|
|
}
|
|
byte[] bArr2 = new byte[i];
|
|
int i3 = 0;
|
|
for (int i4 = 0; i4 < list.size(); i4++) {
|
|
byte[] bArr3 = (byte[]) b1.a(((y6.b) list.get(i4)).f);
|
|
int length = bArr3.length;
|
|
System.arraycopy(bArr3, 0, bArr2, i3, length);
|
|
i3 += length;
|
|
}
|
|
return bVar.a(bArr2);
|
|
}
|
|
for (int i5 = 0; i5 < list.size(); i5++) {
|
|
y6.b bVar3 = (y6.b) list.get(i5);
|
|
int d2 = ji.d((byte[]) b1.a(bVar3.f));
|
|
int i6 = xp.a;
|
|
if (i6 < 23 && d2 == 0) {
|
|
return bVar3;
|
|
}
|
|
if (i6 >= 23 && d2 == 1) {
|
|
return bVar3;
|
|
}
|
|
}
|
|
return (y6.b) list.get(0);
|
|
}
|
|
|
|
private static UUID a(UUID uuid) {
|
|
return (xp.a >= 27 || !t2.c.equals(uuid)) ? uuid : t2.b;
|
|
}
|
|
|
|
private static String a(UUID uuid, String str) {
|
|
return (xp.a < 26 && t2.c.equals(uuid) && (MimeTypes.VIDEO_MP4.equals(str) || MimeTypes.AUDIO_MP4.equals(str))) ? C.CENC_TYPE_cenc : str;
|
|
}
|
|
|
|
private static byte[] a(UUID uuid, byte[] bArr) {
|
|
return t2.c.equals(uuid) ? i3.a(bArr) : bArr;
|
|
}
|
|
}
|