soul-browser/sources/java/com/google/android/datatransport/runtime/AutoProtoEncoderDoNotUseEncoder.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

243 lines
12 KiB
Java

package com.google.android.datatransport.runtime;
import com.google.android.datatransport.runtime.firebase.transport.ClientMetrics;
import com.google.android.datatransport.runtime.firebase.transport.GlobalMetrics;
import com.google.android.datatransport.runtime.firebase.transport.LogEventDropped;
import com.google.android.datatransport.runtime.firebase.transport.LogSourceMetrics;
import com.google.android.datatransport.runtime.firebase.transport.StorageMetrics;
import com.google.android.datatransport.runtime.firebase.transport.TimeWindow;
import com.google.firebase.encoders.FieldDescriptor;
import com.google.firebase.encoders.ObjectEncoder;
import com.google.firebase.encoders.ObjectEncoderContext;
import com.google.firebase.encoders.config.Configurator;
/* loaded from: classes.dex */
public final class AutoProtoEncoderDoNotUseEncoder implements Configurator {
/* loaded from: classes.dex */
public static final class ClientMetricsEncoder implements ObjectEncoder<ClientMetrics> {
/* renamed from: a, reason: collision with root package name */
public static final ClientMetricsEncoder f2799a = new Object();
public static final FieldDescriptor b;
/* renamed from: c, reason: collision with root package name */
public static final FieldDescriptor f2800c;
public static final FieldDescriptor d;
public static final FieldDescriptor e;
/* JADX WARN: Type inference failed for: r0v0, types: [java.lang.Object, com.google.android.datatransport.runtime.AutoProtoEncoderDoNotUseEncoder$ClientMetricsEncoder] */
/* JADX WARN: Type inference failed for: r1v1, types: [com.google.firebase.encoders.proto.AtProtobuf, java.lang.Object] */
/* JADX WARN: Type inference failed for: r1v10, types: [com.google.firebase.encoders.proto.AtProtobuf, java.lang.Object] */
/* JADX WARN: Type inference failed for: r1v4, types: [com.google.firebase.encoders.proto.AtProtobuf, java.lang.Object] */
/* JADX WARN: Type inference failed for: r1v7, types: [com.google.firebase.encoders.proto.AtProtobuf, java.lang.Object] */
static {
FieldDescriptor.Builder builder = new FieldDescriptor.Builder("window");
?? obj = new Object();
obj.f12646a = 1;
builder.b(obj.a());
b = builder.a();
FieldDescriptor.Builder builder2 = new FieldDescriptor.Builder("logSourceMetrics");
?? obj2 = new Object();
obj2.f12646a = 2;
builder2.b(obj2.a());
f2800c = builder2.a();
FieldDescriptor.Builder builder3 = new FieldDescriptor.Builder("globalMetrics");
?? obj3 = new Object();
obj3.f12646a = 3;
builder3.b(obj3.a());
d = builder3.a();
FieldDescriptor.Builder builder4 = new FieldDescriptor.Builder("appNamespace");
?? obj4 = new Object();
obj4.f12646a = 4;
builder4.b(obj4.a());
e = builder4.a();
}
@Override // com.google.firebase.encoders.ObjectEncoder
public final void a(Object obj, Object obj2) {
ClientMetrics clientMetrics = (ClientMetrics) obj;
ObjectEncoderContext objectEncoderContext = (ObjectEncoderContext) obj2;
objectEncoderContext.d(b, clientMetrics.f2854a);
objectEncoderContext.d(f2800c, clientMetrics.b);
objectEncoderContext.d(d, clientMetrics.f2855c);
objectEncoderContext.d(e, clientMetrics.d);
}
}
/* loaded from: classes.dex */
public static final class GlobalMetricsEncoder implements ObjectEncoder<GlobalMetrics> {
/* renamed from: a, reason: collision with root package name */
public static final GlobalMetricsEncoder f2801a = new Object();
public static final FieldDescriptor b;
/* JADX WARN: Type inference failed for: r0v0, types: [com.google.android.datatransport.runtime.AutoProtoEncoderDoNotUseEncoder$GlobalMetricsEncoder, java.lang.Object] */
/* JADX WARN: Type inference failed for: r1v1, types: [com.google.firebase.encoders.proto.AtProtobuf, java.lang.Object] */
static {
FieldDescriptor.Builder builder = new FieldDescriptor.Builder("storageMetrics");
?? obj = new Object();
obj.f12646a = 1;
builder.b(obj.a());
b = builder.a();
}
@Override // com.google.firebase.encoders.ObjectEncoder
public final void a(Object obj, Object obj2) {
((ObjectEncoderContext) obj2).d(b, ((GlobalMetrics) obj).f2858a);
}
}
/* loaded from: classes.dex */
public static final class LogEventDroppedEncoder implements ObjectEncoder<LogEventDropped> {
/* renamed from: a, reason: collision with root package name */
public static final LogEventDroppedEncoder f2802a = new Object();
public static final FieldDescriptor b;
/* renamed from: c, reason: collision with root package name */
public static final FieldDescriptor f2803c;
/* JADX WARN: Type inference failed for: r0v0, types: [java.lang.Object, com.google.android.datatransport.runtime.AutoProtoEncoderDoNotUseEncoder$LogEventDroppedEncoder] */
/* JADX WARN: Type inference failed for: r1v1, types: [com.google.firebase.encoders.proto.AtProtobuf, java.lang.Object] */
/* JADX WARN: Type inference failed for: r1v4, types: [com.google.firebase.encoders.proto.AtProtobuf, java.lang.Object] */
static {
FieldDescriptor.Builder builder = new FieldDescriptor.Builder("eventsDroppedCount");
?? obj = new Object();
obj.f12646a = 1;
builder.b(obj.a());
b = builder.a();
FieldDescriptor.Builder builder2 = new FieldDescriptor.Builder("reason");
?? obj2 = new Object();
obj2.f12646a = 3;
builder2.b(obj2.a());
f2803c = builder2.a();
}
@Override // com.google.firebase.encoders.ObjectEncoder
public final void a(Object obj, Object obj2) {
LogEventDropped logEventDropped = (LogEventDropped) obj;
ObjectEncoderContext objectEncoderContext = (ObjectEncoderContext) obj2;
objectEncoderContext.a(b, logEventDropped.f2859a);
objectEncoderContext.d(f2803c, logEventDropped.b);
}
}
/* loaded from: classes.dex */
public static final class LogSourceMetricsEncoder implements ObjectEncoder<LogSourceMetrics> {
/* renamed from: a, reason: collision with root package name */
public static final LogSourceMetricsEncoder f2804a = new Object();
public static final FieldDescriptor b;
/* renamed from: c, reason: collision with root package name */
public static final FieldDescriptor f2805c;
/* JADX WARN: Type inference failed for: r0v0, types: [java.lang.Object, com.google.android.datatransport.runtime.AutoProtoEncoderDoNotUseEncoder$LogSourceMetricsEncoder] */
/* JADX WARN: Type inference failed for: r1v1, types: [com.google.firebase.encoders.proto.AtProtobuf, java.lang.Object] */
/* JADX WARN: Type inference failed for: r1v4, types: [com.google.firebase.encoders.proto.AtProtobuf, java.lang.Object] */
static {
FieldDescriptor.Builder builder = new FieldDescriptor.Builder("logSource");
?? obj = new Object();
obj.f12646a = 1;
builder.b(obj.a());
b = builder.a();
FieldDescriptor.Builder builder2 = new FieldDescriptor.Builder("logEventDropped");
?? obj2 = new Object();
obj2.f12646a = 2;
builder2.b(obj2.a());
f2805c = builder2.a();
}
@Override // com.google.firebase.encoders.ObjectEncoder
public final void a(Object obj, Object obj2) {
LogSourceMetrics logSourceMetrics = (LogSourceMetrics) obj;
ObjectEncoderContext objectEncoderContext = (ObjectEncoderContext) obj2;
objectEncoderContext.d(b, logSourceMetrics.f2862a);
objectEncoderContext.d(f2805c, logSourceMetrics.b);
}
}
/* loaded from: classes.dex */
public static final class ProtoEncoderDoNotUseEncoder implements ObjectEncoder<ProtoEncoderDoNotUse> {
/* renamed from: a, reason: collision with root package name */
public static final ProtoEncoderDoNotUseEncoder f2806a = new Object();
public static final FieldDescriptor b = FieldDescriptor.c("clientMetrics");
@Override // com.google.firebase.encoders.ObjectEncoder
public final void a(Object obj, Object obj2) {
((ObjectEncoderContext) obj2).d(b, ((ProtoEncoderDoNotUse) obj).a());
}
}
/* loaded from: classes.dex */
public static final class StorageMetricsEncoder implements ObjectEncoder<StorageMetrics> {
/* renamed from: a, reason: collision with root package name */
public static final StorageMetricsEncoder f2807a = new Object();
public static final FieldDescriptor b;
/* renamed from: c, reason: collision with root package name */
public static final FieldDescriptor f2808c;
/* JADX WARN: Type inference failed for: r0v0, types: [java.lang.Object, com.google.android.datatransport.runtime.AutoProtoEncoderDoNotUseEncoder$StorageMetricsEncoder] */
/* JADX WARN: Type inference failed for: r1v1, types: [com.google.firebase.encoders.proto.AtProtobuf, java.lang.Object] */
/* JADX WARN: Type inference failed for: r1v4, types: [com.google.firebase.encoders.proto.AtProtobuf, java.lang.Object] */
static {
FieldDescriptor.Builder builder = new FieldDescriptor.Builder("currentCacheSizeBytes");
?? obj = new Object();
obj.f12646a = 1;
builder.b(obj.a());
b = builder.a();
FieldDescriptor.Builder builder2 = new FieldDescriptor.Builder("maxCacheSizeBytes");
?? obj2 = new Object();
obj2.f12646a = 2;
builder2.b(obj2.a());
f2808c = builder2.a();
}
@Override // com.google.firebase.encoders.ObjectEncoder
public final void a(Object obj, Object obj2) {
StorageMetrics storageMetrics = (StorageMetrics) obj;
ObjectEncoderContext objectEncoderContext = (ObjectEncoderContext) obj2;
objectEncoderContext.a(b, storageMetrics.f2864a);
objectEncoderContext.a(f2808c, storageMetrics.b);
}
}
/* loaded from: classes.dex */
public static final class TimeWindowEncoder implements ObjectEncoder<TimeWindow> {
/* renamed from: a, reason: collision with root package name */
public static final TimeWindowEncoder f2809a = new Object();
public static final FieldDescriptor b;
/* renamed from: c, reason: collision with root package name */
public static final FieldDescriptor f2810c;
/* JADX WARN: Type inference failed for: r0v0, types: [java.lang.Object, com.google.android.datatransport.runtime.AutoProtoEncoderDoNotUseEncoder$TimeWindowEncoder] */
/* JADX WARN: Type inference failed for: r1v1, types: [com.google.firebase.encoders.proto.AtProtobuf, java.lang.Object] */
/* JADX WARN: Type inference failed for: r1v4, types: [com.google.firebase.encoders.proto.AtProtobuf, java.lang.Object] */
static {
FieldDescriptor.Builder builder = new FieldDescriptor.Builder("startMs");
?? obj = new Object();
obj.f12646a = 1;
builder.b(obj.a());
b = builder.a();
FieldDescriptor.Builder builder2 = new FieldDescriptor.Builder("endMs");
?? obj2 = new Object();
obj2.f12646a = 2;
builder2.b(obj2.a());
f2810c = builder2.a();
}
@Override // com.google.firebase.encoders.ObjectEncoder
public final void a(Object obj, Object obj2) {
TimeWindow timeWindow = (TimeWindow) obj;
ObjectEncoderContext objectEncoderContext = (ObjectEncoderContext) obj2;
objectEncoderContext.a(b, timeWindow.f2866a);
objectEncoderContext.a(f2810c, timeWindow.b);
}
}
}