导航菜单

页面标题

页面副标题

Sandridge Go v2025.2.170190457 - I.java 源代码

正在查看: Sandridge Go v2025.2.170190457 应用的 I.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package A1;

import A1.A;
import android.media.MediaCrypto;
import android.media.MediaCryptoException;
import android.media.MediaDrm;
import android.media.UnsupportedSchemeException;
import android.media.metrics.LogSessionId;
import android.text.TextUtils;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;
import p1.AbstractC1560i;
import p1.C1566o;
import s1.AbstractC1672a;
import s1.AbstractC1688q;
import s1.C1657A;
import s1.P;
import y1.B1;

public final class I implements A {

    public static final A.c f142d = new A.c() {
        @Override
        public final A a(UUID uuid) {
            return I.o(uuid);
        }
    };

    private final UUID f143a;

    private final MediaDrm f144b;

    private int f145c;

    private static class a {
        public static boolean a(MediaDrm mediaDrm, String str, int i5) {
            boolean requiresSecureDecoder;
            requiresSecureDecoder = mediaDrm.requiresSecureDecoder(str, i5);
            return requiresSecureDecoder;
        }

        public static void b(MediaDrm mediaDrm, byte[] bArr, B1 b12) {
            LogSessionId logSessionId;
            boolean equals;
            MediaDrm.PlaybackComponent playbackComponent;
            LogSessionId a6 = b12.a();
            logSessionId = LogSessionId.LOG_SESSION_ID_NONE;
            equals = a6.equals(logSessionId);
            if (equals) {
                return;
            }
            playbackComponent = mediaDrm.getPlaybackComponent(bArr);
            G.a(AbstractC1672a.e(playbackComponent)).setLogSessionId(a6);
        }
    }

    private I(UUID uuid) {
        AbstractC1672a.e(uuid);
        AbstractC1672a.b(!AbstractC1560i.f21910b.equals(uuid), "Use C.CLEARKEY_UUID instead");
        this.f143a = uuid;
        MediaDrm mediaDrm = new MediaDrm(v(uuid));
        this.f144b = mediaDrm;
        this.f145c = 1;
        if (AbstractC1560i.f21912d.equals(uuid) && B()) {
            x(mediaDrm);
        }
    }

    private boolean A() {
        if (!this.f143a.equals(AbstractC1560i.f21912d)) {
            return this.f143a.equals(AbstractC1560i.f21911c);
        }
        String y5 = y("version");
        return (y5.startsWith("v5.") || y5.startsWith("14.") || y5.startsWith("15.") || y5.startsWith("16.0")) ? false : true;
    }

    private static boolean B() {
        return "ASUS_Z00AD".equals(P.f22835d);
    }

    public static I C(UUID uuid) {
        try {
            return new I(uuid);
        } catch (UnsupportedSchemeException e6) {
            throw new N(1, e6);
        } catch (Exception e7) {
            throw new N(2, e7);
        }
    }

    public static A o(UUID uuid) {
        try {
            return C(uuid);
        } catch (N unused) {
            AbstractC1688q.d("FrameworkMediaDrm", "Failed to instantiate a FrameworkMediaDrm for uuid: " + uuid + ".");
            return new y();
        }
    }

    public static void p(I i5, A.b bVar, MediaDrm mediaDrm, byte[] bArr, int i6, int i7, byte[] bArr2) {
        i5.getClass();
        bVar.a(i5, bArr, i6, i7, bArr2);
    }

    private static byte[] q(byte[] bArr) {
        C1657A c1657a = new C1657A(bArr);
        int s5 = c1657a.s();
        short u5 = c1657a.u();
        short u6 = c1657a.u();
        if (u5 != 1 || u6 != 1) {
            AbstractC1688q.g("FrameworkMediaDrm", "Unexpected record count or type. Skipping LA_URL workaround.");
            return bArr;
        }
        short u7 = c1657a.u();
        Charset charset = StandardCharsets.UTF_16LE;
        String D5 = c1657a.D(u7, charset);
        if (D5.contains("<LA_URL>")) {
            return bArr;
        }
        int indexOf = D5.indexOf("</DATA>");
        if (indexOf == -1) {
            AbstractC1688q.i("FrameworkMediaDrm", "Could not find the </DATA> tag. Skipping LA_URL workaround.");
        }
        String str = D5.substring(0, indexOf) + "<LA_URL>https://x</LA_URL>" + D5.substring(indexOf);
        int i5 = s5 + 52;
        ByteBuffer allocate = ByteBuffer.allocate(i5);
        allocate.order(ByteOrder.LITTLE_ENDIAN);
        allocate.putInt(i5);
        allocate.putShort(u5);
        allocate.putShort(u6);
        allocate.putShort((short) (str.length() * 2));
        allocate.put(str.getBytes(charset));
        return allocate.array();
    }

    private String r(String str) {
        if ("<LA_URL>https://x</LA_URL>".equals(str)) {
            return "";
        }
        if (P.f22832a >= 33 && "https://default.url".equals(str)) {
            String y5 = y("version");
            if (Objects.equals(y5, "1.2") || Objects.equals(y5, "aidl-1")) {
                return "";
            }
        }
        return str;
    }

    private static byte[] s(UUID uuid, byte[] bArr) {
        return AbstractC1560i.f21911c.equals(uuid) ? AbstractC0336a.a(bArr) : bArr;
    }

    private static byte[] t(java.util.UUID r3, byte[] r4) {
        throw new UnsupportedOperationException("Method not decompiled: A1.I.t(java.util.UUID, byte[]):byte[]");
    }

    private static String u(UUID uuid, String str) {
        return (P.f22832a < 26 && AbstractC1560i.f21911c.equals(uuid) && ("video/mp4".equals(str) || "audio/mp4".equals(str))) ? "cenc" : str;
    }

    private static UUID v(UUID uuid) {
        return (P.f22832a >= 27 || !AbstractC1560i.f21911c.equals(uuid)) ? uuid : AbstractC1560i.f21910b;
    }

    private static void x(MediaDrm mediaDrm) {
        mediaDrm.setPropertyString("securityLevel", "L3");
    }

    private static C1566o.b z(UUID uuid, List list) {
        if (!AbstractC1560i.f21912d.equals(uuid)) {
            return (C1566o.b) list.get(0);
        }
        if (P.f22832a >= 28 && list.size() > 1) {
            C1566o.b bVar = (C1566o.b) list.get(0);
            int i5 = 0;
            for (int i6 = 0; i6 < list.size(); i6++) {
                C1566o.b bVar2 = (C1566o.b) list.get(i6);
                byte[] bArr = (byte[]) AbstractC1672a.e(bVar2.f21965s);
                if (P.g(bVar2.f21964r, bVar.f21964r) && P.g(bVar2.f21963q, bVar.f21963q) && X1.j.c(bArr)) {
                    i5 += bArr.length;
                }
            }
            byte[] bArr2 = new byte[i5];
            int i7 = 0;
            for (int i8 = 0; i8 < list.size(); i8++) {
                byte[] bArr3 = (byte[]) AbstractC1672a.e(((C1566o.b) list.get(i8)).f21965s);
                int length = bArr3.length;
                System.arraycopy(bArr3, 0, bArr2, i7, length);
                i7 += length;
            }
            return bVar.a(bArr2);
        }
        for (int i9 = 0; i9 < list.size(); i9++) {
            C1566o.b bVar3 = (C1566o.b) list.get(i9);
            int f6 = X1.j.f((byte[]) AbstractC1672a.e(bVar3.f21965s));
            int i10 = P.f22832a;
            if ((i10 < 23 && f6 == 0) || (i10 >= 23 && f6 == 1)) {
                return bVar3;
            }
        }
        return (C1566o.b) list.get(0);
    }

    @Override
    public synchronized void a() {
        int i5 = this.f145c - 1;
        this.f145c = i5;
        if (i5 == 0) {
            this.f144b.release();
        }
    }

    @Override
    public Map b(byte[] bArr) {
        return this.f144b.queryKeyStatus(bArr);
    }

    @Override
    public A.d c() {
        MediaDrm.ProvisionRequest provisionRequest = this.f144b.getProvisionRequest();
        return new A.d(provisionRequest.getData(), provisionRequest.getDefaultUrl());
    }

    @Override
    public byte[] e() {
        return this.f144b.openSession();
    }

    @Override
    public boolean f(byte[] bArr, String str) {
        if (P.f22832a >= 31 && A()) {
            MediaDrm mediaDrm = this.f144b;
            return a.a(mediaDrm, str, mediaDrm.getSecurityLevel(bArr));
        }
        MediaCrypto mediaCrypto = null;
        try {
            MediaCrypto mediaCrypto2 = new MediaCrypto(this.f143a, bArr);
            try {
                boolean requiresSecureDecoderComponent = mediaCrypto2.requiresSecureDecoderComponent(str);
                mediaCrypto2.release();
                return requiresSecureDecoderComponent;
            } catch (MediaCryptoException unused) {
                mediaCrypto = mediaCrypto2;
                if (mediaCrypto == null) {
                    return true;
                }
                mediaCrypto.release();
                return true;
            } catch (Throwable th) {
                th = th;
                mediaCrypto = mediaCrypto2;
                if (mediaCrypto != null) {
                    mediaCrypto.release();
                }
                throw th;
            }
        } catch (MediaCryptoException unused2) {
        } catch (Throwable th2) {
            th = th2;
        }
    }

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

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

    @Override
    public void i(byte[] bArr, B1 b12) {
        if (P.f22832a >= 31) {
            try {
                a.b(this.f144b, bArr, b12);
            } catch (UnsupportedOperationException unused) {
                AbstractC1688q.i("FrameworkMediaDrm", "setLogSessionId failed.");
            }
        }
    }

    @Override
    public byte[] j(byte[] bArr, byte[] bArr2) {
        if (AbstractC1560i.f21911c.equals(this.f143a)) {
            bArr2 = AbstractC0336a.b(bArr2);
        }
        return this.f144b.provideKeyResponse(bArr, bArr2);
    }

    @Override
    public void k(final A.b bVar) {
        this.f144b.setOnEventListener(bVar == null ? null : new MediaDrm.OnEventListener() {
            @Override
            public final void onEvent(MediaDrm mediaDrm, byte[] bArr, int i5, int i6, byte[] bArr2) {
                I.p(I.this, bVar, mediaDrm, bArr, i5, i6, bArr2);
            }
        });
    }

    @Override
    public void l(byte[] bArr) {
        this.f144b.provideProvisionResponse(bArr);
    }

    @Override
    public A.a m(byte[] bArr, List list, int i5, HashMap hashMap) {
        C1566o.b bVar;
        byte[] bArr2;
        String str;
        if (list != null) {
            bVar = z(this.f143a, list);
            bArr2 = t(this.f143a, (byte[]) AbstractC1672a.e(bVar.f21965s));
            str = u(this.f143a, bVar.f21964r);
        } else {
            bVar = null;
            bArr2 = null;
            str = null;
        }
        MediaDrm.KeyRequest keyRequest = this.f144b.getKeyRequest(bArr, bArr2, str, i5, hashMap);
        byte[] s5 = s(this.f143a, keyRequest.getData());
        String r5 = r(keyRequest.getDefaultUrl());
        if (TextUtils.isEmpty(r5) && bVar != null && !TextUtils.isEmpty(bVar.f21963q)) {
            r5 = bVar.f21963q;
        }
        return new A.a(s5, r5, P.f22832a >= 23 ? keyRequest.getRequestType() : Integer.MIN_VALUE);
    }

    @Override
    public int n() {
        return 2;
    }

    @Override
    public B d(byte[] bArr) {
        return new B(v(this.f143a), bArr);
    }

    public String y(String str) {
        return this.f144b.getPropertyString(str);
    }
}