* 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>
126 lines
7.4 KiB
Java
126 lines
7.4 KiB
Java
package kotlin.reflect;
|
|
|
|
import com.google.android.gms.ads.RequestConfiguration;
|
|
import java.util.Collection;
|
|
import java.util.List;
|
|
import kotlin.Metadata;
|
|
import kotlin.SinceKotlin;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
@Metadata(d1 = {"\u0000^\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0005\n\u0002\u0010\u001e\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0007\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0018\u0002\n\u0002\b\u0019\n\u0002\u0010\b\n\u0000\bf\u0018\u0000*\b\b\u0000\u0010\u0001*\u00020\u00022\u00020\u00032\u00020\u00042\u00020\u0005J\u0012\u0010\u0019\u001a\u00020\u001a2\b\u0010\u001b\u001a\u0004\u0018\u00010\u0002H'J\u0013\u0010B\u001a\u00020\u001a2\b\u0010C\u001a\u0004\u0018\u00010\u0002H¦\u0002J\b\u0010D\u001a\u00020EH&R\u0014\u0010\u0006\u001a\u0004\u0018\u00010\u0007X¦\u0004¢\u0006\u0006\u001a\u0004\b\b\u0010\tR\u0014\u0010\n\u001a\u0004\u0018\u00010\u0007X¦\u0004¢\u0006\u0006\u001a\u0004\b\u000b\u0010\tR\u001c\u0010\f\u001a\f\u0012\b\u0012\u0006\u0012\u0002\b\u00030\u000e0\rX¦\u0004¢\u0006\u0006\u001a\u0004\b\u000f\u0010\u0010R\u001e\u0010\u0011\u001a\u000e\u0012\n\u0012\b\u0012\u0004\u0012\u00028\u00000\u00120\rX¦\u0004¢\u0006\u0006\u001a\u0004\b\u0013\u0010\u0010R\u001c\u0010\u0014\u001a\f\u0012\b\u0012\u0006\u0012\u0002\b\u00030\u00000\rX¦\u0004¢\u0006\u0006\u001a\u0004\b\u0015\u0010\u0010R\u0014\u0010\u0016\u001a\u0004\u0018\u00018\u0000X¦\u0004¢\u0006\u0006\u001a\u0004\b\u0017\u0010\u0018R \u0010\u001c\u001a\b\u0012\u0004\u0012\u00020\u001e0\u001d8&X§\u0004¢\u0006\f\u0012\u0004\b\u001f\u0010 \u001a\u0004\b!\u0010\"R \u0010#\u001a\b\u0012\u0004\u0012\u00020$0\u001d8&X§\u0004¢\u0006\f\u0012\u0004\b%\u0010 \u001a\u0004\b&\u0010\"R(\u0010'\u001a\u0010\u0012\f\u0012\n\u0012\u0006\b\u0001\u0012\u00028\u00000\u00000\u001d8&X§\u0004¢\u0006\f\u0012\u0004\b(\u0010 \u001a\u0004\b)\u0010\"R\u001c\u0010*\u001a\u0004\u0018\u00010+8&X§\u0004¢\u0006\f\u0012\u0004\b,\u0010 \u001a\u0004\b-\u0010.R\u001a\u0010/\u001a\u00020\u001a8&X§\u0004¢\u0006\f\u0012\u0004\b0\u0010 \u001a\u0004\b/\u00101R\u001a\u00102\u001a\u00020\u001a8&X§\u0004¢\u0006\f\u0012\u0004\b3\u0010 \u001a\u0004\b2\u00101R\u001a\u00104\u001a\u00020\u001a8&X§\u0004¢\u0006\f\u0012\u0004\b5\u0010 \u001a\u0004\b4\u00101R\u001a\u00106\u001a\u00020\u001a8&X§\u0004¢\u0006\f\u0012\u0004\b7\u0010 \u001a\u0004\b6\u00101R\u001a\u00108\u001a\u00020\u001a8&X§\u0004¢\u0006\f\u0012\u0004\b9\u0010 \u001a\u0004\b8\u00101R\u001a\u0010:\u001a\u00020\u001a8&X§\u0004¢\u0006\f\u0012\u0004\b;\u0010 \u001a\u0004\b:\u00101R\u001a\u0010<\u001a\u00020\u001a8&X§\u0004¢\u0006\f\u0012\u0004\b=\u0010 \u001a\u0004\b<\u00101R\u001a\u0010>\u001a\u00020\u001a8&X§\u0004¢\u0006\f\u0012\u0004\b?\u0010 \u001a\u0004\b>\u00101R\u001a\u0010@\u001a\u00020\u001a8&X§\u0004¢\u0006\f\u0012\u0004\bA\u0010 \u001a\u0004\b@\u00101¨\u0006F"}, d2 = {"Lkotlin/reflect/KClass;", RequestConfiguration.MAX_AD_CONTENT_RATING_T, RequestConfiguration.MAX_AD_CONTENT_RATING_UNSPECIFIED, "Lkotlin/reflect/KDeclarationContainer;", "Lkotlin/reflect/KAnnotatedElement;", "Lkotlin/reflect/KClassifier;", "simpleName", RequestConfiguration.MAX_AD_CONTENT_RATING_UNSPECIFIED, "getSimpleName", "()Ljava/lang/String;", "qualifiedName", "getQualifiedName", "members", RequestConfiguration.MAX_AD_CONTENT_RATING_UNSPECIFIED, "Lkotlin/reflect/KCallable;", "getMembers", "()Ljava/util/Collection;", "constructors", "Lkotlin/reflect/KFunction;", "getConstructors", "nestedClasses", "getNestedClasses", "objectInstance", "getObjectInstance", "()Ljava/lang/Object;", "isInstance", RequestConfiguration.MAX_AD_CONTENT_RATING_UNSPECIFIED, "value", "typeParameters", RequestConfiguration.MAX_AD_CONTENT_RATING_UNSPECIFIED, "Lkotlin/reflect/KTypeParameter;", "getTypeParameters$annotations", "()V", "getTypeParameters", "()Ljava/util/List;", "supertypes", "Lkotlin/reflect/KType;", "getSupertypes$annotations", "getSupertypes", "sealedSubclasses", "getSealedSubclasses$annotations", "getSealedSubclasses", "visibility", "Lkotlin/reflect/KVisibility;", "getVisibility$annotations", "getVisibility", "()Lkotlin/reflect/KVisibility;", "isFinal", "isFinal$annotations", "()Z", "isOpen", "isOpen$annotations", "isAbstract", "isAbstract$annotations", "isSealed", "isSealed$annotations", "isData", "isData$annotations", "isInner", "isInner$annotations", "isCompanion", "isCompanion$annotations", "isFun", "isFun$annotations", "isValue", "isValue$annotations", "equals", "other", "hashCode", RequestConfiguration.MAX_AD_CONTENT_RATING_UNSPECIFIED, "kotlin-stdlib"}, k = 1, mv = {2, 2, 0}, xi = 48)
|
|
/* loaded from: classes4.dex */
|
|
public interface KClass<T> extends KDeclarationContainer, KAnnotatedElement, KClassifier {
|
|
|
|
@Metadata(k = 3, mv = {2, 2, 0}, xi = 48)
|
|
/* loaded from: classes4.dex */
|
|
public static final class DefaultImpls {
|
|
@SinceKotlin(version = "1.3")
|
|
public static /* synthetic */ void getSealedSubclasses$annotations() {
|
|
}
|
|
|
|
@SinceKotlin(version = "1.1")
|
|
public static /* synthetic */ void getSupertypes$annotations() {
|
|
}
|
|
|
|
@SinceKotlin(version = "1.1")
|
|
public static /* synthetic */ void getTypeParameters$annotations() {
|
|
}
|
|
|
|
@SinceKotlin(version = "1.1")
|
|
public static /* synthetic */ void getVisibility$annotations() {
|
|
}
|
|
|
|
@SinceKotlin(version = "1.1")
|
|
public static /* synthetic */ void isAbstract$annotations() {
|
|
}
|
|
|
|
@SinceKotlin(version = "1.1")
|
|
public static /* synthetic */ void isCompanion$annotations() {
|
|
}
|
|
|
|
@SinceKotlin(version = "1.1")
|
|
public static /* synthetic */ void isData$annotations() {
|
|
}
|
|
|
|
@SinceKotlin(version = "1.1")
|
|
public static /* synthetic */ void isFinal$annotations() {
|
|
}
|
|
|
|
@SinceKotlin(version = "1.4")
|
|
public static /* synthetic */ void isFun$annotations() {
|
|
}
|
|
|
|
@SinceKotlin(version = "1.1")
|
|
public static /* synthetic */ void isInner$annotations() {
|
|
}
|
|
|
|
@SinceKotlin(version = "1.1")
|
|
public static /* synthetic */ void isOpen$annotations() {
|
|
}
|
|
|
|
@SinceKotlin(version = "1.1")
|
|
public static /* synthetic */ void isSealed$annotations() {
|
|
}
|
|
|
|
@SinceKotlin(version = "1.5")
|
|
public static /* synthetic */ void isValue$annotations() {
|
|
}
|
|
}
|
|
|
|
boolean equals(@Nullable Object other);
|
|
|
|
@NotNull
|
|
Collection<KFunction<T>> getConstructors();
|
|
|
|
@Override // kotlin.reflect.KDeclarationContainer
|
|
@NotNull
|
|
Collection<KCallable<?>> getMembers();
|
|
|
|
@NotNull
|
|
Collection<KClass<?>> getNestedClasses();
|
|
|
|
@Nullable
|
|
T getObjectInstance();
|
|
|
|
@Nullable
|
|
String getQualifiedName();
|
|
|
|
@NotNull
|
|
List<KClass<? extends T>> getSealedSubclasses();
|
|
|
|
@Nullable
|
|
String getSimpleName();
|
|
|
|
@NotNull
|
|
List<KType> getSupertypes();
|
|
|
|
@NotNull
|
|
List<KTypeParameter> getTypeParameters();
|
|
|
|
@Nullable
|
|
KVisibility getVisibility();
|
|
|
|
int hashCode();
|
|
|
|
boolean isAbstract();
|
|
|
|
boolean isCompanion();
|
|
|
|
boolean isData();
|
|
|
|
boolean isFinal();
|
|
|
|
boolean isFun();
|
|
|
|
boolean isInner();
|
|
|
|
@SinceKotlin(version = "1.1")
|
|
boolean isInstance(@Nullable Object value);
|
|
|
|
boolean isOpen();
|
|
|
|
boolean isSealed();
|
|
|
|
boolean isValue();
|
|
}
|