soul-browser/app/smali_classes4/okhttp3/Cookie$Companion.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

856 lines
16 KiB
Smali

.class public final Lokhttp3/Cookie$Companion;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/Cookie;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Companion"
.end annotation
.annotation runtime Lkotlin/Metadata;
d1 = {
"\u0000\u0010\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u0007\u0008\u0086\u0003\u0018\u00002\u00020\u0001R\u001c\u0010\u0004\u001a\n \u0003*\u0004\u0018\u00010\u00020\u00028\u0002X\u0082\u0004\u00a2\u0006\u0006\n\u0004\u0008\u0004\u0010\u0005R\u001c\u0010\u0006\u001a\n \u0003*\u0004\u0018\u00010\u00020\u00028\u0002X\u0082\u0004\u00a2\u0006\u0006\n\u0004\u0008\u0006\u0010\u0005R\u001c\u0010\u0007\u001a\n \u0003*\u0004\u0018\u00010\u00020\u00028\u0002X\u0082\u0004\u00a2\u0006\u0006\n\u0004\u0008\u0007\u0010\u0005R\u001c\u0010\u0008\u001a\n \u0003*\u0004\u0018\u00010\u00020\u00028\u0002X\u0082\u0004\u00a2\u0006\u0006\n\u0004\u0008\u0008\u0010\u0005\u00a8\u0006\t"
}
d2 = {
"Lokhttp3/Cookie$Companion;",
"",
"Ljava/util/regex/Pattern;",
"kotlin.jvm.PlatformType",
"YEAR_PATTERN",
"Ljava/util/regex/Pattern;",
"MONTH_PATTERN",
"DAY_OF_MONTH_PATTERN",
"TIME_PATTERN",
"okhttp"
}
k = 0x1
mv = {
0x2,
0x2,
0x0
}
xi = 0x30
.end annotation
.annotation build Lkotlin/jvm/internal/SourceDebugExtension;
value = {
"SMAP\nCookie.kt\nKotlin\n*S Kotlin\n*F\n+ 1 Cookie.kt\nokhttp3/Cookie$Companion\n+ 2 -UtilJvm.kt\nokhttp3/internal/_UtilJvmKt\n*L\n1#1,727:1\n242#2:728\n*S KotlinDebug\n*F\n+ 1 Cookie.kt\nokhttp3/Cookie$Companion\n*L\n723#1:728\n*E\n"
}
.end annotation
# direct methods
.method public static a(Ljava/lang/String;IIZ)I
.locals 4
.line 1
:goto_0
if-ge p1, p2, :cond_7
.line 2
.line 3
invoke-virtual {p0, p1}, Ljava/lang/String;->charAt(I)C
.line 4
.line 5
.line 6
move-result v0
.line 7
const/16 v1, 0x20
.line 8
.line 9
const/4 v2, 0x1
.line 10
if-ge v0, v1, :cond_0
.line 11
.line 12
const/16 v1, 0x9
.line 13
.line 14
if-ne v0, v1, :cond_5
.line 15
.line 16
:cond_0
const/16 v1, 0x7f
.line 17
.line 18
if-ge v0, v1, :cond_5
.line 19
.line 20
const/16 v1, 0x30
.line 21
.line 22
const/16 v3, 0x3a
.line 23
.line 24
if-gt v1, v0, :cond_1
.line 25
.line 26
if-ge v0, v3, :cond_1
.line 27
.line 28
goto :goto_1
.line 29
:cond_1
const/16 v1, 0x61
.line 30
.line 31
if-gt v1, v0, :cond_2
.line 32
.line 33
const/16 v1, 0x7b
.line 34
.line 35
if-ge v0, v1, :cond_2
.line 36
.line 37
goto :goto_1
.line 38
:cond_2
const/16 v1, 0x41
.line 39
.line 40
if-gt v1, v0, :cond_3
.line 41
.line 42
const/16 v1, 0x5b
.line 43
.line 44
if-ge v0, v1, :cond_3
.line 45
.line 46
goto :goto_1
.line 47
:cond_3
if-ne v0, v3, :cond_4
.line 48
.line 49
goto :goto_1
.line 50
:cond_4
const/4 v0, 0x0
.line 51
goto :goto_2
.line 52
:cond_5
:goto_1
move v0, v2
.line 53
:goto_2
xor-int/lit8 v1, p3, 0x1
.line 54
.line 55
if-ne v0, v1, :cond_6
.line 56
.line 57
return p1
.line 58
:cond_6
add-int/lit8 p1, p1, 0x1
.line 59
.line 60
goto :goto_0
.line 61
:cond_7
return p2
.end method
.method public static b(ILjava/lang/String;)J
.locals 14
.line 1
const/4 v0, 0x0
.line 2
invoke-static {p1, v0, p0, v0}, Lokhttp3/Cookie$Companion;->a(Ljava/lang/String;IIZ)I
.line 3
.line 4
.line 5
move-result v1
.line 6
sget-object v2, Lokhttp3/Cookie;->n:Ljava/util/regex/Pattern;
.line 7
.line 8
invoke-virtual {v2, p1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
.line 9
.line 10
.line 11
move-result-object v2
.line 12
const/4 v3, -0x1
.line 13
move v4, v3
.line 14
move v5, v4
.line 15
move v6, v5
.line 16
move v7, v6
.line 17
move v8, v7
.line 18
move v9, v8
.line 19
:goto_0
const/4 v10, 0x2
.line 20
const/4 v11, 0x1
.line 21
if-ge v1, p0, :cond_4
.line 22
.line 23
add-int/lit8 v12, v1, 0x1
.line 24
.line 25
invoke-static {p1, v12, p0, v11}, Lokhttp3/Cookie$Companion;->a(Ljava/lang/String;IIZ)I
.line 26
.line 27
.line 28
move-result v12
.line 29
invoke-virtual {v2, v1, v12}, Ljava/util/regex/Matcher;->region(II)Ljava/util/regex/Matcher;
.line 30
.line 31
.line 32
const-string v1, "group(...)"
.line 33
.line 34
if-ne v5, v3, :cond_0
.line 35
.line 36
sget-object v13, Lokhttp3/Cookie;->n:Ljava/util/regex/Pattern;
.line 37
.line 38
invoke-virtual {v2, v13}, Ljava/util/regex/Matcher;->usePattern(Ljava/util/regex/Pattern;)Ljava/util/regex/Matcher;
.line 39
.line 40
.line 41
move-result-object v13
.line 42
invoke-virtual {v13}, Ljava/util/regex/Matcher;->matches()Z
.line 43
.line 44
.line 45
move-result v13
.line 46
if-eqz v13, :cond_0
.line 47
.line 48
invoke-virtual {v2, v11}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
.line 49
.line 50
.line 51
move-result-object v5
.line 52
invoke-static {v5, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 53
.line 54
.line 55
invoke-static {v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
.line 56
.line 57
.line 58
move-result v5
.line 59
invoke-virtual {v2, v10}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
.line 60
.line 61
.line 62
move-result-object v8
.line 63
invoke-static {v8, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 64
.line 65
.line 66
invoke-static {v8}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
.line 67
.line 68
.line 69
move-result v8
.line 70
const/4 v9, 0x3
.line 71
invoke-virtual {v2, v9}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
.line 72
.line 73
.line 74
move-result-object v9
.line 75
invoke-static {v9, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 76
.line 77
.line 78
invoke-static {v9}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
.line 79
.line 80
.line 81
move-result v9
.line 82
goto :goto_1
.line 83
:cond_0
if-ne v6, v3, :cond_1
.line 84
.line 85
sget-object v10, Lokhttp3/Cookie;->m:Ljava/util/regex/Pattern;
.line 86
.line 87
invoke-virtual {v2, v10}, Ljava/util/regex/Matcher;->usePattern(Ljava/util/regex/Pattern;)Ljava/util/regex/Matcher;
.line 88
.line 89
.line 90
move-result-object v10
.line 91
invoke-virtual {v10}, Ljava/util/regex/Matcher;->matches()Z
.line 92
.line 93
.line 94
move-result v10
.line 95
if-eqz v10, :cond_1
.line 96
.line 97
invoke-virtual {v2, v11}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
.line 98
.line 99
.line 100
move-result-object v6
.line 101
invoke-static {v6, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 102
.line 103
.line 104
invoke-static {v6}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
.line 105
.line 106
.line 107
move-result v6
.line 108
goto :goto_1
.line 109
:cond_1
if-ne v7, v3, :cond_2
.line 110
.line 111
sget-object v10, Lokhttp3/Cookie;->l:Ljava/util/regex/Pattern;
.line 112
.line 113
invoke-virtual {v2, v10}, Ljava/util/regex/Matcher;->usePattern(Ljava/util/regex/Pattern;)Ljava/util/regex/Matcher;
.line 114
.line 115
.line 116
move-result-object v13
.line 117
invoke-virtual {v13}, Ljava/util/regex/Matcher;->matches()Z
.line 118
.line 119
.line 120
move-result v13
.line 121
if-eqz v13, :cond_2
.line 122
.line 123
invoke-virtual {v2, v11}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
.line 124
.line 125
.line 126
move-result-object v7
.line 127
invoke-static {v7, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 128
.line 129
.line 130
sget-object v1, Ljava/util/Locale;->US:Ljava/util/Locale;
.line 131
.line 132
const-string v11, "US"
.line 133
.line 134
invoke-static {v1, v11}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 135
.line 136
.line 137
invoke-virtual {v7, v1}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
.line 138
.line 139
.line 140
move-result-object v1
.line 141
const-string v7, "toLowerCase(...)"
.line 142
.line 143
invoke-static {v1, v7}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 144
.line 145
.line 146
invoke-virtual {v10}, Ljava/util/regex/Pattern;->pattern()Ljava/lang/String;
.line 147
.line 148
.line 149
move-result-object v7
.line 150
const-string v10, "pattern(...)"
.line 151
.line 152
invoke-static {v7, v10}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 153
.line 154
.line 155
invoke-static {v7, v1}, Lkotlin/text/StringsKt;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 156
.line 157
.line 158
move-result v1
.line 159
div-int/lit8 v7, v1, 0x4
.line 160
.line 161
goto :goto_1
.line 162
:cond_2
if-ne v4, v3, :cond_3
.line 163
.line 164
sget-object v10, Lokhttp3/Cookie;->k:Ljava/util/regex/Pattern;
.line 165
.line 166
invoke-virtual {v2, v10}, Ljava/util/regex/Matcher;->usePattern(Ljava/util/regex/Pattern;)Ljava/util/regex/Matcher;
.line 167
.line 168
.line 169
move-result-object v10
.line 170
invoke-virtual {v10}, Ljava/util/regex/Matcher;->matches()Z
.line 171
.line 172
.line 173
move-result v10
.line 174
if-eqz v10, :cond_3
.line 175
.line 176
invoke-virtual {v2, v11}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
.line 177
.line 178
.line 179
move-result-object v4
.line 180
invoke-static {v4, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 181
.line 182
.line 183
invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
.line 184
.line 185
.line 186
move-result v4
.line 187
:cond_3
:goto_1
add-int/lit8 v12, v12, 0x1
.line 188
.line 189
invoke-static {p1, v12, p0, v0}, Lokhttp3/Cookie$Companion;->a(Ljava/lang/String;IIZ)I
.line 190
.line 191
.line 192
move-result v1
.line 193
goto/16 :goto_0
.line 194
.line 195
:cond_4
const/16 p0, 0x46
.line 196
.line 197
if-gt p0, v4, :cond_5
.line 198
.line 199
const/16 p1, 0x64
.line 200
.line 201
if-ge v4, p1, :cond_5
.line 202
.line 203
add-int/lit16 v4, v4, 0x76c
.line 204
.line 205
:cond_5
if-ltz v4, :cond_6
.line 206
.line 207
if-ge v4, p0, :cond_6
.line 208
.line 209
add-int/lit16 v4, v4, 0x7d0
.line 210
.line 211
:cond_6
const/16 p0, 0x641
.line 212
.line 213
const-string p1, "Failed requirement."
.line 214
.line 215
if-lt v4, p0, :cond_c
.line 216
.line 217
if-eq v7, v3, :cond_b
.line 218
.line 219
if-gt v11, v6, :cond_a
.line 220
.line 221
const/16 p0, 0x20
.line 222
.line 223
if-ge v6, p0, :cond_a
.line 224
.line 225
if-ltz v5, :cond_9
.line 226
.line 227
const/16 p0, 0x18
.line 228
.line 229
if-ge v5, p0, :cond_9
.line 230
.line 231
if-ltz v8, :cond_8
.line 232
.line 233
const/16 p0, 0x3c
.line 234
.line 235
if-ge v8, p0, :cond_8
.line 236
.line 237
if-ltz v9, :cond_7
.line 238
.line 239
if-ge v9, p0, :cond_7
.line 240
.line 241
new-instance p0, Ljava/util/GregorianCalendar;
.line 242
.line 243
sget-object p1, Lokhttp3/internal/_UtilJvmKt;->a:Ljava/util/TimeZone;
.line 244
.line 245
invoke-direct {p0, p1}, Ljava/util/GregorianCalendar;-><init>(Ljava/util/TimeZone;)V
.line 246
.line 247
.line 248
invoke-virtual {p0, v0}, Ljava/util/Calendar;->setLenient(Z)V
.line 249
.line 250
.line 251
invoke-virtual {p0, v11, v4}, Ljava/util/Calendar;->set(II)V
.line 252
.line 253
.line 254
sub-int/2addr v7, v11
.line 255
invoke-virtual {p0, v10, v7}, Ljava/util/Calendar;->set(II)V
.line 256
.line 257
.line 258
const/4 p1, 0x5
.line 259
invoke-virtual {p0, p1, v6}, Ljava/util/Calendar;->set(II)V
.line 260
.line 261
.line 262
const/16 p1, 0xb
.line 263
.line 264
invoke-virtual {p0, p1, v5}, Ljava/util/Calendar;->set(II)V
.line 265
.line 266
.line 267
const/16 p1, 0xc
.line 268
.line 269
invoke-virtual {p0, p1, v8}, Ljava/util/Calendar;->set(II)V
.line 270
.line 271
.line 272
const/16 p1, 0xd
.line 273
.line 274
invoke-virtual {p0, p1, v9}, Ljava/util/Calendar;->set(II)V
.line 275
.line 276
.line 277
const/16 p1, 0xe
.line 278
.line 279
invoke-virtual {p0, p1, v0}, Ljava/util/Calendar;->set(II)V
.line 280
.line 281
.line 282
invoke-virtual {p0}, Ljava/util/Calendar;->getTimeInMillis()J
.line 283
.line 284
.line 285
move-result-wide p0
.line 286
return-wide p0
.line 287
:cond_7
new-instance p0, Ljava/lang/IllegalArgumentException;
.line 288
.line 289
invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
.line 290
.line 291
.line 292
throw p0
.line 293
:cond_8
new-instance p0, Ljava/lang/IllegalArgumentException;
.line 294
.line 295
invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
.line 296
.line 297
.line 298
throw p0
.line 299
:cond_9
new-instance p0, Ljava/lang/IllegalArgumentException;
.line 300
.line 301
invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
.line 302
.line 303
.line 304
throw p0
.line 305
:cond_a
new-instance p0, Ljava/lang/IllegalArgumentException;
.line 306
.line 307
invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
.line 308
.line 309
.line 310
throw p0
.line 311
:cond_b
new-instance p0, Ljava/lang/IllegalArgumentException;
.line 312
.line 313
invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
.line 314
.line 315
.line 316
throw p0
.line 317
:cond_c
new-instance p0, Ljava/lang/IllegalArgumentException;
.line 318
.line 319
invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
.line 320
.line 321
.line 322
throw p0
.end method