ReVanced / revanced-manager

💊 Application to use ReVanced on Android
https://revanced.app
GNU General Public License v3.0
17.38k stars 726 forks source link

ReVanced Manager thinks the installed apk is full when it is split #882

Closed SodaWithoutSparkles closed 6 months ago

SodaWithoutSparkles commented 1 year ago

Type

Error while running the manager

Bug description

With https://github.com/revanced/revanced-manager/commit/8fc86dbe021b9497fa336b937b3200a41b3057a3, users can select app from installed location rather than from storage. The problem is that the installed app is NOT a full apk, and manager fails to patch

Steps to reproduce

  1. Install manager version 1.2.0
  2. Patch Youtube APK from storage, select recommended patches
  3. Patch went smoothly
  4. Reset installed YouTube to factory version
  5. Notice that even when version is not supported, the default patch from last time is still selected. That is another issue.
  6. Click patch
  7. Some patch might fail, which is expected
  8. Custom branding patch failed with unable to locate resources, which is a common symptom of patching splits

Android version

13

Manager version

1.2.0

Target package name

com.android.google.youtube

Target package version.

Full apk: 18.16.37 Insalled split apk: 17.32.38 (factory defualt)

Installation type

Non-root

Patches selected.

All defaults But only premium heading/resources patch should be needed to show the issue

Device logs (exported using Manager settings).

https://pastebin.com/W7k5iXbd

Installer logs (exported using Installer menu option) [unneeded if issue is not during patching].

Initializing installer
Creating working directory
Copying original apk
Unpacking input apk
Reading dex files
Decoding AndroidManifest.xml only, because resources are not needed
Merging integrations
Deleting existing resource cache directory
Decoding resources
Applied always-autorepeat
Failed to apply client-spoof: 'client-spoof' depends on 'spoof-signature-verification' but the following error was raised: 'spoof-signature-verification' depends on 'settings' but the following error was raised: Failed to resolve ThemeSetterAppFingerprint
Failed to apply comments: 'comments' depends on 'comments-resource-patch' but the following error was raised: 'comments-resource-patch' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply copy-video-url: 'copy-video-url' depends on 'copy-video-url-resource' but the following error was raised: 'copy-video-url-resource' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Applied custom-branding
Applied custom-video-speed
Failed to apply disable-auto-captions: 'disable-auto-captions' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply disable-fullscreen-panels: 'disable-fullscreen-panels' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply disable-player-popup-panels: 'disable-player-popup-panels' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply disable-shorts-on-startup: 'disable-shorts-on-startup' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply disable-zoom-haptics: 'disable-zoom-haptics' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply downloads: 'downloads' depends on 'downloads-resource-patch' but the following error was raised: 'downloads-resource-patch' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply enable-debugging: 'enable-debugging' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply general-ads: 'general-ads' depends on 'GeneralAdsResourcePatch' but the following error was raised: 'GeneralAdsResourcePatch' depends on 'LithoFilterPatch' but the following error was raised: Failed to resolve ComponentContextParserFingerprint
Failed to apply hdr-auto-brightness: 'hdr-auto-brightness' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-album-cards: 'hide-album-cards' depends on 'hide-album-cards-resource-patch' but the following error was raised: 'hide-album-cards-resource-patch' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-artist-card: 'hide-artist-card' depends on 'LithoFilterPatch' but the following error was raised: 'LithoFilterPatch' did not succeed previously
Failed to apply hide-autoplay-button: 'hide-autoplay-button' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-breaking-news-shelf: 'hide-breaking-news-shelf' depends on 'breaking-news-shelf-resource-patch' but the following error was raised: 'breaking-news-shelf-resource-patch' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-captions-button: 'hide-captions-button' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-cast-button: 'hide-cast-button' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-crowdfunding-box: 'hide-crowdfunding-box' depends on 'crowdfunding-box-resource-patch' but the following error was raised: 'crowdfunding-box-resource-patch' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-email-address: 'hide-email-address' depends on 'hide-email-address-resource-patch' but the following error was raised: 'hide-email-address-resource-patch' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-endscreen-cards: 'hide-endscreen-cards' depends on 'hide-endscreen-cards-resource-patch' but the following error was raised: 'hide-endscreen-cards-resource-patch' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-floating-microphone-button: 'hide-floating-microphone-button' depends on 'HideFloatingMicrophoneButtonResourcePatch' but the following error was raised: 'HideFloatingMicrophoneButtonResourcePatch' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-get-premium: 'hide-get-premium' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-info-cards: 'hide-info-cards' depends on 'HideInfocardsResourcePatch' but the following error was raised: 'HideInfocardsResourcePatch' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-player-buttons: 'hide-player-buttons' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-seekbar: 'hide-seekbar' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-timestamp: 'hide-timestamp' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-video-action-buttons: 'hide-video-action-buttons' depends on 'LithoFilterPatch' but the following error was raised: 'LithoFilterPatch' did not succeed previously
Failed to apply hide-watch-in-vr: 'hide-watch-in-vr' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply hide-watermark: 'hide-watermark' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply minimized-playback: 'minimized-playback' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply navigation-buttons: 'navigation-buttons' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply old-quality-layout: 'old-quality-layout' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Applied open-links-externally
Failed to apply premium-heading: The file /data/user/0/app.revanced.manager.flutter/cache/patcher/tmp-QZEUND/cache/res/drawable-xxxhdpi/yt_premium_wordmark_header_light.png does not exist in the resources. Therefore, this patch can not succeed.
Failed to apply remember-playback-speed: 'remember-playback-speed' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply remember-video-quality: 'remember-video-quality' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Applied remove-player-button-background
Failed to apply return-youtube-dislike: 'return-youtube-dislike' depends on 'return-youtube-dislike-resource-patch' but the following error was raised: 'return-youtube-dislike-resource-patch' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply seekbar-tapping: 'seekbar-tapping' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply sponsorblock: 'sponsorblock' depends on 'sponsorblock-resource-patch' but the following error was raised: 'sponsorblock-resource-patch' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply spoof-app-version: 'spoof-app-version' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply swipe-controls: 'swipe-controls' depends on 'swipe-controls-resource-patch' but the following error was raised: 'swipe-controls-resource-patch' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply tablet-mini-player: 'tablet-mini-player' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply theme: 'theme' depends on 'ThemeResourcePatch' but the following error was raised: 'ThemeResourcePatch' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply vanced-microg-support: 'vanced-microg-support' depends on 'hide-cast-button' but the following error was raised: 'hide-cast-button' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply video-ads: 'video-ads' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Failed to apply wide-searchbar: 'wide-searchbar' depends on 'settings' but the following error was raised: 'settings' did not succeed previously
Repacking patched apk
Compiling resources
Writing modified dex files
Finished!

Screenshots or videos

No response

Solution

Remove the functionality to select apk from installed apps until arsclib branch merged for proper support of splits

Additional context

No response

Acknowledgements

oSumAtrIX commented 6 months ago

This issue should be outdated. Root users can select splits, because mounting is an option. In case of selecting a split though, the user should only be able to mount, which can be a separate feature.