Step Record v1.1.5版本的 MD5 值为:5797275f89198878d2f00ee92d534382

以下内容为反编译后的 HSzK.java 源代码,内容仅作参考


package com.chartboost.heliumsdk.impl;

import android.annotation.SuppressLint;
import android.media.DeniedByServerException;
import android.media.MediaCrypto;
import android.media.MediaCryptoException;
import android.media.MediaDrm;
import android.media.MediaDrmException;
import android.media.NotProvisionedException;
import android.media.UnsupportedSchemeException;
import android.media.metrics.LogSessionId;
import android.text.TextUtils;
import androidx.annotation.DoNotInline;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import com.chartboost.heliumsdk.impl.HK1H;
import com.chartboost.heliumsdk.impl.HK1Sz;
import com.chartboost.heliumsdk.impl.HSSzKH1;
import com.chartboost.heliumsdk.impl.SHS1K;
import com.chartboost.heliumsdk.impl.ztzHHSttS;
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;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

@RequiresApi(18)
public final class HSzK implements HK1H {
    public static final K1zS1t1 t1S1zKHK = new K1zS1t1();
    public int HtSH;
    public final UUID SKHKzK;
    public final MediaDrm t1H1KH1K;

    @RequiresApi(31)
    public static class SKHKzK {
        @DoNotInline
        public static boolean SKHKzK(MediaDrm mediaDrm, String str) {
            boolean requiresSecureDecoder;
            requiresSecureDecoder = mediaDrm.requiresSecureDecoder(str);
            return requiresSecureDecoder;
        }

        @DoNotInline
        public static void t1H1KH1K(MediaDrm mediaDrm, byte[] bArr, ztzHHSttS ztzhhstts) {
            LogSessionId logSessionId;
            boolean equals;
            MediaDrm.PlaybackComponent playbackComponent;
            ztzHHSttS.SKHKzK sKHKzK = ztzhhstts.SKHKzK;
            sKHKzK.getClass();
            logSessionId = LogSessionId.LOG_SESSION_ID_NONE;
            LogSessionId logSessionId2 = sKHKzK.SKHKzK;
            equals = logSessionId2.equals(logSessionId);
            if (!equals) {
                playbackComponent = mediaDrm.getPlaybackComponent(bArr);
                playbackComponent.getClass();
                playbackComponent.setLogSessionId(logSessionId2);
            }
        }
    }

    public HSzK(UUID uuid) throws UnsupportedSchemeException {
        uuid.getClass();
        UUID uuid2 = tS.t1H1KH1K;
        KK1z.tz(!uuid2.equals(uuid), "Use C.CLEARKEY_UUID instead");
        this.SKHKzK = uuid;
        MediaDrm mediaDrm = new MediaDrm((zKStH.SKHKzK >= 27 || !tS.HtSH.equals(uuid)) ? uuid : uuid2);
        this.t1H1KH1K = mediaDrm;
        this.HtSH = 1;
        if (tS.t1S1zKHK.equals(uuid) && "ASUS_Z00AD".equals(zKStH.t1S1zKHK)) {
            mediaDrm.setPropertyString("securityLevel", "L3");
        }
    }

    @Override
    public final S1KKSHS HtSH(byte[] bArr) throws MediaCryptoException {
        boolean z;
        int i = zKStH.SKHKzK;
        UUID uuid = this.SKHKzK;
        if (i < 21 && tS.t1S1zKHK.equals(uuid) && "L3".equals(this.t1H1KH1K.getPropertyString("securityLevel"))) {
            z = true;
        } else {
            z = false;
        }
        if (i < 27 && tS.HtSH.equals(uuid)) {
            uuid = tS.t1H1KH1K;
        }
        return new SzKSHzKt(uuid, bArr, z);
    }

    @Override
    public final void SKHKzK(@Nullable final SHS1K.SKHKzK sKHKzK) {
        this.t1H1KH1K.setOnEventListener(new MediaDrm.OnEventListener() {
            @Override
            public final void onEvent(MediaDrm mediaDrm, byte[] bArr, int i, int i2, byte[] bArr2) {
                HSzK hSzK = HSzK.this;
                HK1H.t1H1KH1K t1h1kh1k = sKHKzK;
                hSzK.getClass();
                SHS1K.t1H1KH1K t1h1kh1k2 = SHS1K.this.tHKtz;
                t1h1kh1k2.getClass();
                t1h1kh1k2.obtainMessage(i, bArr).sendToTarget();
            }
        });
    }

    @Override
    public final void closeSession(byte[] bArr) {
        this.t1H1KH1K.closeSession(bArr);
    }

    @Override
    public final HK1H.t1S1zKHK getProvisionRequest() {
        MediaDrm.ProvisionRequest provisionRequest = this.t1H1KH1K.getProvisionRequest();
        return new HK1H.t1S1zKHK(provisionRequest.getData(), provisionRequest.getDefaultUrl());
    }

    @Override
    public final byte[] openSession() throws MediaDrmException {
        return this.t1H1KH1K.openSession();
    }

    @Override
    @Nullable
    public final byte[] provideKeyResponse(byte[] bArr, byte[] bArr2) throws NotProvisionedException, DeniedByServerException {
        if (tS.HtSH.equals(this.SKHKzK) && zKStH.SKHKzK < 27) {
            try {
                JSONObject jSONObject = new JSONObject(new String(bArr2, KSSHH.HtSH));
                StringBuilder sb = new StringBuilder("{\"keys\":[");
                JSONArray jSONArray = jSONObject.getJSONArray("keys");
                for (int i = 0; i < jSONArray.length(); i++) {
                    if (i != 0) {
                        sb.append(",");
                    }
                    JSONObject jSONObject2 = jSONArray.getJSONObject(i);
                    sb.append("{\"k\":\"");
                    sb.append(jSONObject2.getString("k").replace('-', '+').replace('_', '/'));
                    sb.append("\",\"kid\":\"");
                    sb.append(jSONObject2.getString("kid").replace('-', '+').replace('_', '/'));
                    sb.append("\",\"kty\":\"");
                    sb.append(jSONObject2.getString("kty"));
                    sb.append("\"}");
                }
                sb.append("]}");
                bArr2 = zKStH.Hz1HtH(sb.toString());
            } catch (JSONException e) {
                SzHSHH.t1S1zKHK("ClearKeyUtil", "Failed to adjust response data: ".concat(new String(bArr2, KSSHH.HtSH)), e);
            }
        }
        return this.t1H1KH1K.provideKeyResponse(bArr, bArr2);
    }

    @Override
    public final void provideProvisionResponse(byte[] bArr) throws DeniedByServerException {
        this.t1H1KH1K.provideProvisionResponse(bArr);
    }

    @Override
    public final Map<String, String> queryKeyStatus(byte[] bArr) {
        return this.t1H1KH1K.queryKeyStatus(bArr);
    }

    @Override
    public final synchronized void release() {
        int i = this.HtSH - 1;
        this.HtSH = i;
        if (i == 0) {
            this.t1H1KH1K.release();
        }
    }

    @Override
    public final void restoreKeys(byte[] bArr, byte[] bArr2) {
        this.t1H1KH1K.restoreKeys(bArr, bArr2);
    }

    @Override
    public final int t1H1KH1K() {
        return 2;
    }

    @Override
    @SuppressLint({"WrongConstant"})
    public final HK1H.SKHKzK t1S1zKHK(byte[] bArr, @Nullable List<HSSzKH1.t1H1KH1K> list, int i, @Nullable HashMap<String, String> hashMap) throws NotProvisionedException {
        HSSzKH1.t1H1KH1K t1h1kh1k;
        byte[] bArr2;
        String str;
        int i2;
        boolean z;
        boolean z2;
        int i3;
        UUID uuid = this.SKHKzK;
        if (list != null) {
            if (!tS.t1S1zKHK.equals(uuid)) {
                t1h1kh1k = list.get(0);
            } else {
                if (zKStH.SKHKzK >= 28 && list.size() > 1) {
                    HSSzKH1.t1H1KH1K t1h1kh1k2 = list.get(0);
                    int i4 = 0;
                    for (int i5 = 0; i5 < list.size(); i5++) {
                        HSSzKH1.t1H1KH1K t1h1kh1k3 = list.get(i5);
                        byte[] bArr3 = t1h1kh1k3.HKS;
                        bArr3.getClass();
                        if (zKStH.SKHKzK(t1h1kh1k3.zS, t1h1kh1k2.zS) && zKStH.SKHKzK(t1h1kh1k3.HKzHtzz, t1h1kh1k2.HKzHtzz)) {
                            if (HK1Sz.SKHKzK(bArr3) != null) {
                                z2 = true;
                            } else {
                                z2 = false;
                            }
                            if (z2) {
                                i4 += bArr3.length;
                            }
                        }
                        z = false;
                    }
                    z = true;
                    if (z) {
                        byte[] bArr4 = new byte[i4];
                        int i6 = 0;
                        for (int i7 = 0; i7 < list.size(); i7++) {
                            byte[] bArr5 = list.get(i7).HKS;
                            bArr5.getClass();
                            int length = bArr5.length;
                            System.arraycopy(bArr5, 0, bArr4, i6, length);
                            i6 += length;
                        }
                        t1h1kh1k = new HSSzKH1.t1H1KH1K(t1h1kh1k2.KtH1t1, t1h1kh1k2.HKzHtzz, t1h1kh1k2.zS, bArr4);
                    }
                }
                for (int i8 = 0; i8 < list.size(); i8++) {
                    HSSzKH1.t1H1KH1K t1h1kh1k4 = list.get(i8);
                    byte[] bArr6 = t1h1kh1k4.HKS;
                    bArr6.getClass();
                    HK1Sz.SKHKzK SKHKzK2 = HK1Sz.SKHKzK(bArr6);
                    if (SKHKzK2 == null) {
                        i2 = -1;
                    } else {
                        i2 = SKHKzK2.t1H1KH1K;
                    }
                    int i9 = zKStH.SKHKzK;
                    if ((i9 < 23 && i2 == 0) || (i9 >= 23 && i2 == 1)) {
                        t1h1kh1k = t1h1kh1k4;
                        break;
                    }
                }
                t1h1kh1k = list.get(0);
            }
            byte[] bArr7 = t1h1kh1k.HKS;
            bArr7.getClass();
            UUID uuid2 = tS.tz;
            if (uuid2.equals(uuid)) {
                byte[] t1H1KH1K = HK1Sz.t1H1KH1K(bArr7, uuid);
                if (t1H1KH1K != null) {
                    bArr7 = t1H1KH1K;
                }
                S11H1Htz1 s11H1Htz1 = new S11H1Htz1(bArr7);
                int HKzHtzz = s11H1Htz1.HKzHtzz();
                short HKS = s11H1Htz1.HKS();
                short HKS2 = s11H1Htz1.HKS();
                if (HKS == 1 && HKS2 == 1) {
                    short HKS3 = s11H1Htz1.HKS();
                    Charset charset = KSSHH.tz;
                    String tHH1Kt = s11H1Htz1.tHH1Kt(HKS3, charset);
                    if (!tHH1Kt.contains("<LA_URL>")) {
                        int indexOf = tHH1Kt.indexOf("</DATA>");
                        if (indexOf == -1) {
                            SzHSHH.tzttS1SS1("FrameworkMediaDrm", "Could not find the </DATA> tag. Skipping LA_URL workaround.");
                        }
                        String str2 = tHH1Kt.substring(0, indexOf) + "<LA_URL>https://x</LA_URL>" + tHH1Kt.substring(indexOf);
                        int i10 = HKzHtzz + 52;
                        ByteBuffer allocate = ByteBuffer.allocate(i10);
                        allocate.order(ByteOrder.LITTLE_ENDIAN);
                        allocate.putInt(i10);
                        allocate.putShort(HKS);
                        allocate.putShort(HKS2);
                        allocate.putShort((short) (str2.length() * 2));
                        allocate.put(str2.getBytes(charset));
                        bArr7 = allocate.array();
                    }
                } else {
                    SzHSHH.tz("FrameworkMediaDrm", "Unexpected record count or type. Skipping LA_URL workaround.");
                }
                if (bArr7 != null) {
                    i3 = bArr7.length;
                } else {
                    i3 = 0;
                }
                int i11 = i3 + 32;
                ByteBuffer allocate2 = ByteBuffer.allocate(i11);
                allocate2.putInt(i11);
                allocate2.putInt(1886614376);
                allocate2.putInt(0);
                allocate2.putLong(uuid2.getMostSignificantBits());
                allocate2.putLong(uuid2.getLeastSignificantBits());
                if (bArr7 != null && bArr7.length != 0) {
                    allocate2.putInt(bArr7.length);
                    allocate2.put(bArr7);
                }
                bArr7 = allocate2.array();
            }
            int i12 = zKStH.SKHKzK;
            if (i12 >= 23 || !tS.t1S1zKHK.equals(uuid)) {
                if (uuid2.equals(uuid) && "Amazon".equals(zKStH.HtSH)) {
                    String str3 = zKStH.t1S1zKHK;
                    if (!"AFTB".equals(str3)) {
                        if (!"AFTS".equals(str3)) {
                            if (!"AFTM".equals(str3)) {
                            }
                        }
                    }
                }
                str = t1h1kh1k.zS;
                if (i12 < 26 && tS.HtSH.equals(uuid) && ("video/mp4".equals(str) || "audio/mp4".equals(str))) {
                    str = "cenc";
                }
                bArr2 = bArr7;
            }
            byte[] t1H1KH1K2 = HK1Sz.t1H1KH1K(bArr7, uuid);
            if (t1H1KH1K2 != null) {
                bArr7 = t1H1KH1K2;
            }
            str = t1h1kh1k.zS;
            if (i12 < 26) {
                str = "cenc";
            }
            bArr2 = bArr7;
        } else {
            t1h1kh1k = null;
            bArr2 = null;
            str = null;
        }
        MediaDrm.KeyRequest keyRequest = this.t1H1KH1K.getKeyRequest(bArr, bArr2, str, i, hashMap);
        byte[] data = keyRequest.getData();
        if (tS.HtSH.equals(uuid) && zKStH.SKHKzK < 27) {
            data = zKStH.Hz1HtH(new String(data, KSSHH.HtSH).replace('+', '-').replace('/', '_'));
        }
        String defaultUrl = keyRequest.getDefaultUrl();
        if ("<LA_URL>https://x</LA_URL>".equals(defaultUrl) || (zKStH.SKHKzK == 33 && "https://default.url".equals(defaultUrl))) {
            defaultUrl = "";
        }
        if (TextUtils.isEmpty(defaultUrl) && t1h1kh1k != null) {
            String str4 = t1h1kh1k.HKzHtzz;
            if (!TextUtils.isEmpty(str4)) {
                defaultUrl = str4;
            }
        }
        if (zKStH.SKHKzK >= 23) {
            keyRequest.getRequestType();
        }
        return new HK1H.SKHKzK(data, defaultUrl);
    }

    @Override
    public final void tz(byte[] bArr, ztzHHSttS ztzhhstts) {
        if (zKStH.SKHKzK >= 31) {
            try {
                SKHKzK.t1H1KH1K(this.t1H1KH1K, bArr, ztzhhstts);
            } catch (UnsupportedOperationException unused) {
                SzHSHH.tzttS1SS1("FrameworkMediaDrm", "setLogSessionId failed.");
            }
        }
    }

    @Override
    public final boolean tzttS1SS1(String str, byte[] bArr) {
        if (zKStH.SKHKzK >= 31) {
            return SKHKzK.SKHKzK(this.t1H1KH1K, str);
        }
        try {
            MediaCrypto mediaCrypto = new MediaCrypto(this.SKHKzK, bArr);
            try {
                return mediaCrypto.requiresSecureDecoderComponent(str);
            } finally {
                mediaCrypto.release();
            }
        } catch (MediaCryptoException unused) {
            return true;
        }
    }
}