ffupdater
ffupdater copied to clipboard
Crash when installing FF Nightly with root
Important first questions
- Is your FFUpdater up-to-date? If not, please abort and update FFUpdater.
Yes.
- Do you spot similar issues in https://github.com/Tobi823/ffupdater/issues? If yes, please abort and add your error message as a comment to the existing issue.
No.
Describe the bug When installing the latest version of FF Nightly (As of writing, 06/23/2025) using the root installer method, the app crashes with the report found below. I suspect it's because of the B64(?) in the file name, but can't say for sure, especially since session installation works. Other apps using root also work.
To Reproduce Please insert the steps to reproduce the behavior here:
- Get a rooted device
- I'm using Magisk but I don't believe this would affect it.
- Set the installation method to "Root Installer" in FFUpdater settings
- Install/update nightly
Expected behavior For the app to install/update without issue.
Error message from FFUpdater Please copy and paste the error message with the stacktrace and error log here: Stacktrace:
java.lang.IllegalArgumentException: Invalid file prefix: FIREFOX_NIGHTLY_MTQyLjBhMSAyMDI1MDYyMw==
.apk
at de.marmaro.krt.ffupdater.installer.impl.RootInstaller.fileIsSafeOrThrow(RootInstaller.kt:52)
at de.marmaro.krt.ffupdater.installer.impl.RootInstaller.installApkFile(RootInstaller.kt:30)
at de.marmaro.krt.ffupdater.installer.impl.RootInstaller.access$installApkFile(RootInstaller.kt:19)
at de.marmaro.krt.ffupdater.installer.impl.RootInstaller$startInstallation$2.invokeSuspend(RootInstaller.kt:24)
at de.marmaro.krt.ffupdater.installer.impl.RootInstaller$startInstallation$2.invoke(RootInstaller.kt:0)
at de.marmaro.krt.ffupdater.installer.impl.RootInstaller$startInstallation$2.invoke(RootInstaller.kt:0)
at de.marmaro.krt.ffupdater.installer.impl.CertificateVerifier.verifyCertificateBeforeAndAfterInstallation(CertificateVerifier.kt:17)
at de.marmaro.krt.ffupdater.installer.impl.CertificateVerifier$verifyCertificateBeforeAndAfterInstallation$1.invokeSuspend(CertificateVerifier.kt:0)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at android.os.Handler.handleCallback(Handler.java:991)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8934)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@f5ce0c, Dispatchers.Main]
Logs:
java.lang.IllegalArgumentException: Invalid file prefix: FIREFOX_NIGHTLY_MTQyLjBhMSAyMDI1MDYyMw==
.apk
at de.marmaro.krt.ffupdater.installer.impl.RootInstaller.fileIsSafeOrThrow(RootInstaller.kt:52)
at de.marmaro.krt.ffupdater.installer.impl.RootInstaller.installApkFile(RootInstaller.kt:30)
at de.marmaro.krt.ffupdater.installer.impl.RootInstaller.access$installApkFile(RootInstaller.kt:19)
at de.marmaro.krt.ffupdater.installer.impl.RootInstaller$startInstallation$2.invokeSuspend(RootInstaller.kt:24)
at de.marmaro.krt.ffupdater.installer.impl.RootInstaller$startInstallation$2.invoke(RootInstaller.kt:0)
at de.marmaro.krt.ffupdater.installer.impl.RootInstaller$startInstallation$2.invoke(RootInstaller.kt:0)
at de.marmaro.krt.ffupdater.installer.impl.CertificateVerifier.verifyCertificateBeforeAndAfterInstallation(CertificateVerifier.kt:17)
at de.marmaro.krt.ffupdater.installer.impl.CertificateVerifier$verifyCertificateBeforeAndAfterInstallation$1.invokeSuspend(CertificateVerifier.kt:0)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at android.os.Handler.handleCallback(Handler.java:991)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8934)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@f5ce0c, Dispatchers.Main]
Device information:
| Key | Value |
|---|---|
| FFUpdater version | 81.0.0 (179) release F-Droid/other |
| Device | Pixel 7 Pro (cheetah, cheetah, cheetah) |
| Manufacturer | google (Google) |
| Supported ABIs | arm64-v8a |
| Android version | 15 (SDK: 35) |
| OS | r-b420135cd668c625-cgw9, android-build, release-keys, 1743030759000 |