-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
bug: Install button does not appear on Android 8 (API 26)Β #3201
Description
Bug description
The patching process completes successfully, but the ReVanced Manager does not show an install button after building the APK.
This issue occurs on Android 8 (API 26) and affects multiple apps such as YouTube and Twitch. (Youtube Music worked for some reason though.)
The patched APK is successfully created and saved to:
/data/user/0/app.revanced.manager.flutter/app_ephemeral/patcher/result.apk
However, the Manager does not proceed with installation or provide any way to install the APK.
Using the manager:
- Patching completes without errors
- APK is aligned and signed
- No install prompt appears
Using the CLI instead (same patches and APK) works perfectly:
- APK is created
- APK installs successfully when opened manually
This suggests the issue is related to the Manager v2 installation method on Android 8 rather than patching itself.
Patch logs
App: tv.twitch.android.app (Selected: 16.9.1, Suggested: 16.9.1)
Source: ReVanced Patches
Added: Disable Sentry telemetry, Prevent screenshot detection, Remove screen capture restriction, Remove screenshot restriction, Spoof Play Age Signals
Manager version: 2.5.1
Manager auto-update: true
Allow changing patch selection: true
Show universal patches: false
Memory limit: 384MB (large: 512MB)
Root permissions: No
RAM: 1.31 GB / 3.97 GB available
Storage: 33.26 GB / 55.29 GB available
Android version: 8.0.0 (API 26)
Supported architectures: arm64-v8a, armeabi-v7a, armeabi
Model: RNE-L01
Deleting existing temporary files directory
Decoding manifest
Loading resource table from file: /data/user/0/app.revanced.manager.flutter/cache/framework/1.apk
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f150332
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=label, value=0x7f1400d8
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=icon, value=0x7f110000
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=networkSecurityConfig, value=0x7f170001
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=resource, value=0x7f1400ec
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f15032d
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f150332
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=label, value=0x7f1400d8
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=resource, value=0x7f170002
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f150331
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f150324
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=label, value=0x7f1400d8
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f150324
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f150324
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f150324
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=label, value=0x7f140df8
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f1502c9
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f1502d1
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f150324
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f150324
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=enabled, value=0x7f050003
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=enabled, value=0x7f050005
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=enabled, value=0x7f050004
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=enabled, value=0x7f050003
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=value, value=0x7f0c0049
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f150320
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f1503aa
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=configChanges, value=0x7f0c000a
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=configChanges, value=0x7f0c000a
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=configChanges, value=0x7f0c000a
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=configChanges, value=0x7f0c000a
Warning: Could not decode attr value, using undecoded value instead: ns=android, name=resource, value=0x7f170004
Applying patches...
Decoding resources
Loading resource table...
Decoding file-resources...
Loading resource table from file: /data/user/0/app.revanced.manager.flutter/cache/framework/1.apk
Decoding values */* XMLs...
Decoding AndroidManifest.xml with resources...
Regular manifest package...
Warming up the cache
Applying patches
Writing patched files...
Compiling patched dex files
Compiled classes.dex
Compiled classes2.dex
Compiled classes3.dex
Compiled classes4.dex
Compiled classes5.dex
Compiled classes6.dex
Compiled classes7.dex
Compiled classes8.dex
Compiled classes9.dex
Compiled classes10.dex
Compiled classes11.dex
Compiled classes12.dex
Compiled classes13.dex
Compiled classes14.dex
Compiling patched resources
Aligning APK
Patched apk saved to /data/user/0/app.revanced.manager.flutter/app_ephemeral/patcher/result.apkDebug logs
--------- beginning of system
03-24 17:11:51.278 9500 9500 W ViewRootImpl[Toast]: EGLdebug relayoutWindow Surface isSurface(name=null) (appName =app.revanced.manager.flutter) ( mSurfaceControllerIsValid =false) (mNativeObject =0)/@0xbfec4a,viewVisibility is0
03-24 17:11:51.291 9500 9500 W ViewRootImpl[Toast]: EGLdebug relayoutWindow Surface isSurface(name=null) (appName =app.revanced.manager.flutter) ( mSurfaceControllerIsValid =true) (mNativeObject =74d833a000)/@0xbfec4a,relayoutResult is7
03-24 17:13:05.644 9500 9500 W ViewRootImpl[Toast]: EGLdebug relayoutWindow Surface isSurface(name=null) (appName =app.revanced.manager.flutter) ( mSurfaceControllerIsValid =false) (mNativeObject =0)/@0x59e8cc3,viewVisibility is0
03-24 17:13:05.660 9500 9500 W ViewRootImpl[Toast]: EGLdebug relayoutWindow Surface isSurface(name=null) (appName =app.revanced.manager.flutter) ( mSurfaceControllerIsValid =true) (mNativeObject =74dabfd000)/@0x59e8cc3,relayoutResult is7
03-24 17:20:19.050 12857 12857 D ActivityThread: ActivityThread,attachApplication
03-24 17:20:19.599 12857 12857 V ActivityThread: ActivityThread,callActivityOnCreate
03-24 17:20:19.765 12857 12857 D ActivityThread: add activity client record, r= ActivityRecord{eed668c token=android.os.BinderProxy@2bb1309 {app.revanced.manager.flutter/app.revanced.manager.MainActivity}} token= android.os.BinderProxy@2bb1309
--------- beginning of main
03-24 17:33:31.267 12857 12919 I zygote64: Deoptimizing boolean kotlinx.coroutines.JobSupport.tryFinalizeSimpleState(kotlinx.coroutines.Incomplete, java.lang.Object) due to JIT inline cache
03-24 17:33:31.283 12857 12857 I zygote64: Deoptimizing void androidx.compose.runtime.internal.AwaiterQueue.flushAndDispatchAwaiters(kotlin.jvm.functions.Function1) due to JIT inline cache
03-24 17:33:31.284 12857 12919 I zygote64: Deoptimizing void kotlinx.coroutines.AbstractCoroutine.afterResume(java.lang.Object) due to JIT inline cache
03-24 17:33:31.293 12857 12894 D mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, egl_color_buffer_format *, EGLBoolean) returns 0x3000
03-24 17:33:31.370 12857 12857 W InputMethodManager: startInputReason = 1
03-24 17:33:32.671 12857 12857 I zygote64: Deoptimizing androidx.compose.runtime.InvalidationResult androidx.compose.runtime.CompositionImpl.invalidateChecked(androidx.compose.runtime.RecomposeScopeImpl, androidx.compose.runtime.Anchor, java.lang.Object) due to JIT inline cache
03-24 17:33:32.701 12857 12857 I zygote64: Deoptimizing java.lang.Object androidx.compose.animation.core.MutatorMutex$mutate$2.invokeSuspend(java.lang.Object) due to JIT inline cache
03-24 17:33:32.747 12857 12857 I zygote64: Deoptimizing void kotlinx.coroutines.JobKt.ensureActive(kotlinx.coroutines.Job) due to JIT inline cache
03-24 17:33:32.747 12857 12857 I zygote64: Deoptimizing void kotlinx.coroutines.JobKt__JobKt.ensureActive(kotlinx.coroutines.Job) due to JIT inline cache
03-24 17:33:32.747 12857 12857 I zygote64: Deoptimizing void kotlinx.coroutines.JobSupport.completeStateFinalization(kotlinx.coroutines.Incomplete, java.lang.Object) due to JIT inline cache
03-24 17:33:32.791 12857 12857 I zygote64: Deoptimizing java.util.Map androidx.compose.runtime.snapshots.SnapshotKt.optimisticMerges(long, androidx.compose.runtime.snapshots.MutableSnapshot, androidx.compose.runtime.snapshots.SnapshotIdSet) due to JIT inline cache
03-24 17:33:32.791 12857 12857 I zygote64: Deoptimizing androidx.compose.runtime.snapshots.SnapshotApplyResult androidx.compose.runtime.snapshots.MutableSnapshot.innerApplyLocked$runtime(long, androidx.collection.MutableScatterSet, java.util.Map, androidx.compose.runtime.snapshots.SnapshotIdSet) due to JIT inline cache
03-24 17:33:32.835 12857 12857 I zygote64: Deoptimizing void androidx.compose.runtime.snapshots.Snapshot$Companion.notifyObjectsInitialized() due to JIT inline cache
03-24 17:33:32.875 12857 12857 I zygote64: Deoptimizing void androidx.compose.animation.core.TargetBasedAnimation.(androidx.compose.animation.core.VectorizedAnimationSpec, androidx.compose.animation.core.TwoWayConverter, java.lang.Object, java.lang.Object, androidx.compose.animation.core.AnimationVector) due to JIT inline cache
03-24 17:33:32.875 12857 12857 I zygote64: Deoptimizing androidx.compose.animation.core.AnimationVector androidx.compose.animation.core.AnimationVectorsKt.copy(androidx.compose.animation.core.AnimationVector) due to JIT inline cache
03-24 17:33:33.016 12857 12857 I zygote64: Deoptimizing void androidx.compose.ui.node.LookaheadCapablePlaceable.captureRulersIfNeeded$ui(androidx.compose.ui.layout.MeasureResult) due to JIT inline cache
03-24 17:33:33.057 12857 12857 I zygote64: Deoptimizing androidx.compose.animation.core.AnimationVector androidx.compose.animation.core.VectorizedFloatAnimationSpec.getValueFromNanos(long, androidx.compose.animation.core.AnimationVector, androidx.compose.animation.core.AnimationVector, androidx.compose.animation.core.AnimationVector) due to JIT inline cache
03-24 17:33:33.057 12857 12857 I zygote64: Deoptimizing androidx.compose.animation.core.AnimationVector androidx.compose.animation.core.VectorizedFloatAnimationSpec.getVelocityFromNanos(long, androidx.compose.animation.core.AnimationVector, androidx.compose.animation.core.AnimationVector, androidx.compose.animation.core.AnimationVector) due to JIT inline cache
03-24 17:33:33.088 12857 12857 I zygote64: Deoptimizing java.lang.Object androidx.compose.animation.core.Transition.getCurrentState() due to JIT inline cache
03-24 17:33:33.137 12857 12857 I zygote64: Deoptimizing androidx.compose.runtime.snapshots.StateRecord androidx.compose.runtime.snapshots.SnapshotKt.writableRecord(androidx.compose.runtime.snapshots.StateRecord, androidx.compose.runtime.snapshots.StateObject, androidx.compose.runtime.snapshots.Snapshot) due to JIT inline cache
03-24 17:33:34.385 12857 12857 I zygote64: Deoptimizing boolean androidx.collection.ScatterMap.contains(java.lang.Object) due to JIT inline cache
03-24 17:33:34.394 12857 12857 I zygote64: Deoptimizing int androidx.compose.foundation.shape.RoundedCornerShape.hashCode() due to JIT inline cache
03-24 17:33:34.431 12857 12857 I zygote64: Deoptimizing void androidx.compose.animation.core.AnimationState.(androidx.compose.animation.core.TwoWayConverter, java.lang.Object, androidx.compose.animation.core.AnimationVector, long, long, boolean) due to JIT inline cache
03-24 17:33:34.446 12857 12857 I zygote64: Deoptimizing androidx.compose.ui.layout.MeasureResult androidx.compose.foundation.layout.RowColumnMeasurePolicyKt.measure(androidx.compose.foundation.layout.RowColumnMeasurePolicy, int, int, int, int, int, androidx.compose.ui.layout.MeasureScope, java.util.List, androidx.compose.ui.layout.Placeable[], int, int, int[], int) due to JIT inline cache
03-24 17:33:34.580 12857 12857 I zygote64: Deoptimizing void androidx.compose.runtime.GapComposer.forceFreshInsertTable() due to JIT inline cache
03-24 17:33:34.591 12857 12857 I zygote64: Deoptimizing java.lang.Object androidx.compose.runtime.DerivedSnapshotState.getValue() due to JIT inline cache
03-24 17:33:34.591 12857 12857 I zygote64: Deoptimizing java.lang.Object androidx.compose.runtime.snapshots.SnapshotKt$$ExternalSyntheticLambda0.invoke(java.lang.Object) due to JIT inline cache
03-24 17:33:34.599 12857 12857 I zygote64: Deoptimizing void com.gigamole.composescrollbars.ScrollbarsState.HandleKnobFraction(androidx.compose.runtime.Composer, int) due to JIT inline cache
03-24 17:33:34.623 12857 12857 I zygote64: Deoptimizing void androidx.compose.ui.spatial.RectManager.insertOrUpdateTransformedNode(androidx.compose.ui.node.LayoutNode) due to JIT inline cache
03-24 17:33:34.638 12857 12857 I zygote64: Deoptimizing void androidx.compose.runtime.SnapshotMutableFloatStateImpl.setFloatValue(float) due to JIT same target
03-24 17:33:34.653 12857 12857 I zygote64: Deoptimizing java.lang.Object androidx.compose.animation.core.MutatorMutex$mutate$2.invokeSuspend(java.lang.Object) due to JIT inline cache
03-24 17:33:35.071 12857 12857 I zygote64: Deoptimizing java.lang.Object androidx.compose.animation.core.TargetBasedAnimation.getValueFromNanos(long) due to JIT inline cache
03-24 17:33:35.132 12857 12857 I zygote64: Deoptimizing void androidx.compose.animation.core.SuspendAnimationKt.doAnimationFrame(androidx.compose.animation.core.AnimationScope, long, long, androidx.compose.animation.core.Animation, androidx.compose.animation.core.AnimationState, kotlin.jvm.functions.Function1) due to JIT inline cache
03-24 17:33:35.399 12857 12857 I zygote64: Deoptimizing void androidx.compose.runtime.composer.gapbuffer.SlotWriter.forAllDataInRememberOrder(int, kotlin.jvm.functions.Function2) due to JIT inline cache
03-24 17:33:35.400 12857 12863 I zygote64: Do full code cache collection, code=2026KB, data=1309KB
03-24 17:33:35.404 12857 12863 I zygote64: After code cache collection, code=1881KB, data=1133KB
03-24 17:33:36.755 12857 12857 I zygote64: Deoptimizing void kotlin.sequences.GeneratorSequence$iterator$1.calcNext() due to JIT inline cache
03-24 17:33:36.886 12857 12863 I zygote64: Do partial code cache collection, code=1901KB, data=1182KB
03-24 17:33:36.887 12857 12863 I zygote64: After code cache collection, code=1900KB, data=1182KB
03-24 17:33:36.887 12857 12863 I zygote64: Increasing code cache capacity to 5MB
03-24 17:33:37.026 12857 12868 I zygote64: Background concurrent copying GC freed 72929(2MB) AllocSpace objects, 2(48KB) LOS objects, 49% free, 13MB/26MB, paused 1.566ms total 179.714ms
03-24 17:33:37.056 12857 12857 I zygote64: Deoptimizing boolean androidx.compose.runtime.snapshots.SnapshotStateList.add(java.lang.Object) due to JIT inline cache
03-24 17:33:38.752 12857 12894 W libEGL : EGLNativeWindowType 0x74f8a58010 disconnect failed
03-24 17:35:02.753 12857 12880 I zygote64: Deoptimizing void kotlinx.coroutines.AbstractCoroutine.onCompletionInternal(java.lang.Object) due to JIT same target
03-24 17:35:02.768 12857 12894 D mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, egl_color_buffer_format *, EGLBoolean) returns 0x3000
03-24 17:35:02.797 12857 12857 W InputMethodManager: startInputReason = 1
03-24 17:35:03.464 12857 12857 I zygote64: Deoptimizing java.lang.Object androidx.compose.animation.core.MutatorMutex$mutate$2.invokeSuspend(java.lang.Object) due to JIT inline cache
03-24 17:35:03.507 12857 12857 I zygote64: Deoptimizing int androidx.compose.foundation.shape.RoundedCornerShape.hashCode() due to JIT inline cache
03-24 17:35:03.614 12857 12857 I zygote64: Deoptimizing void androidx.compose.animation.AnimatedVisibilityKt.AnimatedEnterExitImpl(androidx.compose.animation.core.Transition, kotlin.jvm.functions.Function1, androidx.compose.ui.Modifier, androidx.compose.animation.EnterTransition, androidx.compose.animation.ExitTransition, kotlin.jvm.functions.Function2, androidx.compose.animation.OnLookaheadMeasured, kotlin.jvm.functions.Function3, androidx.compose.runtime.Composer, int, int) due to JIT inline cache
03-24 17:35:03.624 12857 12857 I zygote64: Deoptimizing java.util.List kotlin.sequences.SequencesKt___SequencesKt.toList(kotlin.sequences.Sequence) due to JIT inline cache
03-24 17:35:03.777 12857 12857 I zygote64: Deoptimizing java.lang.Object androidx.compose.runtime.snapshots.SnapshotKt$$ExternalSyntheticLambda0.invoke(java.lang.Object) due to JIT inline cache
03-24 17:35:03.777 12857 12857 I zygote64: Deoptimizing kotlin.Unit androidx.compose.runtime.snapshots.SnapshotKt.mergedReadObserver$lambda$0(kotlin.jvm.functions.Function1, kotlin.jvm.functions.Function1, java.lang.Object) due to JIT inline cache
03-24 17:35:04.863 12857 12863 I zygote64: Compiler allocated 5MB to compile void com.gigamole.composescrollbars.ScrollbarsState.handleTargetKnobFraction$ComposeScrollbars_release(androidx.compose.ui.graphics.drawscope.DrawScope)
03-24 17:35:06.167 12857 12894 W libEGL : EGLNativeWindowType 0x74f8a58010 disconnect failed
03-24 17:35:06.167 12857 12894 D OpenGLRenderer: endAllActiveAnimators on 0x74eab07c00 (UnprojectedRipple) with handle 0x74eaa90780
03-24 17:35:10.483 12857 15217 I zygote64: Deoptimizing void kotlinx.coroutines.AbstractCoroutine.afterResume(java.lang.Object) due to JIT inline cache
03-24 17:35:10.483 12857 12894 D mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, egl_color_buffer_format *, EGLBoolean) returns 0x3000
03-24 17:35:10.525 12857 12857 W InputMethodManager: startInputReason = 1
Acknowledgements
- I have checked all open and closed bug reports and this is not a duplicate.
- I have chosen an appropriate title.
- All requested information has been provided properly.
- The bug is only related to ReVanced Manager.
