soul-browser/app/smali_classes4/org/jsoup/parser/HtmlTreeBuilderState$16.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

877 lines
16 KiB
Smali

.class final enum Lorg/jsoup/parser/HtmlTreeBuilderState$16;
.super Lorg/jsoup/parser/HtmlTreeBuilderState;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/jsoup/parser/HtmlTreeBuilderState;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4011
name = null
.end annotation
# direct methods
.method public constructor <init>()V
.locals 2
.line 1
const-string v0, "InSelect"
.line 2
.line 3
const/16 v1, 0xf
.line 4
.line 5
invoke-direct {p0, v0, v1}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
.line 6
.line 7
.line 8
return-void
.end method
# virtual methods
.method public final d(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z
.locals 10
.line 1
sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$25;->a:[I
.line 2
.line 3
iget-object v1, p1, Lorg/jsoup/parser/Token;->a:Lorg/jsoup/parser/Token$TokenType;
.line 4
.line 5
invoke-virtual {v1}, Ljava/lang/Enum;->ordinal()I
.line 6
.line 7
.line 8
move-result v1
.line 9
aget v0, v0, v1
.line 10
.line 11
const/4 v1, 0x1
.line 12
const-string v2, "template"
.line 13
.line 14
sget-object v3, Lorg/jsoup/parser/HtmlTreeBuilderState;->h:Lorg/jsoup/parser/HtmlTreeBuilderState$4;
.line 15
.line 16
const-string v4, "html"
.line 17
.line 18
const-string v5, "select"
.line 19
.line 20
const-string v6, "optgroup"
.line 21
.line 22
const/4 v7, 0x0
.line 23
const-string v8, "option"
.line 24
.line 25
packed-switch v0, :pswitch_data_0
.line 26
.line 27
.line 28
invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->B(Lorg/jsoup/parser/HtmlTreeBuilderState;)V
.line 29
.line 30
.line 31
return v7
.line 32
:pswitch_0
invoke-virtual {p2, v4}, Lorg/jsoup/parser/TreeBuilder;->c(Ljava/lang/String;)Z
.line 33
.line 34
.line 35
move-result p1
.line 36
if-nez p1, :cond_14
.line 37
.line 38
invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->B(Lorg/jsoup/parser/HtmlTreeBuilderState;)V
.line 39
.line 40
.line 41
goto/16 :goto_2
.line 42
.line 43
:pswitch_1
check-cast p1, Lorg/jsoup/parser/Token$Character;
.line 44
.line 45
iget-object v0, p1, Lorg/jsoup/parser/Token$Character;->d:Lorg/jsoup/parser/TokenData;
.line 46
.line 47
invoke-virtual {v0}, Lorg/jsoup/parser/TokenData;->e()Ljava/lang/String;
.line 48
.line 49
.line 50
move-result-object v0
.line 51
sget-object v2, Lorg/jsoup/parser/HtmlTreeBuilderState;->C:Ljava/lang/String;
.line 52
.line 53
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
.line 54
.line 55
.line 56
move-result v0
.line 57
if-eqz v0, :cond_0
.line 58
.line 59
invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->B(Lorg/jsoup/parser/HtmlTreeBuilderState;)V
.line 60
.line 61
.line 62
return v7
.line 63
:cond_0
invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->K(Lorg/jsoup/parser/Token$Character;)V
.line 64
.line 65
.line 66
goto/16 :goto_2
.line 67
.line 68
:pswitch_2
move-object v0, p1
.line 69
check-cast v0, Lorg/jsoup/parser/Token$EndTag;
.line 70
.line 71
invoke-virtual {v0}, Lorg/jsoup/parser/Token$Tag;->m()Ljava/lang/String;
.line 72
.line 73
.line 74
move-result-object v0
.line 75
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
.line 76
.line 77
.line 78
invoke-virtual {v0}, Ljava/lang/String;->hashCode()I
.line 79
.line 80
.line 81
move-result v4
.line 82
const/4 v9, -0x1
.line 83
sparse-switch v4, :sswitch_data_0
.line 84
.line 85
.line 86
goto :goto_0
.line 87
:sswitch_0
invoke-virtual {v0, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
.line 88
.line 89
.line 90
move-result v2
.line 91
if-nez v2, :cond_1
.line 92
.line 93
goto :goto_0
.line 94
:cond_1
const/4 v9, 0x3
.line 95
goto :goto_0
.line 96
:sswitch_1
invoke-virtual {v0, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
.line 97
.line 98
.line 99
move-result v2
.line 100
if-nez v2, :cond_2
.line 101
.line 102
goto :goto_0
.line 103
:cond_2
const/4 v9, 0x2
.line 104
goto :goto_0
.line 105
:sswitch_2
invoke-virtual {v0, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
.line 106
.line 107
.line 108
move-result v2
.line 109
if-nez v2, :cond_3
.line 110
.line 111
goto :goto_0
.line 112
:cond_3
move v9, v1
.line 113
goto :goto_0
.line 114
:sswitch_3
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
.line 115
.line 116
.line 117
move-result v2
.line 118
if-nez v2, :cond_4
.line 119
.line 120
goto :goto_0
.line 121
:cond_4
move v9, v7
.line 122
:goto_0
packed-switch v9, :pswitch_data_1
.line 123
.line 124
.line 125
invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->B(Lorg/jsoup/parser/HtmlTreeBuilderState;)V
.line 126
.line 127
.line 128
return v7
.line 129
:pswitch_3
invoke-virtual {p2, v8}, Lorg/jsoup/parser/TreeBuilder;->c(Ljava/lang/String;)Z
.line 130
.line 131
.line 132
move-result p1
.line 133
if-eqz p1, :cond_5
.line 134
.line 135
invoke-virtual {p2}, Lorg/jsoup/parser/TreeBuilder;->b()Lorg/jsoup/nodes/Element;
.line 136
.line 137
.line 138
move-result-object p1
.line 139
invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->t(Lorg/jsoup/nodes/Element;)Lorg/jsoup/nodes/Element;
.line 140
.line 141
.line 142
move-result-object p1
.line 143
if-eqz p1, :cond_5
.line 144
.line 145
invoke-virtual {p2}, Lorg/jsoup/parser/TreeBuilder;->b()Lorg/jsoup/nodes/Element;
.line 146
.line 147
.line 148
move-result-object p1
.line 149
invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->t(Lorg/jsoup/nodes/Element;)Lorg/jsoup/nodes/Element;
.line 150
.line 151
.line 152
move-result-object p1
.line 153
invoke-virtual {p1, v6}, Lorg/jsoup/nodes/Node;->nameIs(Ljava/lang/String;)Z
.line 154
.line 155
.line 156
move-result p1
.line 157
if-eqz p1, :cond_5
.line 158
.line 159
invoke-virtual {p2, v8}, Lorg/jsoup/parser/TreeBuilder;->n(Ljava/lang/String;)Z
.line 160
.line 161
.line 162
:cond_5
invoke-virtual {p2, v6}, Lorg/jsoup/parser/TreeBuilder;->c(Ljava/lang/String;)Z
.line 163
.line 164
.line 165
move-result p1
.line 166
if-eqz p1, :cond_6
.line 167
.line 168
invoke-virtual {p2}, Lorg/jsoup/parser/TreeBuilder;->l()Lorg/jsoup/nodes/Element;
.line 169
.line 170
.line 171
goto/16 :goto_2
.line 172
.line 173
:cond_6
invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->B(Lorg/jsoup/parser/HtmlTreeBuilderState;)V
.line 174
.line 175
.line 176
goto/16 :goto_2
.line 177
.line 178
:pswitch_4
invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->H(Ljava/lang/String;)Z
.line 179
.line 180
.line 181
move-result p1
.line 182
if-nez p1, :cond_7
.line 183
.line 184
invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->B(Lorg/jsoup/parser/HtmlTreeBuilderState;)V
.line 185
.line 186
.line 187
return v7
.line 188
:cond_7
invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->V(Ljava/lang/String;)V
.line 189
.line 190
.line 191
invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->b0()Z
.line 192
.line 193
.line 194
goto/16 :goto_2
.line 195
.line 196
:pswitch_5
invoke-virtual {p2, v8}, Lorg/jsoup/parser/TreeBuilder;->c(Ljava/lang/String;)Z
.line 197
.line 198
.line 199
move-result p1
.line 200
if-eqz p1, :cond_8
.line 201
.line 202
invoke-virtual {p2}, Lorg/jsoup/parser/TreeBuilder;->l()Lorg/jsoup/nodes/Element;
.line 203
.line 204
.line 205
goto/16 :goto_2
.line 206
.line 207
:cond_8
invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->B(Lorg/jsoup/parser/HtmlTreeBuilderState;)V
.line 208
.line 209
.line 210
goto/16 :goto_2
.line 211
.line 212
:pswitch_6
invoke-virtual {v3, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$4;->d(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z
.line 213
.line 214
.line 215
move-result p1
.line 216
return p1
.line 217
:pswitch_7
move-object v0, p1
.line 218
check-cast v0, Lorg/jsoup/parser/Token$StartTag;
.line 219
.line 220
invoke-virtual {v0}, Lorg/jsoup/parser/Token$Tag;->m()Ljava/lang/String;
.line 221
.line 222
.line 223
move-result-object v9
.line 224
invoke-virtual {v9, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
.line 225
.line 226
.line 227
move-result v4
.line 228
if-eqz v4, :cond_9
.line 229
.line 230
sget-object p1, Lorg/jsoup/parser/HtmlTreeBuilderState;->k:Lorg/jsoup/parser/HtmlTreeBuilderState$7;
.line 231
.line 232
invoke-virtual {p1, v0, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->d(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z
.line 233
.line 234
.line 235
move-result p1
.line 236
return p1
.line 237
:cond_9
invoke-virtual {v9, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
.line 238
.line 239
.line 240
move-result v4
.line 241
if-eqz v4, :cond_b
.line 242
.line 243
invoke-virtual {p2, v8}, Lorg/jsoup/parser/TreeBuilder;->c(Ljava/lang/String;)Z
.line 244
.line 245
.line 246
move-result p1
.line 247
if-eqz p1, :cond_a
.line 248
.line 249
invoke-virtual {p2, v8}, Lorg/jsoup/parser/TreeBuilder;->n(Ljava/lang/String;)Z
.line 250
.line 251
.line 252
:cond_a
invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->N(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element;
.line 253
.line 254
.line 255
goto :goto_2
.line 256
:cond_b
invoke-virtual {v9, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
.line 257
.line 258
.line 259
move-result v4
.line 260
if-eqz v4, :cond_e
.line 261
.line 262
invoke-virtual {p2, v8}, Lorg/jsoup/parser/TreeBuilder;->c(Ljava/lang/String;)Z
.line 263
.line 264
.line 265
move-result p1
.line 266
if-eqz p1, :cond_c
.line 267
.line 268
invoke-virtual {p2, v8}, Lorg/jsoup/parser/TreeBuilder;->n(Ljava/lang/String;)Z
.line 269
.line 270
.line 271
:cond_c
invoke-virtual {p2, v6}, Lorg/jsoup/parser/TreeBuilder;->c(Ljava/lang/String;)Z
.line 272
.line 273
.line 274
move-result p1
.line 275
if-eqz p1, :cond_d
.line 276
.line 277
invoke-virtual {p2, v6}, Lorg/jsoup/parser/TreeBuilder;->n(Ljava/lang/String;)Z
.line 278
.line 279
.line 280
:cond_d
invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->N(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element;
.line 281
.line 282
.line 283
goto :goto_2
.line 284
:cond_e
invoke-virtual {v9, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
.line 285
.line 286
.line 287
move-result v1
.line 288
if-eqz v1, :cond_f
.line 289
.line 290
invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->B(Lorg/jsoup/parser/HtmlTreeBuilderState;)V
.line 291
.line 292
.line 293
invoke-virtual {p2, v5}, Lorg/jsoup/parser/TreeBuilder;->n(Ljava/lang/String;)Z
.line 294
.line 295
.line 296
move-result p1
.line 297
return p1
.line 298
:cond_f
sget-object v1, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->E:[Ljava/lang/String;
.line 299
.line 300
invoke-static {v9, v1}, Lorg/jsoup/internal/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z
.line 301
.line 302
.line 303
move-result v1
.line 304
if-eqz v1, :cond_11
.line 305
.line 306
invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->B(Lorg/jsoup/parser/HtmlTreeBuilderState;)V
.line 307
.line 308
.line 309
invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->H(Ljava/lang/String;)Z
.line 310
.line 311
.line 312
move-result p1
.line 313
if-nez p1, :cond_10
.line 314
.line 315
return v7
.line 316
:cond_10
invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->V(Ljava/lang/String;)V
.line 317
.line 318
.line 319
invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->b0()Z
.line 320
.line 321
.line 322
invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->H(Ljava/lang/String;)Z
.line 323
.line 324
.line 325
move-result p1
.line 326
if-nez p1, :cond_10
.line 327
.line 328
invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->m(Lorg/jsoup/parser/Token;)Z
.line 329
.line 330
.line 331
move-result p1
.line 332
return p1
.line 333
:cond_11
const-string v0, "script"
.line 334
.line 335
invoke-virtual {v9, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
.line 336
.line 337
.line 338
move-result v0
.line 339
if-nez v0, :cond_13
.line 340
.line 341
invoke-virtual {v9, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
.line 342
.line 343
.line 344
move-result v0
.line 345
if-eqz v0, :cond_12
.line 346
.line 347
goto :goto_1
.line 348
:cond_12
invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->B(Lorg/jsoup/parser/HtmlTreeBuilderState;)V
.line 349
.line 350
.line 351
return v7
.line 352
:cond_13
:goto_1
invoke-virtual {v3, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$4;->d(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z
.line 353
.line 354
.line 355
move-result p1
.line 356
return p1
.line 357
:pswitch_8
invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->B(Lorg/jsoup/parser/HtmlTreeBuilderState;)V
.line 358
.line 359
.line 360
return v7
.line 361
:pswitch_9
check-cast p1, Lorg/jsoup/parser/Token$Comment;
.line 362
.line 363
invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->M(Lorg/jsoup/parser/Token$Comment;)V
.line 364
.line 365
.line 366
:cond_14
:goto_2
return v1
.line 367
:pswitch_data_0
.packed-switch 0x1
:pswitch_9
:pswitch_8
:pswitch_7
:pswitch_2
:pswitch_1
:pswitch_0
.end packed-switch
.line 368
.line 369
.line 370
.line 371
.line 372
.line 373
.line 374
.line 375
.line 376
.line 377
.line 378
.line 379
.line 380
.line 381
.line 382
.line 383
:sswitch_data_0
.sparse-switch
-0x4ec53386 -> :sswitch_3
-0x3c35778b -> :sswitch_2
-0x3600cb04 -> :sswitch_1
-0x4d08054 -> :sswitch_0
.end sparse-switch
.line 384
.line 385
.line 386
.line 387
.line 388
.line 389
.line 390
.line 391
.line 392
.line 393
.line 394
.line 395
.line 396
.line 397
.line 398
.line 399
.line 400
.line 401
:pswitch_data_1
.packed-switch 0x0
:pswitch_6
:pswitch_5
:pswitch_4
:pswitch_3
.end packed-switch
.end method