Add decompiled APK source code (JADX)

- 28,932 files
- Full Java source code
- Smali files
- Resources

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-02-18 14:52:23 -08:00
parent cc210a65ea
commit f9d20bb3fc
26991 changed files with 2541449 additions and 0 deletions

View File

@@ -0,0 +1,376 @@
package com.mbridge.msdk.playercommon.exoplayer2.drm;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import com.ironsource.mediationsdk.metadata.a;
import com.mbridge.msdk.playercommon.exoplayer2.C;
import com.mbridge.msdk.playercommon.exoplayer2.drm.DefaultDrmSession;
import com.mbridge.msdk.playercommon.exoplayer2.drm.DefaultDrmSessionEventListener;
import com.mbridge.msdk.playercommon.exoplayer2.drm.DrmInitData;
import com.mbridge.msdk.playercommon.exoplayer2.drm.DrmSession;
import com.mbridge.msdk.playercommon.exoplayer2.drm.ExoMediaCrypto;
import com.mbridge.msdk.playercommon.exoplayer2.drm.ExoMediaDrm;
import com.mbridge.msdk.playercommon.exoplayer2.extractor.mp4.PsshAtomUtil;
import com.mbridge.msdk.playercommon.exoplayer2.util.Assertions;
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
@TargetApi(18)
/* loaded from: classes4.dex */
public class DefaultDrmSessionManager<T extends ExoMediaCrypto> implements DefaultDrmSession.ProvisioningManager<T>, DrmSessionManager<T> {
public static final int INITIAL_DRM_REQUEST_RETRY_COUNT = 3;
public static final int MODE_DOWNLOAD = 2;
public static final int MODE_PLAYBACK = 0;
public static final int MODE_QUERY = 1;
public static final int MODE_RELEASE = 3;
public static final String PLAYREADY_CUSTOM_DATA_KEY = "PRCustomData";
private static final String TAG = "DefaultDrmSessionMgr";
private final MediaDrmCallback callback;
private final DefaultDrmSessionEventListener.EventDispatcher eventDispatcher;
private final int initialDrmRequestRetryCount;
private final ExoMediaDrm<T> mediaDrm;
volatile DefaultDrmSessionManager<T>.MediaDrmHandler mediaDrmHandler;
private int mode;
private final boolean multiSession;
private byte[] offlineLicenseKeySetId;
private final HashMap<String, String> optionalKeyRequestParameters;
private Looper playbackLooper;
private final List<DefaultDrmSession<T>> provisioningSessions;
private final List<DefaultDrmSession<T>> sessions;
private final UUID uuid;
@Deprecated
public interface EventListener extends DefaultDrmSessionEventListener {
}
@Retention(RetentionPolicy.SOURCE)
public @interface Mode {
}
public static final class MissingSchemeDataException extends Exception {
private MissingSchemeDataException(UUID uuid) {
super("Media does not support uuid: " + uuid);
}
}
@Deprecated
public static DefaultDrmSessionManager<FrameworkMediaCrypto> newWidevineInstance(MediaDrmCallback mediaDrmCallback, HashMap<String, String> hashMap, Handler handler, DefaultDrmSessionEventListener defaultDrmSessionEventListener) throws UnsupportedDrmException {
DefaultDrmSessionManager<FrameworkMediaCrypto> newWidevineInstance = newWidevineInstance(mediaDrmCallback, hashMap);
if (handler != null && defaultDrmSessionEventListener != null) {
newWidevineInstance.addListener(handler, defaultDrmSessionEventListener);
}
return newWidevineInstance;
}
public static DefaultDrmSessionManager<FrameworkMediaCrypto> newWidevineInstance(MediaDrmCallback mediaDrmCallback, HashMap<String, String> hashMap) throws UnsupportedDrmException {
return newFrameworkInstance(C.WIDEVINE_UUID, mediaDrmCallback, hashMap);
}
@Deprecated
public static DefaultDrmSessionManager<FrameworkMediaCrypto> newPlayReadyInstance(MediaDrmCallback mediaDrmCallback, String str, Handler handler, DefaultDrmSessionEventListener defaultDrmSessionEventListener) throws UnsupportedDrmException {
DefaultDrmSessionManager<FrameworkMediaCrypto> newPlayReadyInstance = newPlayReadyInstance(mediaDrmCallback, str);
if (handler != null && defaultDrmSessionEventListener != null) {
newPlayReadyInstance.addListener(handler, defaultDrmSessionEventListener);
}
return newPlayReadyInstance;
}
public static DefaultDrmSessionManager<FrameworkMediaCrypto> newPlayReadyInstance(MediaDrmCallback mediaDrmCallback, String str) throws UnsupportedDrmException {
HashMap hashMap;
if (TextUtils.isEmpty(str)) {
hashMap = null;
} else {
hashMap = new HashMap();
hashMap.put(PLAYREADY_CUSTOM_DATA_KEY, str);
}
return newFrameworkInstance(C.PLAYREADY_UUID, mediaDrmCallback, hashMap);
}
@Deprecated
public static DefaultDrmSessionManager<FrameworkMediaCrypto> newFrameworkInstance(UUID uuid, MediaDrmCallback mediaDrmCallback, HashMap<String, String> hashMap, Handler handler, DefaultDrmSessionEventListener defaultDrmSessionEventListener) throws UnsupportedDrmException {
DefaultDrmSessionManager<FrameworkMediaCrypto> newFrameworkInstance = newFrameworkInstance(uuid, mediaDrmCallback, hashMap);
if (handler != null && defaultDrmSessionEventListener != null) {
newFrameworkInstance.addListener(handler, defaultDrmSessionEventListener);
}
return newFrameworkInstance;
}
public static DefaultDrmSessionManager<FrameworkMediaCrypto> newFrameworkInstance(UUID uuid, MediaDrmCallback mediaDrmCallback, HashMap<String, String> hashMap) throws UnsupportedDrmException {
return new DefaultDrmSessionManager<>(uuid, (ExoMediaDrm) FrameworkMediaDrm.newInstance(uuid), mediaDrmCallback, hashMap, false, 3);
}
@Deprecated
public DefaultDrmSessionManager(UUID uuid, ExoMediaDrm<T> exoMediaDrm, MediaDrmCallback mediaDrmCallback, HashMap<String, String> hashMap, Handler handler, DefaultDrmSessionEventListener defaultDrmSessionEventListener) {
this(uuid, exoMediaDrm, mediaDrmCallback, hashMap);
if (handler == null || defaultDrmSessionEventListener == null) {
return;
}
addListener(handler, defaultDrmSessionEventListener);
}
public DefaultDrmSessionManager(UUID uuid, ExoMediaDrm<T> exoMediaDrm, MediaDrmCallback mediaDrmCallback, HashMap<String, String> hashMap) {
this(uuid, (ExoMediaDrm) exoMediaDrm, mediaDrmCallback, hashMap, false, 3);
}
@Deprecated
public DefaultDrmSessionManager(UUID uuid, ExoMediaDrm<T> exoMediaDrm, MediaDrmCallback mediaDrmCallback, HashMap<String, String> hashMap, Handler handler, DefaultDrmSessionEventListener defaultDrmSessionEventListener, boolean z) {
this(uuid, exoMediaDrm, mediaDrmCallback, hashMap, z);
if (handler == null || defaultDrmSessionEventListener == null) {
return;
}
addListener(handler, defaultDrmSessionEventListener);
}
public DefaultDrmSessionManager(UUID uuid, ExoMediaDrm<T> exoMediaDrm, MediaDrmCallback mediaDrmCallback, HashMap<String, String> hashMap, boolean z) {
this(uuid, exoMediaDrm, mediaDrmCallback, hashMap, z, 3);
}
@Deprecated
public DefaultDrmSessionManager(UUID uuid, ExoMediaDrm<T> exoMediaDrm, MediaDrmCallback mediaDrmCallback, HashMap<String, String> hashMap, Handler handler, DefaultDrmSessionEventListener defaultDrmSessionEventListener, boolean z, int i) {
this(uuid, exoMediaDrm, mediaDrmCallback, hashMap, z, i);
if (handler == null || defaultDrmSessionEventListener == null) {
return;
}
addListener(handler, defaultDrmSessionEventListener);
}
public DefaultDrmSessionManager(UUID uuid, ExoMediaDrm<T> exoMediaDrm, MediaDrmCallback mediaDrmCallback, HashMap<String, String> hashMap, boolean z, int i) {
Assertions.checkNotNull(uuid);
Assertions.checkNotNull(exoMediaDrm);
Assertions.checkArgument(!C.COMMON_PSSH_UUID.equals(uuid), "Use C.CLEARKEY_UUID instead");
this.uuid = uuid;
this.mediaDrm = exoMediaDrm;
this.callback = mediaDrmCallback;
this.optionalKeyRequestParameters = hashMap;
this.eventDispatcher = new DefaultDrmSessionEventListener.EventDispatcher();
this.multiSession = z;
this.initialDrmRequestRetryCount = i;
this.mode = 0;
this.sessions = new ArrayList();
this.provisioningSessions = new ArrayList();
if (z) {
exoMediaDrm.setPropertyString("sessionSharing", a.j);
}
exoMediaDrm.setOnEventListener(new MediaDrmEventListener());
}
public final void addListener(Handler handler, DefaultDrmSessionEventListener defaultDrmSessionEventListener) {
this.eventDispatcher.addListener(handler, defaultDrmSessionEventListener);
}
public final void removeListener(DefaultDrmSessionEventListener defaultDrmSessionEventListener) {
this.eventDispatcher.removeListener(defaultDrmSessionEventListener);
}
public final String getPropertyString(String str) {
return this.mediaDrm.getPropertyString(str);
}
public final void setPropertyString(String str, String str2) {
this.mediaDrm.setPropertyString(str, str2);
}
public final byte[] getPropertyByteArray(String str) {
return this.mediaDrm.getPropertyByteArray(str);
}
public final void setPropertyByteArray(String str, byte[] bArr) {
this.mediaDrm.setPropertyByteArray(str, bArr);
}
public void setMode(int i, byte[] bArr) {
Assertions.checkState(this.sessions.isEmpty());
if (i == 1 || i == 3) {
Assertions.checkNotNull(bArr);
}
this.mode = i;
this.offlineLicenseKeySetId = bArr;
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.drm.DrmSessionManager
public boolean canAcquireSession(@NonNull DrmInitData drmInitData) {
if (this.offlineLicenseKeySetId != null) {
return true;
}
if (getSchemeData(drmInitData, this.uuid, true) == null) {
if (drmInitData.schemeDataCount != 1 || !drmInitData.get(0).matches(C.COMMON_PSSH_UUID)) {
return false;
}
Log.w(TAG, "DrmInitData only contains common PSSH SchemeData. Assuming support for: " + this.uuid);
}
String str = drmInitData.schemeType;
if (str == null || C.CENC_TYPE_cenc.equals(str)) {
return true;
}
return !(C.CENC_TYPE_cbc1.equals(str) || C.CENC_TYPE_cbcs.equals(str) || C.CENC_TYPE_cens.equals(str)) || Util.SDK_INT >= 25;
}
/* JADX WARN: Multi-variable type inference failed */
/* JADX WARN: Type inference failed for: r2v0, types: [com.mbridge.msdk.playercommon.exoplayer2.drm.DefaultDrmSessionManager$1] */
/* JADX WARN: Type inference failed for: r2v1 */
/* JADX WARN: Type inference failed for: r2v12 */
/* JADX WARN: Type inference failed for: r2v2 */
/* JADX WARN: Type inference failed for: r2v3, types: [com.mbridge.msdk.playercommon.exoplayer2.drm.DefaultDrmSession, com.mbridge.msdk.playercommon.exoplayer2.drm.DrmSession<T extends com.mbridge.msdk.playercommon.exoplayer2.drm.ExoMediaCrypto>] */
/* JADX WARN: Type inference failed for: r2v5 */
/* JADX WARN: Type inference failed for: r2v7, types: [com.mbridge.msdk.playercommon.exoplayer2.drm.DefaultDrmSession] */
@Override // com.mbridge.msdk.playercommon.exoplayer2.drm.DrmSessionManager
public DrmSession<T> acquireSession(Looper looper, DrmInitData drmInitData) {
DrmInitData.SchemeData schemeData;
Looper looper2 = this.playbackLooper;
Assertions.checkState(looper2 == null || looper2 == looper);
if (this.sessions.isEmpty()) {
this.playbackLooper = looper;
if (this.mediaDrmHandler == null) {
this.mediaDrmHandler = new MediaDrmHandler(looper);
}
}
DefaultDrmSession<T> defaultDrmSession = 0;
defaultDrmSession = 0;
if (this.offlineLicenseKeySetId == null) {
DrmInitData.SchemeData schemeData2 = getSchemeData(drmInitData, this.uuid, false);
if (schemeData2 == null) {
MissingSchemeDataException missingSchemeDataException = new MissingSchemeDataException(this.uuid);
this.eventDispatcher.drmSessionManagerError(missingSchemeDataException);
return new ErrorStateDrmSession(new DrmSession.DrmSessionException(missingSchemeDataException));
}
schemeData = schemeData2;
} else {
schemeData = null;
}
if (!this.multiSession) {
if (!this.sessions.isEmpty()) {
defaultDrmSession = this.sessions.get(0);
}
} else {
byte[] bArr = schemeData != null ? schemeData.data : null;
Iterator<DefaultDrmSession<T>> it = this.sessions.iterator();
while (true) {
if (!it.hasNext()) {
break;
}
DefaultDrmSession<T> next = it.next();
if (next.hasInitData(bArr)) {
defaultDrmSession = next;
break;
}
}
}
if (defaultDrmSession == 0) {
DefaultDrmSession<T> defaultDrmSession2 = new DefaultDrmSession<>(this.uuid, this.mediaDrm, this, schemeData, this.mode, this.offlineLicenseKeySetId, this.optionalKeyRequestParameters, this.callback, looper, this.eventDispatcher, this.initialDrmRequestRetryCount);
this.sessions.add(defaultDrmSession2);
defaultDrmSession = defaultDrmSession2;
}
((DefaultDrmSession) defaultDrmSession).acquire();
return (DrmSession<T>) defaultDrmSession;
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.drm.DrmSessionManager
public void releaseSession(DrmSession<T> drmSession) {
if (drmSession instanceof ErrorStateDrmSession) {
return;
}
DefaultDrmSession<T> defaultDrmSession = (DefaultDrmSession) drmSession;
if (defaultDrmSession.release()) {
this.sessions.remove(defaultDrmSession);
if (this.provisioningSessions.size() > 1 && this.provisioningSessions.get(0) == defaultDrmSession) {
this.provisioningSessions.get(1).provision();
}
this.provisioningSessions.remove(defaultDrmSession);
}
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.drm.DefaultDrmSession.ProvisioningManager
public void provisionRequired(DefaultDrmSession<T> defaultDrmSession) {
this.provisioningSessions.add(defaultDrmSession);
if (this.provisioningSessions.size() == 1) {
defaultDrmSession.provision();
}
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.drm.DefaultDrmSession.ProvisioningManager
public void onProvisionCompleted() {
Iterator<DefaultDrmSession<T>> it = this.provisioningSessions.iterator();
while (it.hasNext()) {
it.next().onProvisionCompleted();
}
this.provisioningSessions.clear();
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.drm.DefaultDrmSession.ProvisioningManager
public void onProvisionError(Exception exc) {
Iterator<DefaultDrmSession<T>> it = this.provisioningSessions.iterator();
while (it.hasNext()) {
it.next().onProvisionError(exc);
}
this.provisioningSessions.clear();
}
private static DrmInitData.SchemeData getSchemeData(DrmInitData drmInitData, UUID uuid, boolean z) {
ArrayList arrayList = new ArrayList(drmInitData.schemeDataCount);
for (int i = 0; i < drmInitData.schemeDataCount; i++) {
DrmInitData.SchemeData schemeData = drmInitData.get(i);
if ((schemeData.matches(uuid) || (C.CLEARKEY_UUID.equals(uuid) && schemeData.matches(C.COMMON_PSSH_UUID))) && (schemeData.data != null || z)) {
arrayList.add(schemeData);
}
}
if (arrayList.isEmpty()) {
return null;
}
if (C.WIDEVINE_UUID.equals(uuid)) {
for (int i2 = 0; i2 < arrayList.size(); i2++) {
DrmInitData.SchemeData schemeData2 = (DrmInitData.SchemeData) arrayList.get(i2);
int parseVersion = schemeData2.hasData() ? PsshAtomUtil.parseVersion(schemeData2.data) : -1;
int i3 = Util.SDK_INT;
if (i3 < 23 && parseVersion == 0) {
return schemeData2;
}
if (i3 >= 23 && parseVersion == 1) {
return schemeData2;
}
}
}
return (DrmInitData.SchemeData) arrayList.get(0);
}
@SuppressLint({"HandlerLeak"})
public class MediaDrmHandler extends Handler {
public MediaDrmHandler(Looper looper) {
super(looper);
}
@Override // android.os.Handler
public void handleMessage(Message message) {
byte[] bArr = (byte[]) message.obj;
for (DefaultDrmSession defaultDrmSession : DefaultDrmSessionManager.this.sessions) {
if (defaultDrmSession.hasSessionId(bArr)) {
defaultDrmSession.onMediaDrmEvent(message.what);
return;
}
}
}
}
public class MediaDrmEventListener implements ExoMediaDrm.OnEventListener<T> {
private MediaDrmEventListener() {
}
@Override // com.mbridge.msdk.playercommon.exoplayer2.drm.ExoMediaDrm.OnEventListener
public void onEvent(ExoMediaDrm<? extends T> exoMediaDrm, byte[] bArr, int i, int i2, byte[] bArr2) {
if (DefaultDrmSessionManager.this.mode == 0) {
DefaultDrmSessionManager.this.mediaDrmHandler.obtainMessage(i, bArr).sendToTarget();
}
}
}
}