soul-browser/sources/java/com/google/android/gms/internal/ads/zzcoo.java
KaKi87 550ddb0413
Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1)
* 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>
2026-08-10 16:07:14 +02:00

396 lines
18 KiB
Java

package com.google.android.gms.internal.ads;
import android.content.Context;
import android.os.Parcel;
import android.os.RemoteException;
import android.text.TextUtils;
import androidx.browser.customtabs.CustomTabsClient;
import com.google.android.gms.ads.RequestConfiguration;
import com.google.android.gms.ads.internal.util.client.VersionInfoParcel;
import com.google.android.gms.dynamic.IObjectWrapper;
import com.google.android.gms.dynamic.ObjectWrapper;
import java.io.IOException;
import java.util.List;
/* loaded from: classes.dex */
public final class zzcoo extends com.google.android.gms.ads.internal.client.zzda {
/* renamed from: c, reason: collision with root package name */
public final Context f5343c;
public final VersionInfoParcel f;
public final zzduu g;
public final zzeji h;
public final zzepk i;
public final zzdzp j;
public final zzcbw k;
public final zzduz l;
public final zzeak m;
public final zzbje n;
public final zzfnr o;
public final zzfjg p;
public final zzcxv q;
public final zzdxe r;
public boolean s = false;
public final Long t = Long.valueOf(com.google.android.gms.ads.internal.zzt.zzk().elapsedRealtime());
public zzcoo(Context context, VersionInfoParcel versionInfoParcel, zzduu zzduuVar, zzeji zzejiVar, zzepk zzepkVar, zzdzp zzdzpVar, zzcbw zzcbwVar, zzduz zzduzVar, zzeak zzeakVar, zzbje zzbjeVar, zzfnr zzfnrVar, zzfjg zzfjgVar, zzcxv zzcxvVar, zzdxe zzdxeVar) {
this.f5343c = context;
this.f = versionInfoParcel;
this.g = zzduuVar;
this.h = zzejiVar;
this.i = zzepkVar;
this.j = zzdzpVar;
this.k = zzcbwVar;
this.l = zzduzVar;
this.m = zzeakVar;
this.n = zzbjeVar;
this.o = zzfnrVar;
this.p = zzfjgVar;
this.q = zzcxvVar;
this.r = zzdxeVar;
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final synchronized void zze() {
if (this.s) {
int i = com.google.android.gms.ads.internal.util.zze.zza;
com.google.android.gms.ads.internal.util.client.zzo.zzi("Mobile ads is initialized already.");
return;
}
if (((Boolean) com.google.android.gms.ads.internal.client.zzbd.zzc().a(zzbgk.X2)).booleanValue()) {
com.google.android.gms.ads.internal.client.zzbb.zzc();
}
Context context = this.f5343c;
zzbgk.a(context);
com.google.android.gms.ads.internal.zzt.zzh().d(context, this.f, this.r);
this.q.a();
com.google.android.gms.ads.internal.zzt.zzj().a(context);
this.s = true;
this.j.a();
final zzepk zzepkVar = this.i;
zzepkVar.getClass();
com.google.android.gms.ads.internal.zzt.zzh().i().zzk(new Runnable() { // from class: com.google.android.gms.internal.ads.zzepj
@Override // java.lang.Runnable
public final /* synthetic */ void run() {
final zzepk zzepkVar2 = zzepk.this;
zzepkVar2.getClass();
zzepkVar2.f.execute(new Runnable() { // from class: com.google.android.gms.internal.ads.zzepi
@Override // java.lang.Runnable
public final /* synthetic */ void run() {
zzepk.this.e();
}
});
}
});
zzepkVar.f.execute(new Runnable() { // from class: com.google.android.gms.internal.ads.zzeph
@Override // java.lang.Runnable
public final /* synthetic */ void run() {
zzepk.this.e();
}
});
if (((Boolean) com.google.android.gms.ads.internal.client.zzbd.zzc().a(zzbgk.S4)).booleanValue()) {
final zzduz zzduzVar = this.l;
if (!zzduzVar.f.getAndSet(true)) {
com.google.android.gms.ads.internal.zzt.zzh().i().zzk(new zzduw(zzduzVar));
}
zzduzVar.f6172c.execute(new Runnable() { // from class: com.google.android.gms.internal.ads.zzduy
@Override // java.lang.Runnable
public final /* synthetic */ void run() {
zzduz.this.a();
}
});
}
this.m.a();
if (((Boolean) com.google.android.gms.ads.internal.client.zzbd.zzc().a(zzbgk.Aa)).booleanValue()) {
((zzcdn) zzcdo.f5068a).execute(new Runnable() { // from class: com.google.android.gms.internal.ads.zzcon
@Override // java.lang.Runnable
public final void run() {
if (com.google.android.gms.ads.internal.zzt.zzh().i().zzJ()) {
String zzL = com.google.android.gms.ads.internal.zzt.zzh().i().zzL();
zzcoo zzcooVar = zzcoo.this;
if (!com.google.android.gms.ads.internal.zzt.zzo().zze(zzcooVar.f5343c, zzL, zzcooVar.f.afmaVersion)) {
com.google.android.gms.ads.internal.zzt.zzh().i().zzK(false);
com.google.android.gms.ads.internal.zzt.zzh().i().zzM(RequestConfiguration.MAX_AD_CONTENT_RATING_UNSPECIFIED);
}
}
}
});
}
if (((Boolean) com.google.android.gms.ads.internal.client.zzbd.zzc().a(zzbgk.oc)).booleanValue()) {
((zzcdn) zzcdo.f5068a).execute(new Runnable() { // from class: com.google.android.gms.internal.ads.zzcok
@Override // java.lang.Runnable
public final void run() {
zzbcc zzbccVar = new zzbcc("com.google.android.gms.ads.internal.report.IDynamiteErrorEventListener");
zzbje zzbjeVar = zzcoo.this.n;
zzbjeVar.getClass();
try {
zzbjf zzbjfVar = (zzbjf) com.google.android.gms.ads.internal.util.client.zzs.zza(zzbjeVar.f4739a, "com.google.android.gms.ads.flags.FlagRetrieverSupplierProxy", zzbjd.f4738a);
Parcel I1 = zzbjfVar.I1();
zzbcd.e(I1, zzbccVar);
zzbjfVar.r2(1, I1);
} catch (RemoteException e) {
com.google.android.gms.ads.internal.util.client.zzo.zzi("Error calling setFlagsAccessedBeforeInitializedListener: ".concat(String.valueOf(e.getMessage())));
} catch (com.google.android.gms.ads.internal.util.client.zzr e2) {
com.google.android.gms.ads.internal.util.client.zzo.zzi("Could not load com.google.android.gms.ads.flags.FlagRetrieverSupplierProxy:".concat(String.valueOf(e2.getMessage())));
}
}
});
}
if (((Boolean) com.google.android.gms.ads.internal.client.zzbd.zzc().a(zzbgk.M3)).booleanValue()) {
((zzcdn) zzcdo.f5068a).execute(new Runnable() { // from class: com.google.android.gms.internal.ads.zzcoi
@Override // java.lang.Runnable
public final /* synthetic */ void run() {
zzfjp.a(zzcoo.this.f5343c, true);
}
});
}
if (((Boolean) com.google.android.gms.ads.internal.client.zzbd.zzc().a(zzbgk.x5)).booleanValue()) {
if (((Boolean) com.google.android.gms.ads.internal.client.zzbd.zzc().a(zzbgk.y5)).booleanValue()) {
((zzcdn) zzcdo.f5068a).execute(new Runnable() { // from class: com.google.android.gms.internal.ads.zzcoj
@Override // java.lang.Runnable
public final void run() {
String b;
zzbhj zzn = com.google.android.gms.ads.internal.zzt.zzn();
zzcoo zzcooVar = zzcoo.this;
Context context2 = zzcooVar.f5343c;
zzdxe zzdxeVar = zzcooVar.r;
if (!zzn.f.getAndSet(true)) {
zzn.g = context2;
zzn.h = zzdxeVar;
if (zzn.j == null && context2 != null && (b = CustomTabsClient.b(context2)) != null && !b.equals(context2.getPackageName())) {
CustomTabsClient.a(context2, b, zzn);
}
}
}
});
}
}
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final synchronized void zzf(float f) {
com.google.android.gms.ads.internal.zzt.zzi().zza(f);
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final synchronized void zzg(String str) {
Context context = this.f5343c;
zzbgk.a(context);
if (!TextUtils.isEmpty(str)) {
if (((Boolean) com.google.android.gms.ads.internal.client.zzbd.zzc().a(zzbgk.Q4)).booleanValue()) {
com.google.android.gms.ads.internal.zzt.zzl().zza(context, this.f, str, null, this.o, null, null, this.m.g());
}
}
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final synchronized void zzh(boolean z) {
com.google.android.gms.ads.internal.zzt.zzi().zzc(z);
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final void zzi(IObjectWrapper iObjectWrapper, String str) {
if (iObjectWrapper == null) {
int i = com.google.android.gms.ads.internal.util.zze.zza;
com.google.android.gms.ads.internal.util.client.zzo.zzf("Wrapped context is null. Failed to open debug menu.");
return;
}
Context context = (Context) ObjectWrapper.f2(iObjectWrapper);
if (context == null) {
int i2 = com.google.android.gms.ads.internal.util.zze.zza;
com.google.android.gms.ads.internal.util.client.zzo.zzf("Context is null. Failed to open debug menu.");
} else {
com.google.android.gms.ads.internal.util.zzat zzatVar = new com.google.android.gms.ads.internal.util.zzat(context);
zzatVar.zzc(str);
zzatVar.zzd(this.f.afmaVersion);
zzatVar.zzb();
}
}
/* JADX WARN: Removed duplicated region for block: B:19:? A[RETURN, SYNTHETIC] */
/* JADX WARN: Removed duplicated region for block: B:20:0x0036 */
/* JADX WARN: Removed duplicated region for block: B:6:0x0034 */
/* JADX WARN: Removed duplicated region for block: B:9:0x003e */
@Override // com.google.android.gms.ads.internal.client.zzdb
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final void zzj(java.lang.String r13, com.google.android.gms.dynamic.IObjectWrapper r14) {
/*
r12 = this;
android.content.Context r0 = r12.f5343c
com.google.android.gms.internal.ads.zzbgk.a(r0)
com.google.android.gms.internal.ads.zzbgb r1 = com.google.android.gms.internal.ads.zzbgk.X4
com.google.android.gms.internal.ads.zzbgi r2 = com.google.android.gms.ads.internal.client.zzbd.zzc()
java.lang.Object r1 = r2.a(r1)
java.lang.Boolean r1 = (java.lang.Boolean) r1
boolean r1 = r1.booleanValue()
if (r1 == 0) goto L2b
com.google.android.gms.ads.internal.zzt.zzc() // Catch: android.os.RemoteException -> L1f java.lang.RuntimeException -> L21
java.lang.String r0 = com.google.android.gms.ads.internal.util.zzs.zzt(r0) // Catch: android.os.RemoteException -> L1f java.lang.RuntimeException -> L21
goto L2d
L1f:
r0 = move-exception
goto L22
L21:
r0 = move-exception
L22:
java.lang.String r1 = "NonagonMobileAdsSettingManager_AppId"
com.google.android.gms.internal.ads.zzcda r2 = com.google.android.gms.ads.internal.zzt.zzh()
r2.f(r1, r0)
L2b:
java.lang.String r0 = ""
L2d:
boolean r1 = android.text.TextUtils.isEmpty(r0)
r2 = 1
if (r2 != r1) goto L36
r6 = r13
goto L37
L36:
r6 = r0
L37:
boolean r13 = android.text.TextUtils.isEmpty(r6)
if (r13 == 0) goto L3e
goto L98
L3e:
com.google.android.gms.internal.ads.zzbgb r13 = com.google.android.gms.internal.ads.zzbgk.Q4
com.google.android.gms.internal.ads.zzbgi r0 = com.google.android.gms.ads.internal.client.zzbd.zzc()
java.lang.Object r13 = r0.a(r13)
java.lang.Boolean r13 = (java.lang.Boolean) r13
boolean r13 = r13.booleanValue()
com.google.android.gms.internal.ads.zzbgb r0 = com.google.android.gms.internal.ads.zzbgk.w1
com.google.android.gms.internal.ads.zzbgi r1 = com.google.android.gms.ads.internal.client.zzbd.zzc()
java.lang.Object r1 = r1.a(r0)
java.lang.Boolean r1 = (java.lang.Boolean) r1
boolean r1 = r1.booleanValue()
r13 = r13 | r1
com.google.android.gms.internal.ads.zzbgi r1 = com.google.android.gms.ads.internal.client.zzbd.zzc()
java.lang.Object r0 = r1.a(r0)
java.lang.Boolean r0 = (java.lang.Boolean) r0
boolean r0 = r0.booleanValue()
if (r0 == 0) goto L7c
java.lang.Object r13 = com.google.android.gms.dynamic.ObjectWrapper.f2(r14)
java.lang.Runnable r13 = (java.lang.Runnable) r13
com.google.android.gms.internal.ads.zzcol r14 = new com.google.android.gms.internal.ads.zzcol
r14.<init>()
L7a:
r7 = r14
goto L7f
L7c:
r14 = 0
r2 = r13
goto L7a
L7f:
if (r2 == 0) goto L98
com.google.android.gms.ads.internal.zzf r3 = com.google.android.gms.ads.internal.zzt.zzl()
com.google.android.gms.internal.ads.zzeak r13 = r12.m
boolean r11 = r13.g()
android.content.Context r4 = r12.f5343c
com.google.android.gms.ads.internal.util.client.VersionInfoParcel r5 = r12.f
com.google.android.gms.internal.ads.zzfnr r8 = r12.o
com.google.android.gms.internal.ads.zzdxe r9 = r12.r
java.lang.Long r10 = r12.t
r3.zza(r4, r5, r6, r7, r8, r9, r10, r11)
L98:
return
*/
throw new UnsupportedOperationException("Method not decompiled: com.google.android.gms.internal.ads.zzcoo.zzj(java.lang.String, com.google.android.gms.dynamic.IObjectWrapper):void");
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final synchronized float zzk() {
return com.google.android.gms.ads.internal.zzt.zzi().zzb();
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final synchronized boolean zzl() {
return com.google.android.gms.ads.internal.zzt.zzi().zzd();
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final String zzm() {
return this.f.afmaVersion;
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final void zzn(String str) {
this.i.d(str);
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final void zzo(zzbsz zzbszVar) {
this.p.b(zzbszVar);
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final void zzp(zzbpt zzbptVar) {
zzdzp zzdzpVar = this.j;
zzdzpVar.getClass();
zzdzpVar.e.f5072c.k(new zzdzo(zzdzpVar, zzbptVar), zzdzpVar.j);
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final List zzq() {
return this.j.b();
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final void zzr(com.google.android.gms.ads.internal.client.zzfv zzfvVar) {
zzcbw zzcbwVar = this.k;
Context context = this.f5343c;
zzcbwVar.getClass();
zzcbp a2 = zzcbx.b(context).a();
a2.b.a(-1, a2.f5022a.currentTimeMillis());
if (((Boolean) com.google.android.gms.ads.internal.client.zzbd.zzc().a(zzbgk.W0)).booleanValue() && zzcbwVar.a(context) && zzcbw.g(context)) {
synchronized (zzcbwVar.i) {
}
}
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final void zzs() {
this.j.q = false;
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final void zzt(com.google.android.gms.ads.internal.client.zzdn zzdnVar) {
this.m.f(zzdnVar, zzeaj.f);
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final void zzu(boolean z) {
try {
Context context = this.f5343c;
zzfzg.a(context).b(z);
if (!z) {
try {
if (!context.getSharedPreferences("query_info_shared_prefs", 0).edit().clear().commit()) {
throw new IOException("Failed to remove query_info_shared_prefs");
}
} catch (IOException e) {
com.google.android.gms.ads.internal.zzt.zzh().f("clearStorageOnGpidPubDisable_scar", e);
}
}
} catch (IOException e2) {
throw new RemoteException(e2.getMessage());
}
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final void zzv(String str) {
if (((Boolean) com.google.android.gms.ads.internal.client.zzbd.zzc().a(zzbgk.Ma)).booleanValue()) {
com.google.android.gms.ads.internal.zzt.zzh().g = str;
}
}
@Override // com.google.android.gms.ads.internal.client.zzdb
public final synchronized void zzw() {
if (((Boolean) com.google.android.gms.ads.internal.client.zzbd.zzc().a(zzbgk.W2)).booleanValue()) {
com.google.android.gms.ads.internal.zzt.zzr().c();
if (((Boolean) com.google.android.gms.ads.internal.client.zzbd.zzc().a(zzbgk.X2)).booleanValue()) {
com.google.android.gms.ads.internal.client.zzbb.zzd();
}
}
}
}