soul-browser/app/smali/com/google/android/gms/cast/zzdf.smali
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

306 lines
5.9 KiB
Smali

.class public final Lcom/google/android/gms/cast/zzdf;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/os/Parcelable$Creator;
# virtual methods
.method public final bridge synthetic createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
.locals 18
.line 1
move-object/from16 v0, p1
.line 2
.line 3
invoke-static {v0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->validateObjectHeader(Landroid/os/Parcel;)I
.line 4
.line 5
.line 6
move-result v1
.line 7
const/4 v2, 0x0
.line 8
const/4 v3, 0x0
.line 9
const/4 v4, 0x0
.line 10
move-object v14, v2
.line 11
move-object/from16 v17, v14
.line 12
.line 13
move v7, v3
.line 14
move v8, v7
.line 15
move v9, v8
.line 16
move v10, v9
.line 17
move v11, v10
.line 18
move v12, v11
.line 19
move v13, v12
.line 20
move v15, v13
.line 21
move/from16 v16, v15
.line 22
.line 23
move v6, v4
.line 24
:goto_0
invoke-virtual {v0}, Landroid/os/Parcel;->dataPosition()I
.line 25
.line 26
.line 27
move-result v2
.line 28
if-ge v2, v1, :cond_0
.line 29
.line 30
invoke-static {v0}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readHeader(Landroid/os/Parcel;)I
.line 31
.line 32
.line 33
move-result v2
.line 34
invoke-static {v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->getFieldId(I)I
.line 35
.line 36
.line 37
move-result v3
.line 38
packed-switch v3, :pswitch_data_0
.line 39
.line 40
.line 41
invoke-static {v0, v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->skipUnknownField(Landroid/os/Parcel;I)V
.line 42
.line 43
.line 44
goto :goto_0
.line 45
:pswitch_0
invoke-static {v0, v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->createString(Landroid/os/Parcel;I)Ljava/lang/String;
.line 46
.line 47
.line 48
move-result-object v17
.line 49
goto :goto_0
.line 50
:pswitch_1
invoke-static {v0, v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readInt(Landroid/os/Parcel;I)I
.line 51
.line 52
.line 53
move-result v16
.line 54
goto :goto_0
.line 55
:pswitch_2
invoke-static {v0, v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readInt(Landroid/os/Parcel;I)I
.line 56
.line 57
.line 58
move-result v15
.line 59
goto :goto_0
.line 60
:pswitch_3
invoke-static {v0, v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->createString(Landroid/os/Parcel;I)Ljava/lang/String;
.line 61
.line 62
.line 63
move-result-object v14
.line 64
goto :goto_0
.line 65
:pswitch_4
invoke-static {v0, v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readInt(Landroid/os/Parcel;I)I
.line 66
.line 67
.line 68
move-result v13
.line 69
goto :goto_0
.line 70
:pswitch_5
invoke-static {v0, v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readInt(Landroid/os/Parcel;I)I
.line 71
.line 72
.line 73
move-result v12
.line 74
goto :goto_0
.line 75
:pswitch_6
invoke-static {v0, v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readInt(Landroid/os/Parcel;I)I
.line 76
.line 77
.line 78
move-result v11
.line 79
goto :goto_0
.line 80
:pswitch_7
invoke-static {v0, v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readInt(Landroid/os/Parcel;I)I
.line 81
.line 82
.line 83
move-result v10
.line 84
goto :goto_0
.line 85
:pswitch_8
invoke-static {v0, v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readInt(Landroid/os/Parcel;I)I
.line 86
.line 87
.line 88
move-result v9
.line 89
goto :goto_0
.line 90
:pswitch_9
invoke-static {v0, v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readInt(Landroid/os/Parcel;I)I
.line 91
.line 92
.line 93
move-result v8
.line 94
goto :goto_0
.line 95
:pswitch_a
invoke-static {v0, v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readInt(Landroid/os/Parcel;I)I
.line 96
.line 97
.line 98
move-result v7
.line 99
goto :goto_0
.line 100
:pswitch_b
invoke-static {v0, v2}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->readFloat(Landroid/os/Parcel;I)F
.line 101
.line 102
.line 103
move-result v6
.line 104
goto :goto_0
.line 105
:cond_0
invoke-static {v0, v1}, Lcom/google/android/gms/common/internal/safeparcel/SafeParcelReader;->ensureAtEnd(Landroid/os/Parcel;I)V
.line 106
.line 107
.line 108
new-instance v5, Lcom/google/android/gms/cast/TextTrackStyle;
.line 109
.line 110
invoke-direct/range {v5 .. v17}, Lcom/google/android/gms/cast/TextTrackStyle;-><init>(FIIIIIIILjava/lang/String;IILjava/lang/String;)V
.line 111
.line 112
.line 113
return-object v5
.line 114
nop
.line 115
:pswitch_data_0
.packed-switch 0x2
:pswitch_b
:pswitch_a
:pswitch_9
:pswitch_8
:pswitch_7
:pswitch_6
:pswitch_5
:pswitch_4
:pswitch_3
:pswitch_2
:pswitch_1
:pswitch_0
.end packed-switch
.end method
.method public final synthetic newArray(I)[Ljava/lang/Object;
.locals 0
.line 1
new-array p1, p1, [Lcom/google/android/gms/cast/TextTrackStyle;
.line 2
.line 3
return-object p1
.end method