* Decompile and recreate Soul Browser v1.4.85 with APK CI builds Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix CI build: include bundled google.jks and remove PR trigger The apktool build failed in CI because app/unknown/.../google.jks was excluded by the *.jks gitignore rule. Whitelist app-bundled JKS files and commit the missing resource. Also remove the redundant pull_request workflow trigger. Co-authored-by: KaKi87 <KaKi87@pm.me> * Change package ID to com.github.kaki87.soulbrowser Rename the application ID so the rebuilt APK can be installed alongside the original Soul Browser from Google Play. - Update AndroidManifest package, permissions, providers, and actions - Update R class references in smali (com/github/kaki87/soulbrowser/R) - Update shortcuts.xml targetPackage - Rename app label to "Soul Rebuild" for easy identification Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix install compatibility: remove split APK metadata and bundle native libs The rebuilt APK still declared requiredSplitTypes and Play Store split metadata, causing Android to reject standalone installs as incompatible. - Remove requiredSplitTypes and split-related manifest meta-data - Merge native libs from all ABI splits with uncompressed storage - Page-align before signing for extractNativeLibs=false - Add .so to apktool doNotCompress list Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix install failure: use apksigner v2/v3 and bundle arm64 native libs Target SDK 36 requires APK Signature Scheme v2+, but jarsigner only produces v1 signatures, causing Android to reject the install. - Sign with apksigner (v1+v2+v3) instead of jarsigner - Add arm64-v8a native libraries from universal Soul Browser 1.4.79 - Set extractNativeLibs=true for reliable sideload installs - Commit stable debug keystore for consistent signatures across builds Co-authored-by: KaKi87 <KaKi87@pm.me> * Add committed debug keystore for consistent APK signatures Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix startup crash: use original classes2.dex desugar libraries Apktool recompiles smali_classes2 into a broken classes2.dex, causing ClassNotFoundException for j$.com.android.tools.r8.a at ML Kit init. Inject the original classes2.dex (Java 8+ desugar libs) after apktool build instead of using the recompiled version. Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix missing drawable resources from density split APKs The base APK is an app bundle module; density-specific drawables like seek_thumb_nor_b live in config.xhdpi.apk and were missing after rebuild, causing Resources$NotFoundException at runtime. - Merge non-9-patch resources from split APKs before apktool build - Sync public.xml IDs from R smali only when backing files exist - Add 713 density-specific resource IDs to public.xml Co-authored-by: KaKi87 <KaKi87@pm.me> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com>
303 lines
11 KiB
Java
303 lines
11 KiB
Java
package com.google.android.gms.internal.ads;
|
|
|
|
import java.util.Arrays;
|
|
import kotlin.UByte;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class zzhht {
|
|
|
|
/* renamed from: a, reason: collision with root package name */
|
|
public static final int[] f8562a = {0, 3, 6, 9, 12, 16, 19, 22, 25, 28};
|
|
public static final int[] b = {0, 2, 3, 5, 6, 0, 1, 3, 4, 6};
|
|
|
|
/* renamed from: c, reason: collision with root package name */
|
|
public static final int[] f8563c = {67108863, 33554431};
|
|
public static final int[] d = {26, 25};
|
|
|
|
public static void a(long[] jArr, long[] jArr2, long[] jArr3) {
|
|
for (int i = 0; i < 10; i++) {
|
|
jArr[i] = jArr2[i] + jArr3[i];
|
|
}
|
|
}
|
|
|
|
public static void b(long[] jArr, long[] jArr2, long[] jArr3) {
|
|
for (int i = 0; i < 10; i++) {
|
|
jArr[i] = jArr2[i] - jArr3[i];
|
|
}
|
|
}
|
|
|
|
public static void c(long[] jArr, long[] jArr2) {
|
|
int length = jArr.length;
|
|
if (length != 19) {
|
|
long[] jArr3 = new long[19];
|
|
System.arraycopy(jArr, 0, jArr3, 0, length);
|
|
jArr = jArr3;
|
|
}
|
|
long j = jArr[8];
|
|
long j2 = jArr[18];
|
|
long j3 = j + (j2 << 4);
|
|
jArr[8] = j3;
|
|
long j4 = j2 + j2 + j3;
|
|
jArr[8] = j4;
|
|
jArr[8] = j4 + j2;
|
|
long j5 = jArr[7];
|
|
long j6 = jArr[17];
|
|
long j7 = j5 + (j6 << 4);
|
|
jArr[7] = j7;
|
|
long j8 = j6 + j6 + j7;
|
|
jArr[7] = j8;
|
|
jArr[7] = j8 + j6;
|
|
long j9 = jArr[6];
|
|
long j10 = jArr[16];
|
|
long j11 = j9 + (j10 << 4);
|
|
jArr[6] = j11;
|
|
long j12 = j10 + j10 + j11;
|
|
jArr[6] = j12;
|
|
jArr[6] = j12 + j10;
|
|
long j13 = jArr[5];
|
|
long j14 = jArr[15];
|
|
long j15 = j13 + (j14 << 4);
|
|
jArr[5] = j15;
|
|
long j16 = j14 + j14 + j15;
|
|
jArr[5] = j16;
|
|
jArr[5] = j16 + j14;
|
|
long j17 = jArr[4];
|
|
long j18 = jArr[14];
|
|
long j19 = j17 + (j18 << 4);
|
|
jArr[4] = j19;
|
|
long j20 = j18 + j18 + j19;
|
|
jArr[4] = j20;
|
|
jArr[4] = j20 + j18;
|
|
long j21 = jArr[3];
|
|
long j22 = jArr[13];
|
|
long j23 = j21 + (j22 << 4);
|
|
jArr[3] = j23;
|
|
long j24 = j22 + j22 + j23;
|
|
jArr[3] = j24;
|
|
jArr[3] = j24 + j22;
|
|
long j25 = jArr[2];
|
|
long j26 = jArr[12];
|
|
long j27 = j25 + (j26 << 4);
|
|
jArr[2] = j27;
|
|
long j28 = j26 + j26 + j27;
|
|
jArr[2] = j28;
|
|
jArr[2] = j28 + j26;
|
|
long j29 = jArr[1];
|
|
long j30 = jArr[11];
|
|
long j31 = j29 + (j30 << 4);
|
|
jArr[1] = j31;
|
|
long j32 = j30 + j30 + j31;
|
|
jArr[1] = j32;
|
|
jArr[1] = j32 + j30;
|
|
long j33 = jArr[0];
|
|
long j34 = jArr[10];
|
|
long j35 = j33 + (j34 << 4);
|
|
jArr[0] = j35;
|
|
long j36 = j34 + j34 + j35;
|
|
jArr[0] = j36;
|
|
jArr[0] = j36 + j34;
|
|
d(jArr);
|
|
System.arraycopy(jArr, 0, jArr2, 0, 10);
|
|
}
|
|
|
|
public static void d(long[] jArr) {
|
|
jArr[10] = 0;
|
|
int i = 0;
|
|
while (i < 10) {
|
|
long j = jArr[i];
|
|
long j2 = j / 67108864;
|
|
jArr[i] = j - (j2 << 26);
|
|
int i2 = i + 1;
|
|
long j3 = jArr[i2] + j2;
|
|
jArr[i2] = j3;
|
|
long j4 = j3 / 33554432;
|
|
jArr[i2] = j3 - (j4 << 25);
|
|
i += 2;
|
|
jArr[i] = jArr[i] + j4;
|
|
}
|
|
long j5 = jArr[0];
|
|
long j6 = jArr[10];
|
|
long j7 = j5 + (j6 << 4);
|
|
jArr[0] = j7;
|
|
long j8 = j6 + j6 + j7;
|
|
jArr[0] = j8;
|
|
long j9 = j8 + j6;
|
|
jArr[0] = j9;
|
|
jArr[10] = 0;
|
|
long j10 = j9 / 67108864;
|
|
jArr[0] = j9 - (j10 << 26);
|
|
jArr[1] = jArr[1] + j10;
|
|
}
|
|
|
|
public static void e(long[] jArr, long[] jArr2, long[] jArr3) {
|
|
long j = jArr2[0];
|
|
long j2 = jArr3[0];
|
|
long j3 = j * j2;
|
|
long j4 = jArr3[1];
|
|
long j5 = jArr2[1];
|
|
long j6 = (j5 * j2) + (j * j4);
|
|
long j7 = jArr3[2];
|
|
long j8 = jArr2[2];
|
|
long j9 = ((j5 + j5) * j4) + (j * j7) + (j8 * j2);
|
|
long j10 = jArr3[3];
|
|
long j11 = jArr2[3];
|
|
long j12 = (j5 * j7) + (j8 * j4) + (j * j10) + (j11 * j2);
|
|
long j13 = jArr3[4];
|
|
long j14 = jArr2[4];
|
|
long j15 = (j5 * j10) + (j11 * j4);
|
|
long j16 = j15 + j15 + (j8 * j7) + (j * j13) + (j14 * j2);
|
|
long j17 = jArr3[5];
|
|
long j18 = jArr2[5];
|
|
long j19 = (j8 * j10) + (j11 * j7) + (j5 * j13) + (j14 * j4) + (j * j17) + (j18 * j2);
|
|
long j20 = jArr3[6];
|
|
long j21 = jArr2[6];
|
|
long j22 = (j11 * j10) + (j5 * j17) + (j18 * j4);
|
|
long j23 = j22 + j22 + (j8 * j13) + (j14 * j7) + (j * j20) + (j21 * j2);
|
|
long j24 = jArr3[7];
|
|
long j25 = jArr2[7];
|
|
long j26 = (j11 * j13) + (j14 * j10) + (j8 * j17) + (j18 * j7) + (j5 * j20) + (j21 * j4) + (j * j24) + (j25 * j2);
|
|
long j27 = jArr3[8];
|
|
long j28 = jArr2[8];
|
|
long j29 = (j11 * j17) + (j18 * j10) + (j5 * j24) + (j25 * j4);
|
|
long j30 = j29 + j29 + (j14 * j13) + (j8 * j20) + (j21 * j7) + (j * j27) + (j28 * j2);
|
|
long j31 = jArr3[9];
|
|
long j32 = jArr2[9];
|
|
long j33 = (j14 * j17) + (j18 * j13) + (j11 * j20) + (j21 * j10) + (j8 * j24) + (j25 * j7) + (j5 * j27) + (j28 * j4) + (j * j31) + (j2 * j32);
|
|
long j34 = (j18 * j17) + (j11 * j24) + (j25 * j10) + (j5 * j31) + (j4 * j32);
|
|
long j35 = (j18 * j24) + (j25 * j17) + (j11 * j31) + (j10 * j32);
|
|
long j36 = (j25 * j24) + (j18 * j31) + (j17 * j32);
|
|
long j37 = (j25 * j27) + (j28 * j24) + (j21 * j31) + (j20 * j32);
|
|
long j38 = (j24 * j32) + (j25 * j31);
|
|
c(new long[]{j3, j6, j9, j12, j16, j19, j23, j26, j30, j33, j34 + j34 + (j14 * j20) + (j21 * j13) + (j8 * j27) + (j28 * j7), (j18 * j20) + (j21 * j17) + (j14 * j24) + (j25 * j13) + (j11 * j27) + (j28 * j10) + (j8 * j31) + (j7 * j32), j35 + j35 + (j21 * j20) + (j14 * j27) + (j28 * j13), (j21 * j24) + (j25 * j20) + (j18 * j27) + (j28 * j17) + (j14 * j31) + (j13 * j32), j36 + j36 + (j21 * j27) + (j28 * j20), j37, j38 + j38 + (j28 * j27), (j27 * j32) + (j28 * j31), (j32 + j32) * j31}, jArr);
|
|
}
|
|
|
|
public static void f(long[] jArr, long[] jArr2) {
|
|
long j = jArr2[0];
|
|
long j2 = j * j;
|
|
long j3 = jArr2[1];
|
|
long j4 = (j + j) * j3;
|
|
long j5 = jArr2[2];
|
|
long j6 = (j * j5) + (j3 * j3);
|
|
long j7 = jArr2[3];
|
|
long j8 = (j * j7) + (j3 * j5);
|
|
long j9 = jArr2[4];
|
|
long j10 = (j5 * j5) + (j3 * 4 * j7) + ((j + j) * j9);
|
|
long j11 = jArr2[5];
|
|
long j12 = (j5 * j7) + (j3 * j9) + (j * j11);
|
|
long j13 = jArr2[6];
|
|
long j14 = (j7 * j7) + (j5 * j9) + (j * j13) + ((j3 + j3) * j11);
|
|
long j15 = jArr2[7];
|
|
long j16 = (j7 * j9) + (j5 * j11) + (j3 * j13) + (j * j15);
|
|
long j17 = jArr2[8];
|
|
long j18 = (j7 * j11) + (j3 * j15);
|
|
long j19 = j18 + j18 + (j5 * j13) + (j * j17);
|
|
long j20 = j19 + j19 + (j9 * j9);
|
|
long j21 = jArr2[9];
|
|
long j22 = (j9 * j11) + (j7 * j13) + (j5 * j15) + (j3 * j17) + (j * j21);
|
|
long j23 = (j3 * j21) + (j7 * j15);
|
|
long j24 = j23 + j23 + (j11 * j11) + (j9 * j13) + (j5 * j17);
|
|
long j25 = (j11 * j13) + (j9 * j15) + (j7 * j17) + (j5 * j21);
|
|
long j26 = (j7 * j21) + (j11 * j15);
|
|
long j27 = j26 + j26 + (j9 * j17);
|
|
long j28 = j27 + j27 + (j13 * j13);
|
|
long j29 = (j13 * j15) + (j11 * j17) + (j9 * j21);
|
|
long j30 = (j15 * j15) + (j13 * j17) + ((j11 + j11) * j21);
|
|
long j31 = (j13 * j21) + (j15 * j17);
|
|
c(new long[]{j2, j4, j6 + j6, j8 + j8, j10, j12 + j12, j14 + j14, j16 + j16, j20, j22 + j22, j24 + j24, j25 + j25, j28, j29 + j29, j30 + j30, j31 + j31, (j15 * 4 * j21) + (j17 * j17), (j17 + j17) * j21, (j21 + j21) * j21}, jArr);
|
|
}
|
|
|
|
public static long[] g(byte[] bArr) {
|
|
long[] jArr = new long[10];
|
|
for (int i = 0; i < 10; i++) {
|
|
int i2 = f8562a[i];
|
|
jArr[i] = (((((bArr[i2] & UByte.MAX_VALUE) | ((bArr[i2 + 1] & UByte.MAX_VALUE) << 8)) | ((bArr[i2 + 2] & UByte.MAX_VALUE) << 16)) | ((bArr[i2 + 3] & UByte.MAX_VALUE) << 24)) >> b[i]) & f8563c[i & 1];
|
|
}
|
|
return jArr;
|
|
}
|
|
|
|
public static byte[] h(long[] jArr) {
|
|
long j;
|
|
int[] iArr;
|
|
int i;
|
|
int[] iArr2;
|
|
long[] copyOf = Arrays.copyOf(jArr, 10);
|
|
int i2 = 0;
|
|
int i3 = 0;
|
|
while (true) {
|
|
j = 19;
|
|
iArr = d;
|
|
if (i3 >= 2) {
|
|
break;
|
|
}
|
|
int i4 = 0;
|
|
while (i4 < 9) {
|
|
long j2 = copyOf[i4];
|
|
int i5 = -((int) (((j2 >> 31) & j2) >> iArr[i4 & 1]));
|
|
copyOf[i4] = j2 + (i5 << r15);
|
|
i4++;
|
|
copyOf[i4] = copyOf[i4] - i5;
|
|
}
|
|
long j3 = copyOf[9];
|
|
copyOf[9] = j3 + (r6 << 25);
|
|
copyOf[0] = copyOf[0] - ((-((int) (((j3 >> 31) & j3) >> 25))) * 19);
|
|
i3++;
|
|
}
|
|
long j4 = copyOf[0];
|
|
copyOf[0] = j4 + (r3 << 26);
|
|
copyOf[1] = copyOf[1] - (-((int) (((j4 >> 31) & j4) >> 26)));
|
|
int i6 = 0;
|
|
while (true) {
|
|
iArr2 = f8563c;
|
|
if (i6 >= 2) {
|
|
break;
|
|
}
|
|
int i7 = i2;
|
|
while (i7 < 9) {
|
|
long j5 = copyOf[i7];
|
|
int i8 = i2;
|
|
long j6 = j5 >> iArr[i7 & 1];
|
|
copyOf[i7] = iArr2[r16] & j5;
|
|
i7++;
|
|
copyOf[i7] = copyOf[i7] + ((int) j6);
|
|
i2 = i8;
|
|
i6 = i6;
|
|
j = j;
|
|
}
|
|
i6++;
|
|
}
|
|
int i9 = i2;
|
|
copyOf[9] = copyOf[9] & 33554431;
|
|
copyOf[i9] = (((int) (r2 >> 25)) * j) + copyOf[i9];
|
|
int i10 = ~((((int) r4) - 67108845) >> 31);
|
|
for (int i11 = 1; i11 < 10; i11++) {
|
|
int i12 = ~(((int) copyOf[i11]) ^ iArr2[i11 & 1]);
|
|
int i13 = i12 & (i12 << 16);
|
|
int i14 = i13 & (i13 << 8);
|
|
int i15 = i14 & (i14 << 4);
|
|
int i16 = i15 & (i15 << 2);
|
|
i10 &= (i16 & (i16 + i16)) >> 31;
|
|
}
|
|
copyOf[i9] = copyOf[i9] - (67108845 & i10);
|
|
long j7 = 33554431 & i10;
|
|
copyOf[1] = copyOf[1] - j7;
|
|
for (i = 2; i < 10; i += 2) {
|
|
copyOf[i] = copyOf[i] - (67108863 & i10);
|
|
int i17 = i + 1;
|
|
copyOf[i17] = copyOf[i17] - j7;
|
|
}
|
|
for (int i18 = i9; i18 < 10; i18++) {
|
|
copyOf[i18] = copyOf[i18] << b[i18];
|
|
}
|
|
byte[] bArr = new byte[32];
|
|
for (int i19 = i9; i19 < 10; i19++) {
|
|
int i20 = f8562a[i19];
|
|
long j8 = bArr[i20];
|
|
long j9 = copyOf[i19];
|
|
bArr[i20] = (byte) (j8 | (j9 & 255));
|
|
bArr[i20 + 1] = (byte) (bArr[r5] | ((j9 >> 8) & 255));
|
|
bArr[i20 + 2] = (byte) (bArr[r5] | ((j9 >> 16) & 255));
|
|
bArr[i20 + 3] = (byte) (bArr[r4] | ((j9 >> 24) & 255));
|
|
}
|
|
return bArr;
|
|
}
|
|
}
|