* 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>
45 lines
2.8 KiB
XML
45 lines
2.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<resources>
|
|
<integer name="abc_config_activityDefaultDur">220</integer>
|
|
<integer name="abc_config_activityShortDur">150</integer>
|
|
<integer name="app_bar_elevation_anim_duration">150</integer>
|
|
<integer name="bottom_sheet_slide_duration">150</integer>
|
|
<integer name="cancel_button_image_alpha">127</integer>
|
|
<integer name="cast_libraries_material_featurehighlight_pulse_base_alpha">138</integer>
|
|
<integer name="config_tooltipAnimTime">150</integer>
|
|
<integer name="default_icon_animation_duration">10000</integer>
|
|
<integer name="design_snackbar_text_max_lines">2</integer>
|
|
<integer name="design_tab_indicator_anim_duration_ms">300</integer>
|
|
<integer name="google_play_services_version">12451000</integer>
|
|
<integer name="hide_password_duration">320</integer>
|
|
<integer name="m3_badge_max_number">999</integer>
|
|
<integer name="m3_sys_motion_duration_medium2">300</integer>
|
|
<integer name="m3_sys_motion_duration_medium3">350</integer>
|
|
<integer name="m3_sys_motion_duration_medium4">400</integer>
|
|
<integer name="m3_sys_motion_duration_short1">50</integer>
|
|
<integer name="m3_sys_motion_duration_short3">150</integer>
|
|
<integer name="material_motion_duration_long_1">300</integer>
|
|
<integer name="material_motion_duration_long_2">350</integer>
|
|
<integer name="material_motion_duration_medium_1">200</integer>
|
|
<integer name="material_motion_duration_medium_2">250</integer>
|
|
<integer name="material_motion_duration_short_1">75</integer>
|
|
<integer name="material_motion_duration_short_2">150</integer>
|
|
<integer name="material_motion_path">0</integer>
|
|
<integer name="mr_cast_volume_slider_layout_animation_duration_ms">400</integer>
|
|
<integer name="mr_controller_volume_group_list_animation_duration_ms">400</integer>
|
|
<integer name="mr_controller_volume_group_list_fade_in_duration_ms">400</integer>
|
|
<integer name="mr_controller_volume_group_list_fade_out_duration_ms">200</integer>
|
|
<integer name="mr_update_routes_delay_ms">300</integer>
|
|
<integer name="mtrl_btn_anim_delay_ms">100</integer>
|
|
<integer name="mtrl_btn_anim_duration_ms">100</integer>
|
|
<integer name="mtrl_calendar_header_orientation">1</integer>
|
|
<integer name="mtrl_calendar_selection_text_lines">1</integer>
|
|
<integer name="mtrl_calendar_year_selector_span">3</integer>
|
|
<integer name="mtrl_card_anim_delay_ms">75</integer>
|
|
<integer name="mtrl_card_anim_duration_ms">120</integer>
|
|
<integer name="mtrl_chip_anim_duration">100</integer>
|
|
<integer name="mtrl_tab_indicator_anim_duration_ms">250</integer>
|
|
<integer name="mtrl_view_invisible">1</integer>
|
|
<integer name="show_password_duration">200</integer>
|
|
<integer name="status_bar_notification_info_maxnum">999</integer>
|
|
</resources>
|