Tobi823 / ffupdater

FFUpdater: Updater for privacy friendly browser
https://f-droid.org/en/packages/de.marmaro.krt.ffupdater
GNU General Public License v3.0
655 stars 32 forks source link

Crash when using root installer in latest build #345

Closed Sanaki closed 1 year ago

Sanaki commented 1 year ago

Stacktrace:

java.lang.IllegalArgumentException: Failed requirement.
    at de.marmaro.krt.ffupdater.installer.impl.RootInstaller.executeInstallerSpecificLogic(Unknown Source:262)
    at de.marmaro.krt.ffupdater.installer.impl.AbstractAppInstaller.install2Internal(Unknown Source:172)
    at de.marmaro.krt.ffupdater.installer.impl.AbstractAppInstaller.access$install2Internal(Unknown Source:0)
    at de.marmaro.krt.ffupdater.installer.impl.AbstractAppInstaller$startInstallation$2.invokeSuspend(Unknown Source:32)
    at w3.a.resumeWith(Unknown Source:8)
    at i4.l0.run(Unknown Source:102)
    at kotlinx.coroutines.internal.e.run(Unknown Source:11)
    at kotlinx.coroutines.scheduling.j.run(Unknown Source:2)
    at kotlinx.coroutines.scheduling.a$a.run(SourceFile:79)
    Suppressed: i4.j0: [p1{Cancelling}@fde9fc5, Dispatchers.Main]
Timestamp: 2023-02-16T11:20:13.392
Device information: Key Value
FFUpdater version 77.7.5 (131) release
Device Phone 2 (cheryl2, aura, cheryl2)
Manufacturer razer (Razer)
Supported ABIs arm64-v8a, armeabi-v7a, armeabi
Android version 9 (SDK: 28)
OS ip-172-31-38-3, ubuntu, release-keys, 1612443739000
marcel1337x commented 1 year ago

I had the same problem.

Did you, by any chance, also have Aurora Store installed and also updated Firefox Nightly through Aurora, AFTER installing it from ffupdater?

I made that mistake and fixed that by downloading the latest FF Nightly build from github, then using adb to "downgrade" the play store FF Nightly Version to the Github Version. Also add Firefox Nightly and all other Apps you don't have installed through Aurora to the Aurora Ignorelist in the Updates tab of Aurora.

adb push .\FFNightly.apk /data/local/tmp/
adb shell
pm install -d /data/local/tmp/FFNightly.apk
Sanaki commented 1 year ago

I did not. I usually go through F-Droid for FFUpdater, but switched to the GitHub release in the hopes it would fix the issue. It sadly did not do so.

Tobi823 commented 1 year ago

java.lang.IllegalArgumentException: Failed requirement. at de.marmaro.krt.ffupdater.installer.impl.RootInstaller.executeInstallerSpecificLogic(Unknown Source:262) at de.marmaro.krt.ffupdater.installer.impl.AbstractAppInstaller.install2Internal(Unknown Source:172) at de.marmaro.krt.ffupdater.installer.impl.AbstractAppInstaller.access$install2Internal(Unknown Source:0) at de.marmaro.krt.ffupdater.installer.impl.AbstractAppInstaller$startInstallation$2.invokeSuspend(Unknown Source:32) at w3.a.resumeWith(Unknown Source:8) at i4.l0.run(Unknown Source:102) at kotlinx.coroutines.internal.e.run(Unknown Source:11) at kotlinx.coroutines.scheduling.j.run(Unknown Source:2) at kotlinx.coroutines.scheduling.a$a.run(SourceFile:79) Suppressed: i4.j0: [p1{Cancelling}@fde9fc5, Dispatchers.Main] Timestamp: 2023-02-16T11:20:13.392

This bug should be fixed in 77.7.6

Sanaki commented 1 year ago

Still fails, but without a crash. It now claims it lacks root permission, despite having it.

Stacktrace:

java.lang.RuntimeException: Failed to install FIREFOX_KLAR in the foreground.
    at de.marmaro.krt.ffupdater.DownloadActivity.installApp(DownloadActivity.kt:405)
    at de.marmaro.krt.ffupdater.DownloadActivity.access$installApp(DownloadActivity.kt:58)
    at de.marmaro.krt.ffupdater.DownloadActivity$installApp$1.invokeSuspend(DownloadActivity.kt:0)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6735)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: de.marmaro.krt.ffupdater.installer.exceptions.InstallationFailedException: Missing root permission
    at de.marmaro.krt.ffupdater.installer.impl.RootInstaller.failIfRootPermissionIsMissing(RootInstaller.kt:46)
    at de.marmaro.krt.ffupdater.installer.impl.RootInstaller.executeInstallerSpecificLogic(RootInstaller.kt:21)
    at de.marmaro.krt.ffupdater.installer.impl.AbstractAppInstaller.install2Internal(AbstractAppInstaller.kt:43)
    at de.marmaro.krt.ffupdater.installer.impl.AbstractAppInstaller.access$install2Internal(AbstractAppInstaller.kt:15)
    at de.marmaro.krt.ffupdater.installer.impl.AbstractAppInstaller$startInstallation$2.invokeSuspend(AbstractAppInstaller.kt:21)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
    at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
Device information: Key Value
FFUpdater version 77.7.6 (132) release
Device Phone 2 (cheryl2, aura, cheryl2)
Manufacturer razer (Razer)
Supported ABIs arm64-v8a, armeabi-v7a, armeabi
Android version 9 (SDK: 28)
OS ip-172-31-38-3, ubuntu, release-keys, 1612443739000
Tobi823 commented 1 year ago

Strange - I had the same problem on my Nexus 7 2013 but it went away after waiting multiple minutes and restarting FFupdater multiple times.

I thought that I didn't use Magisk correctly.

Can you try it again and install an update with the root installer? Does it work now?

Sanaki commented 1 year ago

Interesting. Sure enough, it's suddenly working now.

Tobi823 commented 1 year ago

I have an idea - I try upgrading the library which handles the root commands

Tobi823 commented 1 year ago

Interesting - I have to call Shell.getShell().waitAndClose() twice before FFUpdater can use root commands

Tobi823 commented 1 year ago

Should be fixed in the next version