tobi823 / ffupdater Goto Github PK
View Code? Open in Web Editor NEWFFUpdater: Updater for privacy friendly browser
Home Page: https://f-droid.org/en/packages/de.marmaro.krt.ffupdater
License: GNU General Public License v3.0
FFUpdater: Updater for privacy friendly browser
Home Page: https://f-droid.org/en/packages/de.marmaro.krt.ffupdater
License: GNU General Public License v3.0
de.marmaro.krt.ffupdater.InstallActivity$InstallActivityFetchException: fail to fetch BROMITE
at de.marmaro.krt.ffupdater.InstallActivity$State$5.invokeSuspend(InstallActivity.kt:227)
at de.marmaro.krt.ffupdater.InstallActivity$State$5.invoke(Unknown Source:10)
at de.marmaro.krt.ffupdater.InstallActivity$restartStateMachine$1$1.invokeSuspend(InstallActivity.kt:137)
at de.marmaro.krt.ffupdater.InstallActivity$restartStateMachine$1$1.invoke(Unknown Source:10)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturnIgnoreTimeout(Undispatched.kt:102)
at kotlinx.coroutines.TimeoutKt.setupTimeout(Timeout.kt:148)
at kotlinx.coroutines.TimeoutKt.withTimeout(Timeout.kt:44)
at de.marmaro.krt.ffupdater.InstallActivity$restartStateMachine$1.invokeSuspend(InstallActivity.kt:133)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
Caused by: de.marmaro.krt.ffupdater.app.impl.fetch.ApiConsumer$ApiConsumerRetryIOException: Fail to consume API. Previous exceptions: [java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.; java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.; java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.; java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.; java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.]. Last exception:
at de.marmaro.krt.ffupdater.app.impl.fetch.ApiConsumer.consumeWithNetworkRetries(ApiConsumer.kt:54)
at de.marmaro.krt.ffupdater.app.impl.fetch.ApiConsumer$consumeWithNetworkRetries$1.invokeSuspend(Unknown Source:12)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:231)
at com.android.okhttp.internal.io.RealConnection.connectTls(RealConnection.java:196)
at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:153)
at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:116)
at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:186)
at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128)
at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:248)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:211)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:30)
at de.marmaro.krt.ffupdater.app.impl.fetch.ApiConsumer.consume(ApiConsumer.kt:62)
at de.marmaro.krt.ffupdater.app.impl.fetch.ApiConsumer.consumeWithNetworkRetries(ApiConsumer.kt:46)
... 7 more
Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:658)
at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:507)
at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:426)
at com.android.org.conscrypt.TrustManagerImpl.getTrustedChainForServer(TrustManagerImpl.java:354)
at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:94)
at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:89)
at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:224)
at com.android.org.conscrypt.ConscryptFileDescriptorSocket.verifyCertificateChain(ConscryptFileDescriptorSocket.java:407)
at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
at com.android.org.conscrypt.NativeSsl.doHandshake(NativeSsl.java:387)
at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:226)
... 22 more
Caused by: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
... 33 more
Could you please add self-signed certificate support?
Could we get an option to let the app automatically download updates?
So when I click the notification it just has to install the app and I don't have to wait for it to be downloaded.
Application crashed with the following stack trace:
android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/de.marmaro.krt.ffupdater/files/Download/download_1614178715571_8575317700450285286.apk exposed beyond app through Intent.getData()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1967)
at android.net.Uri.checkFileUriExposed(Uri.java:2364)
at android.content.Intent.prepareToLeaveProcess(Intent.java:9778)
at android.content.Intent.prepareToLeaveProcess(Intent.java:9732)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1679)
at android.app.Activity.startActivityForResult(Activity.java:4482)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:584)
at android.app.Activity.startActivityForResult(Activity.java:4440)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:570)
at de.marmaro.krt.ffupdater.installer.IntentInstaller.installInternal(IntentInstaller.kt:60)
at de.marmaro.krt.ffupdater.installer.IntentInstaller.install(IntentInstaller.kt:38)
at de.marmaro.krt.ffupdater.InstallActivity$State$10.invokeSuspend(InstallActivity.kt:256)
at de.marmaro.krt.ffupdater.InstallActivity$State$10.invoke(Unknown Source:10)
at de.marmaro.krt.ffupdater.InstallActivity$restartStateMachine$1$1.invokeSuspend(InstallActivity.kt:113)
at de.marmaro.krt.ffupdater.InstallActivity$restartStateMachine$1$1.invoke(Unknown Source:10)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturnIgnoreTimeout(Undispatched.kt:102)
at kotlinx.coroutines.TimeoutKt.setupTimeout(Timeout.kt:148)
at kotlinx.coroutines.TimeoutKt.withTimeout(Timeout.kt:44)
at de.marmaro.krt.ffupdater.InstallActivity$restartStateMachine$1.invokeSuspend(InstallActivity.kt:109)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6797)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:772)
The app has successfully downloads Firefox Klar, verified checksum, but if i pouch the button Install, it attempted an installation and crashes.
It happens both with FF installed (directly from the link) and if I try to install FF with the FFupdater.
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.content.pm.action.CONFIRM_PERMISSIONS pkg=com.android.packageinstaller (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1836)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1556)
at android.app.Activity.startActivityForResult(Activity.java:3787)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:675)
at android.app.Activity.startActivityForResult(Activity.java:3744)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:662)
at android.app.Activity.startActivity(Activity.java:4096)
at android.app.Activity.startActivity(Activity.java:4026)
at de.marmaro.krt.ffupdater.InstallActivity.onNewIntent(InstallActivity.java:324)
at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1234)
at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1246)
at android.app.ActivityThread.deliverNewIntents(ActivityThread.java:2639)
at android.app.ActivityThread.performNewIntents(ActivityThread.java:2651)
at android.app.ActivityThread.handleNewIntent(ActivityThread.java:2660)
at android.app.ActivityThread.access$1600(ActivityThread.java:162)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1518)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5528)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:952)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
After clicking the "install" button.
ffupdater version: 71.0.2
android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/de.marmaro.krt.ffupdater/files/Download/download_1615533914771_123742997906281366.apk exposed beyond app through Intent.getData()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1796)
at android.net.Uri.checkFileUriExposed(Uri.java:2354)
at android.content.Intent.prepareToLeaveProcess(Intent.java:8981)
at android.content.Intent.prepareToLeaveProcess(Intent.java:8942)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1519)
at android.app.Activity.startActivityForResult(Activity.java:4229)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:584)
at android.app.Activity.startActivityForResult(Activity.java:4187)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:570)
at de.marmaro.krt.ffupdater.installer.IntentInstaller.installInternal(IntentInstaller.kt:64)
at de.marmaro.krt.ffupdater.installer.IntentInstaller.install(IntentInstaller.kt:40)
at de.marmaro.krt.ffupdater.InstallActivity$State$10.invokeSuspend(InstallActivity.kt:283)
at de.marmaro.krt.ffupdater.InstallActivity$State$10.invoke(InstallActivity.kt)
at de.marmaro.krt.ffupdater.InstallActivity$restartStateMachine$1$1.invokeSuspend(InstallActivity.kt:136)
at de.marmaro.krt.ffupdater.InstallActivity$restartStateMachine$1$1.invoke(InstallActivity.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturnIgnoreTimeout(Undispatched.kt:102)
at kotlinx.coroutines.TimeoutKt.setupTimeout(Timeout.kt:148)
at kotlinx.coroutines.TimeoutKt.withTimeout(Timeout.kt:44)
at de.marmaro.krt.ffupdater.InstallActivity$restartStateMachine$1.invokeSuspend(InstallActivity.kt:132)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
I just installed the newest version of the app from F-Droid, and then tried upgrading Brave. Stack trace below.
Device: rooted Android 8, LG G6 (H472)
kotlin.io.FileAlreadyExistsException: /storage/emulated/0/Android/data/de.marmaro.krt.ffupdater/files/Download/BRAVE__2021_06_02__416095783.apk -> /storage/emulated/0/Android/data/de.marmaro.krt.ffupdater/cache/Download/BRAVE__2021_06_02__416095783.apk: The destination file already exists.
at kotlin.io.FilesKt__UtilsKt.copyTo(Utils.kt:224)
at kotlin.io.FilesKt__UtilsKt.copyTo$default(Utils.kt:217)
at de.marmaro.krt.ffupdater.download.DownloadedApkCache.copyFileToCache(DownloadedApkCache.kt:20)
at de.marmaro.krt.ffupdater.InstallActivity$State$8.invokeSuspend(InstallActivity.kt:283)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6710)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)
When the user attempts to update via pressing a notification triggered by the automatic check in background, Android's download manager indicates 2 downloads in progress, not one.
Other than this I realized the download time seems to be longer than usual, So I believe this isn't a issue from Android's download manager, and there is actually 2 downloads in progress.
However, this issues doesn't occur when the application is active(on screen) and it downloads just 1 file for update even when the user updates via pressing the notification.
This is not a issue that happens rarely, I use Firefox nightly, therefore I experienced this issue every time I tried to update by just pressing the update notification.
Hi, I tried installing/updating brave via FFUpdater, but for some reason the download seems to be slow/fails every time, so I instead chose to install via aurora store, but FFUpdater is now bugging me with update notifications and I've noticed that even though there's an option to exclude apps from the automatic update check, it doesn't contain the brave browser
The UI must be changed to support/update multiple browser at once - for example the app should update both Fennec Release and Fennec Nightly.
After the UI rework, I will add more browsers like Focus/Klar etc. (#1)
Design/UI tips are appreciated.
The cards for Release, Beta, Nightly will be hidden when the corresponding browser is not installed.
Currently, I should keep the window open in the foreground to download and install app. I hope that the download could be managed in the background.
Got a notification that led to this error, and it can be triggered manually by opening the app and refreshing it.
de.marmaro.krt.ffupdater.MainActivity$UpdateCheckException
de.marmaro.krt.ffupdater.MainActivity$UpdateCheckException: fail to check FIREFOX_RELEASE for updates
at de.marmaro.krt.ffupdater.MainActivity$checkForAppUpdate$1.invokeSuspend(MainActivity.kt:204)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Caused by: java.lang.NullPointerException
at de.marmaro.krt.ffupdater.app.impl.fetch.mozillaci.MozillaCiLogConsumer.updateCheck(MozillaCiLogConsumer.kt:28)
at de.marmaro.krt.ffupdater.app.impl.FirefoxRelease.updateCheckWithoutCaching(FirefoxRelease.kt:39)
at de.marmaro.krt.ffupdater.app.BaseAppDetail$updateCheck$2$1.invokeSuspend(BaseAppDetail.kt:63)
... 6 more
Using latest f-droid version of FFUpdater.
Android Version: 30
Device Manufacturer: motorola
Device Model: moto g(7)
Issue appears different than #52. Second part of the stack trace is the same as #52, there is some extra at the beginning.
F-Droid can display short description up to 80 letters while the current description has 81 letters. The last 'a' is cut off.
I love the app, but the first time I get an update for firefox, the app is crashing xD
Every time I click the download button the app simply crashes.
Log (idk how paste files via my app oof, im sorry):
<<< log_count = 82 >>>
[05-19 17:58:01.988 939:1263 I/qti_sensors_hal]
processReportInd: 520000 82.000000
[05-19 17:58:05.315 1494:2214 V/InputDispatcher]
Asynchronous input event injection succeeded.
[05-19 17:58:05.415 1494:2214 V/InputDispatcher]
Asynchronous input event injection succeeded.
[05-19 17:58:05.428 2359:2359 V/StatusBar]
mStatusBarWindow: com.android.systemui.statusbar.phone.StatusBarWindowView{bd7425f V.E...... ........ 0,0-1440,84} canPanelBeCollapsed(): false
[05-19 17:58:05.430 1494:2210 I/ActivityTaskManager]
START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 pkg=com.android.launcher3 cmp=com.android.launcher3/.lineage.LineageLauncher (has extras)} from uid 10102
[05-19 17:58:05.457 10379:10379 D/LogcatReader]
[Logcat] onActivityInBackground
[05-19 17:58:05.470 1494:3673 W/ActivityManager]
Unable to start service Intent { act=com.android.launcher3.WINDOW_OVERLAY dat=app://com.android.launcher3:10102?v=9&cv=14 pkg=com.google.android.googlequicksearchbox } U=0: not found
[05-19 17:58:05.529 2359:2359 D/ImageWallpaper]
wallpaper visibility changes to: true
[05-19 17:58:05.549 3771:3771 I/HK/LatinKbdBaseView]
closing org.pocketworkstation.pckeyboard.LatinKeyboardView{a1d7b55 V.ED..... ......ID 0,0-1440,836 #7f080004 app:id/LatinkeyboardBaseView}
[05-19 17:58:05.629 2531:2563 W/System]
A resource failed to call release.
[05-19 17:58:05.629 2531:2563 W/System]
A resource failed to call release.
[05-19 17:58:05.806 652:652 E/Layer]
[Surface(name=AppWindowToken{ed06d44 token=Token{7242e57 ActivityRecord{326cbd6 u0 com.dp.logcatapp/.activities.MainActivity t323}}})/@0xeeab4e7 - animation-leash#0] No local sync point found
[05-19 17:58:05.806 652:652 E/Layer]
[Surface(name=AppWindowToken{ed06d44 token=Token{7242e57 ActivityRecord{326cbd6 u0 com.dp.logcatapp/.activities.MainActivity t323}}})/@0xeeab4e7 - animation-leash#0] No local sync point found
[05-19 17:58:05.806 652:652 E/Layer]
[Surface(name=AppWindowToken{e590b5d token=Token{f3c8134 ActivityRecord{855c07 u0 com.android.launcher3/.lineage.LineageLauncher t232}}})/@0xabcc33d - animation-leash#0] No local sync point found
[05-19 17:58:05.806 652:652 E/Layer]
[Surface(name=AppWindowToken{e590b5d token=Token{f3c8134 ActivityRecord{855c07 u0 com.android.launcher3/.lineage.LineageLauncher t232}}})/@0xabcc33d - animation-leash#0] No local sync point found
[05-19 17:58:05.814 652:652 E/Layer]
[Surface(name=AppWindowToken{ed06d44 token=Token{7242e57 ActivityRecord{326cbd6 u0 com.dp.logcatapp/.activities.MainActivity t323}}})/@0xeeab4e7 - animation-leash#0] No local sync point found
[05-19 17:58:05.814 652:652 E/Layer]
[Surface(name=AppWindowToken{e590b5d token=Token{f3c8134 ActivityRecord{855c07 u0 com.android.launcher3/.lineage.LineageLauncher t232}}})/@0xabcc33d - animation-leash#0] No local sync point found
[05-19 17:58:06.643 1494:3674 I/ActivityTaskManager]
START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10300000 cmp=de.marmaro.krt.ffupdater/.MainActivity} from uid 10102
[05-19 17:58:06.662 1494:1545 E/system_server]
Invalid ID 0x00000000.
[05-19 17:58:06.689 914:914 D/Zygote]
Forked child process 11430
[05-19 17:58:06.692 1494:1565 I/ActivityManager]
Start proc 11430:de.marmaro.krt.ffupdater/u0a198 for activity {de.marmaro.krt.ffupdater/de.marmaro.krt.ffupdater.MainActivity}
[05-19 17:58:06.719 11430:11430 E/o.krt.ffupdate]
Not starting debugger since process cannot load the jdwp agent.
[05-19 17:58:06.736 11430:11430 V/Riru]
hook removed
[05-19 17:58:06.736 11430:11430 V/Riru]
edxp: forkAndSpecializePost
[05-19 17:58:06.780 913:12854 I/netd]
bandwidthAddNiceApp(10198) <4.05ms>
[05-19 17:58:07.025 11430:11430 I/MainActivity]
enable StrictMode for everyday usage to prevent unencrypted data connection
[05-19 17:58:07.050 11430:11430 W/MainActivity]
disableApps: [FIREFOX_KLAR, FENIX, FIREFOX_FOCUS, FIREFOX_LITE]
[05-19 17:58:07.050 11430:11430 W/MainActivity]
checkInterval: 360
[05-19 17:58:07.050 11430:11430 W/MainActivity]
automaticCheck: true
[05-19 17:58:07.063 11430:11457 D/NetworkSecurityConfig]
No Network Security Config specified, using platform default
[05-19 17:58:07.094 11430:11451 I/Adreno]
QUALCOMM build : cf6f28e, I1fbdd7a9d4
Build Date : 02/28/19
OpenGL ES Shader Compiler Version: EV031.25.03.02
Local Branch : mybranche93b5c3a-ead7-f1e6-b2ac-5cb90179c3e0
Remote Branch : quic/gfx-adreno.lnx.1.0.r49-rel
Remote Branch : NONE
Reconstruct Branch : NOTHING
[05-19 17:58:07.094 11430:11451 I/Adreno]
Build Config : S L 6.0.7 AArch64
[05-19 17:58:07.099 11430:11451 I/Adreno]
PFP: 0x005ff112, ME: 0x005ff066
[05-19 17:58:07.100 2359:2359 D/ImageWallpaper]
wallpaper visibility changes to: false
[05-19 17:58:07.101 11430:11451 E/libEGL]
Driver indicates EGL 1.5 support, but does not have a critical API
[05-19 17:58:07.104 652:652 E/Layer]
[Surface(name=AppWindowToken{f552634 token=Token{6b57507 ActivityRecord{88b3f46 u0 de.marmaro.krt.ffupdater/.MainActivity t324}}})/@0x520d291 - animation-leash#0] No local sync point found
[05-19 17:58:07.104 652:652 E/Layer]
[Surface(name=AppWindowToken{e590b5d token=Token{f3c8134 ActivityRecord{855c07 u0 com.android.launcher3/.lineage.LineageLauncher t232}}})/@0xabcc33d - animation-leash#0] No local sync point found
[05-19 17:58:07.105 913:11459 E/ResolverController]
No valid NAT64 prefix (198, /0)
[05-19 17:58:07.112 652:652 E/Layer]
[Surface(name=AppWindowToken{f552634 token=Token{6b57507 ActivityRecord{88b3f46 u0 de.marmaro.krt.ffupdater/.MainActivity t324}}})/@0x520d291 - animation-leash#0] No local sync point found
[05-19 17:58:07.112 652:652 E/Layer]
[Surface(name=AppWindowToken{e590b5d token=Token{f3c8134 ActivityRecord{855c07 u0 com.android.launcher3/.lineage.LineageLauncher t232}}})/@0xabcc33d - animation-leash#0] No local sync point found
[05-19 17:58:07.132 610:610 I/hwservicemanager]
getTransport: Cannot find entry [email protected]::IMapper/default in either framework or device manifest.
[05-19 17:58:07.132 11430:11451 W/Gralloc3]
mapper 3.x is not supported
[05-19 17:58:07.162 1494:1563 I/ActivityTaskManager]
Displayed de.marmaro.krt.ffupdater/.MainActivity: +514ms
[05-19 17:58:07.183 3771:3771 I/HK/LatinKbdBaseView]
closing org.pocketworkstation.pckeyboard.LatinKeyboardView{a1d7b55 V.ED..... ......ID 0,0-1440,836 #7f080004 app:id/LatinkeyboardBaseView}
[05-19 17:58:07.208 11430:11463 D/Notificator]
start background update check
[05-19 17:58:07.274 11430:11460 I/WM-WorkerWrapper]
Worker result SUCCESS for Work [ id=68e806aa-7843-4605-beef-b65258de6395, tags={ de.marmaro.krt.ffupdater.notification.Notificator } ]
[05-19 17:58:07.652 939:1263 I/qti_sensors_hal]
processReportInd: X: -0.016754 Y: 0.057465 Z: 9.849747
[05-19 17:58:08.543 1494:25379 I/ActivityTaskManager]
START u0 {cmp=de.marmaro.krt.ffupdater/.InstallActivity (has extras)} from uid 10198
[05-19 17:58:08.585 11430:11430 W/ActivityThread]
handleWindowVisibility: no activity for token android.os.BinderProxy@35977da
[05-19 17:58:08.701 11430:11430 D/AndroidRuntime]
Shutting down VM
[05-19 17:58:08.702 11430:11430 E/AndroidRuntime]
FATAL EXCEPTION: main
Process: de.marmaro.krt.ffupdater, PID: 11430
java.lang.RuntimeException: Unable to start activity ComponentInfo{de.marmaro.krt.ffupdater/de.marmaro.krt.ffupdater.InstallActivity}: java.util.IllegalFormatConversionException: a != java.lang.String
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Caused by: java.util.IllegalFormatConversionException: a != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4403)
at java.util.Formatter$FormatSpecifier.printFloat(Formatter.java:2898)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2845)
at java.util.Formatter.format(Formatter.java:2530)
at java.util.Formatter.format(Formatter.java:2459)
at java.lang.String.format(String.java:2911)
at android.content.res.Resources.getString(Resources.java:485)
at android.content.Context.getString(Context.java:655)
at de.marmaro.krt.ffupdater.InstallActivity.y(Unknown Source:44)
at de.marmaro.krt.ffupdater.InstallActivity.E(Unknown Source:8)
at de.marmaro.krt.ffupdater.InstallActivity.onCreate(Unknown Source:118)
at android.app.Activity.performCreate(Activity.java:7824)
at android.app.Activity.performCreate(Activity.java:7813)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1306)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
... 11 more
[05-19 17:58:08.707 1494:2210 W/ActivityTaskManager]
Force finishing activity de.marmaro.krt.ffupdater/.InstallActivity
[05-19 17:58:08.708 1494:11470 I/DropBoxManagerService]
add tag=data_app_crash isTagEnabled=true flags=0x2
[05-19 17:58:08.728 1494:2210 W/ActivityTaskManager]
Force finishing activity de.marmaro.krt.ffupdater/.MainActivity
[05-19 17:58:08.740 1494:1540 I/ActivityManager]
Showing crash dialog for package de.marmaro.krt.ffupdater u0
[05-19 17:58:08.841 2359:2376 I/ndroid.systemu]
NativeAlloc concurrent copying GC freed 7888(464KB) AllocSpace objects, 0(0B) LOS objects, 75% free, 9440KB/36MB, paused 62us total 102.603ms
[05-19 17:58:09.225 1494:1544 W/ActivityTaskManager]
Activity top resumed state loss timeout for ActivityRecord{d9fa2fb u0 de.marmaro.krt.ffupdater/.InstallActivity t324 f}
[05-19 17:58:09.226 1494:1544 W/ActivityTaskManager]
Activity pause timeout for ActivityRecord{d9fa2fb u0 de.marmaro.krt.ffupdater/.InstallActivity t324 f}
[05-19 17:58:09.282 1494:4873 W/ActivityManager]
Unable to start service Intent { act=com.android.launcher3.WINDOW_OVERLAY dat=app://com.android.launcher3:10102?v=9&cv=14 pkg=com.google.android.googlequicksearchbox } U=0: not found
[05-19 17:58:09.321 2359:2359 D/ImageWallpaper]
wallpaper visibility changes to: true
[05-19 17:58:09.352 913:12854 I/netd]
bandwidthRemoveNiceApp(10198) <6.74ms>
[05-19 17:58:09.807 1494:2210 W/ActivityTaskManager]
Force finishing activity de.marmaro.krt.ffupdater/.InstallActivity
[05-19 17:58:09.810 1494:2210 W/ActivityTaskManager]
Force finishing activity de.marmaro.krt.ffupdater/.MainActivity
[05-19 17:58:09.814 1494:8439 D/OpenGLRenderer]
endAllActiveAnimators on 0x7931eac000 (RippleDrawable) with handle 0x79b5baa8c0
[05-19 17:58:09.861 1494:3674 E/InputDispatcher]
Window handle Window{36d1f9a u0 Application Error: de.marmaro.krt.ffupdater} has no registered input channel
[05-19 17:58:09.868 1494:2210 I/ActivityManager]
Killing 11430:de.marmaro.krt.ffupdater/u0a198 (adj 900): crash
[05-19 17:58:09.897 3771:3771 I/HK/LatinKbdBaseView]
closing org.pocketworkstation.pckeyboard.LatinKeyboardView{a1d7b55 V.ED..... ......ID 0,0-1440,836 #7f080004 app:id/LatinkeyboardBaseView}
[05-19 17:58:09.939 914:914 I/Zygote]
Process 11430 exited due to signal 9 (Killed)
[05-19 17:58:09.940 1494:1544 W/ActivityManager]
setHasOverlayUi called on unknown pid: 11430
[05-19 17:58:09.943 1494:1567 I/libprocessgroup]
Successfully killed process cgroup uid 10198 pid 11430 in 73ms
[05-19 17:58:10.316 1494:2214 V/InputDispatcher]
Asynchronous input event injection succeeded.
[05-19 17:58:10.414 1494:2214 V/InputDispatcher]
Asynchronous input event injection succeeded.
[05-19 17:58:10.422 2359:2359 V/StatusBar]
mStatusBarWindow: com.android.systemui.statusbar.phone.StatusBarWindowView{bd7425f V.E...... ........ 0,0-1440,84} canPanelBeCollapsed(): false
[05-19 17:58:10.832 1494:3619 E/TaskPersister]
File error accessing recents directory (directory doesn't exist?).
[05-19 17:58:11.552 10379:10379 D/LogcatReader]
[Logcat] onActivityInForeground
[05-19 17:58:11.552 10379:10379 D/LogcatReader]
[Logcat] Posting pending logs
[05-19 17:58:11.597 10379:10379 D/LogcatReader]
[LogcatLiveFragment] onServiceConnected
[05-19 17:58:11.602 1494:1563 W/system_server]
Insufficient pre-allocated space to mmap vdex.
[05-19 17:58:11.606 3771:3771 I/HK/LatinKbdBaseView]
closing org.pocketworkstation.pckeyboard.LatinKeyboardView{a1d7b55 V.ED..... ......ID 0,0-1440,836 #7f080004 app:id/LatinkeyboardBaseView}
[05-19 17:58:11.849 2359:2359 D/ImageWallpaper]
wallpaper visibility changes to: false
[05-19 17:58:11.876 652:652 E/Layer]
[Surface(name=AppWindowToken{e590b5d token=Token{f3c8134 ActivityRecord{855c07 u0 com.android.launcher3/.lineage.LineageLauncher t232}}})/@0xabcc33d - animation-leash#0] No local sync point found
[05-19 17:58:11.876 652:652 E/Layer]
[Surface(name=AppWindowToken{ed06d44 token=Token{7242e57 ActivityRecord{326cbd6 u0 com.dp.logcatapp/.activities.MainActivity t323}}})/@0xeeab4e7 - animation-leash#0] No local sync point found
Can you help me?
FFUpdater detects a new version (68.1a1) but the link that redirect to the latest version hasn't been updates on Mozilla server. It still redirects to 68.0a1.
68.0a1 https://download.mozilla.org/?product=fennec-nightly-latest&os=android&lang=multi
68.1a1 https://ftp.mozilla.org/pub/mobile/nightly/latest-mozilla-esr68-android-aarch64/
I've ping'ed the #mobile team but haven't received an response yet.
Sorry, another issue.
The hash verification seems to fail for some updates. It seems that it can't hash the file correctly.
After the download the app prints an error message :
Download is NOT verified
The SHA256 hash for the file should have been:
---hash---
But it was:
---blank---
Either a hacker has replaced the correct download with an altered download or...
(translated from another language)
There is no value for what I think should be the calculated hash.
It happened for Firefox Preview 4.00 as well as Firefox 68.8.1
Version of the app: 68.2 (f-droid)
Android version: 9 (LineageOS 16.0)
java.lang.NullPointerException at MozillaCiLogConsumer.kt:28
java.lang.NullPointerException
java.lang.NullPointerException
at de.marmaro.krt.ffupdater.app.impl.fetch.mozillaci.MozillaCiLogConsumer.updateCheck(MozillaCiLogConsumer.kt:28)
at de.marmaro.krt.ffupdater.app.impl.FirefoxRelease.updateCheckWithoutCaching(FirefoxRelease.kt:39)
at de.marmaro.krt.ffupdater.app.BaseAppDetail$updateCheck$$inlined$withLock$lambda$1.invokeSuspend(BaseAppDetail.kt:63)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Android Version: 28
Device Manufacturer: OPPO
Device Model: CPH2083
Could you please add bromite webview? Thanks!
Is there any possibility that tor browser & orbot will be added to the updater? I am suggesting this new feature in future updates.
`
de.marmaro.krt.ffupdater.MainActivity$UpdateCheckException at MainActivity.kt:204
de.marmaro.krt.ffupdater.MainActivity$UpdateCheckException
de.marmaro.krt.ffupdater.MainActivity$UpdateCheckException: fail to check FIREFOX_BETA for updates
at de.marmaro.krt.ffupdater.MainActivity$checkForAppUpdate$1.invokeSuspend(MainActivity.kt:204)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Caused by: java.lang.NullPointerException
at de.marmaro.krt.ffupdater.app.impl.fetch.mozillaci.MozillaCiLogConsumer.updateCheck(MozillaCiLogConsumer.kt:28)
at de.marmaro.krt.ffupdater.app.impl.FirefoxBeta.updateCheckWithoutCaching(FirefoxBeta.kt:39)
at de.marmaro.krt.ffupdater.app.BaseAppDetail$updateCheck$$inlined$withLock$lambda$1.invokeSuspend(BaseAppDetail.kt:63)
... 6 more
Android Version: 28
Device Manufacturer: HUAWEI
Device Model: BND-AL10
`
FFUpdater 71.0.3 crashed on Android 8 with the following trace:
de.marmaro.krt.ffupdater.notification.BackgroundUpdateChecker$BackgroundNetworkException: fail to check FIREFOX_RELEASE due to cancelled job
at de.marmaro.krt.ffupdater.notification.BackgroundUpdateChecker.doBackgroundCheck(BackgroundUpdateChecker.kt:47)
at de.marmaro.krt.ffupdater.notification.BackgroundUpdateChecker$doBackgroundCheck$1.invokeSuspend(Unknown Source:11)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:32)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:113)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Caused by: kotlinx.coroutines.JobCancellationException: Job was cancelled; job=JobImpl{Cancelling}@deedef3
Ability switch between networks and resume downloads. Periodically check if the download was interrupted, and resume.
It can be useful to support automatic update without confirmation dialog using root.
Since the Brave is chosen to be added, it makes sense to add these variants to the app as well.
Nightly: https://play.google.com/store/apps/details?id=com.brave.browser_nightly&hl=en_IN&gl=US
Beta: https://play.google.com/store/apps/details?id=com.brave.browser_beta&hl=en_IN&gl=US
I'm seeing this on a Nexus 6 running LineageOS 17.1
Here's the trace:
java.lang.RuntimeException: Unable to resume activity {de.marmaro.krt.ffupdater/de.marmaro.krt.ffupdater.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4205)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4237)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
Caused by: java.lang.NullPointerException
at de.marmaro.krt.ffupdater.app.impl.FirefoxNightly.getDisplayInstalledVersion(FirefoxNightly.kt:38)
at de.marmaro.krt.ffupdater.MainActivity.initUI(MainActivity.kt:129)
at de.marmaro.krt.ffupdater.MainActivity.onResume(MainActivity.kt:82)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1453)
at android.app.Activity.performResume(Activity.java:7958)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4195)
... 11 more
I'm only reporting in case this might be a problem unrelated to my weird platform. But if you want to just mark this closed because there's no chance you can reproduce it, I understand.
Firefox Focus can be interesting to have as well as Firefox.
Most of the code could be reused to add this feature.
The current release directory is https://archive.mozilla.org/pub/android/focus/latest/
Hi, thanks for the new version ! Great improvement in quality and usefulness ! The download works for "classic" Firefox .
Unfortunately, the app fails to retrieve the download link for Firefox Preview.
Instead there are 2 error messages :
"Impossible to retrieve the url from Github" (translation to English from another language)
"Installation of the app has not succeeded. You can close this screen." (translation to English from anther language)
Same result for Firefox Preview 4.5.0 a few days ago and 5.0.0 now.
Version of the app: 68.0 (f-droid)
Android version: 9 (LineageOS 16.0)
Hi,
in these days, my smartphone was without connection. I had the wire signal, but I was not able to navigate, so I experienced the following crash multiple times:
de.marmaro.krt.ffupdater.utils.ParamRuntimeException at BackgroundUpdateChecker.java:84 de.marmaro.krt.ffupdater.utils.ParamRuntimeException de.marmaro.krt.ffupdater.utils.ParamRuntimeException: background update check failed for FIREFOX_RELEASE at de.marmaro.krt.ffupdater.notification.BackgroundUpdateChecker.lambda$findAppsWithAvailableUpdates$1(BackgroundUpdateChecker.java:84) at de.marmaro.krt.ffupdater.notification.-$$Lambda$BackgroundUpdateChecker$35ZiPKEdROusULgHJI2328BkhpY.accept(Unknown Source:10) at j$.util.Map$-CC.$default$forEach(Map.java:5) at j$.util.Map$-EL.forEach(Map.java:6) at de.marmaro.krt.ffupdater.notification.BackgroundUpdateChecker.findAppsWithAvailableUpdates(BackgroundUpdateChecker.java:75) at de.marmaro.krt.ffupdater.notification.BackgroundUpdateChecker.doBackgroundCheck(BackgroundUpdateChecker.java:62) at de.marmaro.krt.ffupdater.notification.BackgroundUpdateChecker.doWork(BackgroundUpdateChecker.java:47) at androidx.work.Worker$1.run(Worker.java:85) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:764) Caused by: java.util.concurrent.ExecutionException: de.marmaro.krt.ffupdater.utils.ParamRuntimeException: can't consume API interface https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/mobile.v2.fenix.release.latest.arm64-v8a/artifacts/public/chain-of-trust.json at java.util.concurrent.FutureTask.report(FutureTask.java:123) at java.util.concurrent.FutureTask.get(FutureTask.java:207) at de.marmaro.krt.ffupdater.notification.BackgroundUpdateChecker.lambda$findAppsWithAvailableUpdates$1(BackgroundUpdateChecker.java:77) ... 10 more Caused by: de.marmaro.krt.ffupdater.utils.ParamRuntimeException: can't consume API interface https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/mobile.v2.fenix.release.latest.arm64-v8a/artifacts/public/chain-of-trust.json at de.marmaro.krt.ffupdater.metadata.fetcher.ApiConsumer.consume(ApiConsumer.java:43) at de.marmaro.krt.ffupdater.metadata.fetcher.MozillaCiConsumer.consume(MozillaCiConsumer.java:22) at de.marmaro.krt.ffupdater.metadata.fetcher.Firefox.call(Firefox.java:47) at de.marmaro.krt.ffupdater.metadata.fetcher.Fetcher.fetchAvailableMetadata(Fetcher.java:74) at de.marmaro.krt.ffupdater.metadata.fetcher.Fetcher.call(Fetcher.java:56) at de.marmaro.krt.ffupdater.metadata.fetcher.Fetcher.call(Fetcher.java:15) at java.util.concurrent.FutureTask.run(FutureTask.java:266) ... 3 more Caused by: java.net.ConnectException: Failed to connect to firefox-ci-tc.services.mozilla.com/35.190.5.182:443 at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:143) at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:112) at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:184) at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126) at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95) at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281) at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:461) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:407) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getHeaders(HttpURLConnectionImpl.java:163) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getHeaderField(HttpURLConnectionImpl.java:207) at java.net.URLConnection.getContentEncoding(URLConnection.java:529) at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getContentEncoding(DelegatingHttpsURLConnection.java:142) at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getContentEncoding(HttpsURLConnectionImpl.java:26) at de.marmaro.krt.ffupdater.metadata.fetcher.ApiConsumer.consume(ApiConsumer.java:33) ... 9 more Android Version: 28 Device Manufacturer: asus Device Model: ASUS_X01BDA
Thank you for your work.
A device is with disabled mobile data but with Wi-Fi turned on. Approximately an hour after the device lose (Wi-Fi) connection because it is out of range an error of the sort appears:
Caused by: java.net.UnknownHostException: Unable to resolve host "firefox-ci-tc.services.mozilla.com": No address associated with hostname
de.marmaro.krt.ffupdater.utils.ParamRuntimeException: Failed to fetch the download url from Mozilla CI at de.marmaro.krt.ffupdater.InstallActivity.lambda$fetchAvailableMetadata$3$InstallActivity(InstallActivity.java:207) at de.marmaro.krt.ffupdater.-$$Lambda$InstallActivity$D3MDEMe3EyG_NptgNd2sctku1ks.run(Unknown Source:4) at java.lang.Thread.run(Thread.java:919) Caused by: java.util.concurrent.ExecutionException: de.marmaro.krt.ffupdater.utils.ParamRuntimeException: can't consume API interface https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/mobile.v2.fenix.nightly.latest.arm64-v8a/artifacts/public/chain-of-trust.json at java.util.concurrent.FutureTask.report(FutureTask.java:123) at java.util.concurrent.FutureTask.get(FutureTask.java:207) at de.marmaro.krt.ffupdater.InstallActivity.lambda$fetchAvailableMetadata$3$InstallActivity(InstallActivity.java:200) ... 2 more Caused by: de.marmaro.krt.ffupdater.utils.ParamRuntimeException: can't consume API interface https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/mobile.v2.fenix.nightly.latest.arm64-v8a/artifacts/public/chain-of-trust.json at de.marmaro.krt.ffupdater.metadata.fetcher.ApiConsumer.consume(ApiConsumer.java:43) at de.marmaro.krt.ffupdater.metadata.fetcher.MozillaCiConsumer.consume(MozillaCiConsumer.java:22) at de.marmaro.krt.ffupdater.metadata.fetcher.Firefox.call(Firefox.java:47) at de.marmaro.krt.ffupdater.metadata.fetcher.Fetcher.fetchAvailableMetadata(Fetcher.java:80) at de.marmaro.krt.ffupdater.metadata.fetcher.Fetcher.call(Fetcher.java:56) at de.marmaro.krt.ffupdater.metadata.fetcher.Fetcher.call(Fetcher.java:15) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) ... 1 more Caused by: java.net.UnknownHostException: Unable to resolve host "firefox-ci-tc.services.mozilla.com": No address associated with hostname at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:156) at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103) at java.net.InetAddress.getAllByName(InetAddress.java:1152) at com.android.okhttp.Dns$1.lookup(Dns.java:41) at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:178) at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:144) at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:86) at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:176) at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128) at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97) at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289) at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getHeaders(HttpURLConnectionImpl.java:167) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getHeaderField(HttpURLConnectionImpl.java:211) at java.net.URLConnection.getContentEncoding(URLConnection.java:529) at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getContentEncoding(DelegatingHttpsURLConnection.java:143) at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getContentEncoding(HttpsURLConnectionImpl.java:30) at de.marmaro.krt.ffupdater.metadata.fetcher.ApiConsumer.consume(ApiConsumer.java:33) ... 9 more Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname) at libcore.io.Linux.android_getaddrinfo(Native Method) at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:74) at libcore.io.BlockGuardOs.android_getaddrinfo(BlockGuardOs.java:200) at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:74) at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:135) ... 28 more
It is reproducible. Are you interested in the exact steps? Probably related to #18
Hello,
The app crash when trying to find an update to Iceraven. Here is the log:
de.marmaro.krt.ffupdater.MainActivity$UpdateCheckException at MainActivity.kt:199
de.marmaro.krt.ffupdater.MainActivity$UpdateCheckException
de.marmaro.krt.ffupdater.MainActivity$UpdateCheckException: fail to check ICERAVEN for updates
at de.marmaro.krt.ffupdater.MainActivity$checkForAppUpdate$1.invokeSuspend(MainActivity.kt:199)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Caused by: de.marmaro.krt.ffupdater.app.impl.exceptions.ApiNetworkException: Fail to consume API. Previous exceptions: [https://api.github.com/repos/fork-maintainers/iceraven-browser/releases/latest; https://api.github.com/repos/fork-maintainers/iceraven-browser/releases/latest; https://api.github.com/repos/fork-maintainers/iceraven-browser/releases/latest; https://api.github.com/repos/fork-maintainers/iceraven-browser/releases/latest; https://api.github.com/repos/fork-maintainers/iceraven-browser/releases/latest]. Last exception:
at de.marmaro.krt.ffupdater.app.impl.fetch.ApiConsumer.readNetworkResourceWithRetries(ApiConsumer.kt:62)
at de.marmaro.krt.ffupdater.app.impl.fetch.ApiConsumer$readNetworkResourceWithRetries$1.invokeSuspend(Unknown Source:12)
... 6 more
Caused by: java.io.FileNotFoundException: https://api.github.com/repos/fork-maintainers/iceraven-browser/releases/latest
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:251)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(Unknown Source:0)
at de.marmaro.krt.ffupdater.app.impl.fetch.ApiConsumer.readNetworkResource(ApiConsumer.kt:73)
at de.marmaro.krt.ffupdater.app.impl.fetch.ApiConsumer.readNetworkResourceWithRetries(ApiConsumer.kt:55)
... 7 more
Android Version: 27
Device Manufacturer: samsung
Device Model: SM-G930F
Iceraven is an open-source Firefox for Android fork dedicated to providing users more options, customizations, extendability, and information about how their browser interacts with the websites they visit (and vice-versa) than upstream Firefox.
It also tries to strip out proprietary telemetry as much as possible. Some of the code for that is based on the F-Droid Fennec code.
Anyhow, they've been trying to get listed in F-Droid since at least August, and haven't quite been able to get it done (See fork-maintainers/iceraven-browser#26 ).
Right now, it releases exclusively through Github.
Is there any chance that the .apk files from https://github.com/fork-maintainers/iceraven-browser/releases could be added to your updater?
Iceraven is not a Mozilla release, but it is a close fork, and I note that you already have, or have in the past had, the ability to support multiple browsers (i.e. All the different Mozilla browsers that have been at times available simultaneously).
I'm not asking this as any kind of official representative, just as a fan of Iceraven. They're short on people who can do the real coding work, so I try to run around online doing stuff like this on my own initiative. ;)
I'm tagging Iceraven's lead developer- @interfect - as a courtesy, but just so that he is aware of this thread, not to pull his attention towards getting it done. Right now he's the only developer and has to balance that with a separate full time job and a life, so he may want to, you know, develop the browser with the limited amount of time he has (Incidentally, Iceraven welcomes volunteer coders either at the level of potential project maintainers or just to submit some patches and pull requests, which could be as simple as merging from upstream stable. Folks who don't mind doing CI testing would be particularly welcome.) rather than engaging in discussion on another project's GitHub, but I think this is something he'd approve of as at least a temporary solution if @Tobi823 is willing to do it.
If you're not comfortable listing it because of potential confusion with official Mozilla releases, you could always consider listing it in a way that makes it's status clear within the updater with something along the lines of "Iceraven (Not an official Mozilla release)".
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.content.pm.action.CONFIRM_INSTALL (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2081)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1737)
at android.app.Activity.startActivityForResult(Activity.java:5436)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:574)
at android.app.Activity.startActivityForResult(Activity.java:5394)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:560)
at android.app.Activity.startActivity(Activity.java:5780)
at android.app.Activity.startActivity(Activity.java:5733)
at de.marmaro.krt.ffupdater.installer.SessionInstaller.onNewIntentCallback(SessionInstaller.kt:23)
at de.marmaro.krt.ffupdater.InstallActivity.onNewIntent(InstallActivity.kt:149)
at android.app.Activity.performNewIntent(Activity.java:8163)
at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1410)
at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1423)
at android.app.ActivityThread.deliverNewIntents(ActivityThread.java:3769)
at android.app.ActivityThread.handleNewIntent(ActivityThread.java:3781)
at android.app.servertransaction.NewIntentItem.execute(NewIntentItem.java:53)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2142)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:8067)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967)
Doesn't actually crash the application. Seems to be caused by changing viewing mode while viewing the + browser menu. Returns following stack trace:
java.lang.RuntimeException: Unable to start activity ComponentInfo{de.marmaro.krt.ffupdater/de.marmaro.krt.ffupdater.MainActivity}: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment de.marmaro.krt.ffupdater.dialog.InstallAppDialog: could not find Fragment constructor
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3477)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3620)
at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:5514)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5422)
at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:69)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2183)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:241)
at android.app.ActivityThread.main(ActivityThread.java:7604)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)
Caused by: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment de.marmaro.krt.ffupdater.dialog.InstallAppDialog: could not find Fragment constructor
at androidx.fragment.app.Fragment.instantiate(Fragment.java:625)
at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:57)
at androidx.fragment.app.FragmentManager$3.instantiate(FragmentManager.java:483)
at androidx.fragment.app.FragmentStateManager.<init>(FragmentStateManager.java:85)
at androidx.fragment.app.FragmentManager.restoreSaveState(FragmentManager.java:2714)
at androidx.fragment.app.FragmentController.restoreSaveState(FragmentController.java:198)
at androidx.fragment.app.FragmentActivity$2.onContextAvailable(FragmentActivity.java:149)
at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.java:99)
at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:307)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:269)
at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:115)
at de.marmaro.krt.ffupdater.MainActivity.onCreate(MainActivity.kt:42)
at android.app.Activity.performCreate(Activity.java:7822)
at android.app.Activity.performCreate(Activity.java:7811)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1328)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3452)
... 13 more
Caused by: java.lang.NoSuchMethodException: de.marmaro.krt.ffupdater.dialog.InstallAppDialog.<init> []
at java.lang.Class.getConstructor0(Class.java:2332)
at java.lang.Class.getConstructor(Class.java:1728)
at androidx.fragment.app.Fragment.instantiate(Fragment.java:610)
... 28 more
[Update: see below, Kiwi Browser may or may not be spyware.]
I read the most recent FFUpdater changelog and saw that it included Kiwi Browser. Kiwi Browser looks good... It's Chrome-based (faster and less unstable than Firefox), it supports extensions... nope it's spyware.
Summary: Kiwi Browser ships with fake search engines that masquerade as Yahoo or Bing. They actually send all searches through their own servers, allowing Kiwi's owners to track what each user is searching for.
Not only that, but they also see autocomplete queries, which tell them which URLs they type into the address bar, and what things you type but don't press Enter on. Currently, the Bing and Yahoo search engines use the upstream suggest URLs rather than sending suggestions through the redirector, but I don't know what the the default search engine (randomly named Bing or Yahoo) does.
If you install Kiwi Browser, open the app, and wait a few seconds before performing a search, it might go to Bing or Yahoo (randomly chosen). It's a lie.
If you turn on Airplane Mode and perform a different web search, the URL shows kiwisearchservices.com or kiwisearchservices.net, which is disturbing. Kiwi Browser tries to cover its tracks; if you open settings and look at the list of search engines, Kiwi Browser lies to you and claims the default is Bing or Yahoo. It's not, it's a search redirector/keylogger they operate for revenue.
Every time I clear data, the default search engine is randomly chosen out of fake-Bing or fake-Yahoo. The next 2 search engines in the settings are always a second fake Yahoo and a second fake Bing. All Yahoo search engines actually redirect searches through kiwisearchservices.net, and all Bing choices redirects through kiwisearchservices.com.
Turn on Airplane Mode, clear app data, go into the settings. The search engine is "Default Search", with description "send to the best search engine for the request". Weird.
Kiwi Browser advertises itself as one of the few Android browsers supporting extensions, like ad-blockers. But it wants to maximize its revenue stream, which adblockers would harm. So the browser deactivates ad-blocking extensions on search engines (including their own search redirectors). This subterfuge is clearly visible in Kiwi's source code.
As a bonus, the latest commit message in that file is:
Add ideas of websites to visit (explore), the goal is to make users spend more time within the browser and visit partners
In other words, shilling their "partners" in the browser.
I do not trust Kiwi Browser with my browsing history and website logins. And neither should the users of FFUpdater. Or anyone on the Play Store, for that matter. I await the day it gets taken down from the store.
I don't know what else the browser does. It's a rather outdated Chrome fork with occasional backported patches and "thousands of files changed" (according to their README). For all I know, they may be stealing cookies and passwords and bank/credit card credentials to resell.
I've archived Kiwi Browser's source code and history (as of today) at https://github.com/nyanpasu64/kiwibrowser, in case they decide to erase the evidence.
Hej there!
I'm running Firefox lite (and Klar and Browser).
But I can't update lite from 2.5.2 to 2.6.0 (the others worked).
It looks like the download is successful, but when it tries to update the package it crashes with this error message.
I tried it many times already, always the same result.
java.lang.NullPointerException
at java.util.Objects.requireNonNull(Objects.java:203)
at de.marmaro.krt.ffupdater.security.FingerprintValidator.verifyPackageInfo(FingerprintValidator.java:72)
at de.marmaro.krt.ffupdater.security.FingerprintValidator.checkApkFile(FingerprintValidator.java:47)
at de.marmaro.krt.ffupdater.InstallActivity$1.lambda$onReceive$0$InstallActivity$1(InstallActivity.java:262)
at de.marmaro.krt.ffupdater.-$$Lambda$InstallActivity$1$LqHCXswk3aZ1y_DLFUVKPrapTCs.run(Unknown Source:4)
at java.lang.Thread.run(Thread.java:919)
de.marmaro.krt.ffupdater.MainActivity$UpdateCheckException: fail to check FIREFOX_BETA for updates
at de.marmaro.krt.ffupdater.MainActivity$checkForAppUpdate$1.invokeSuspend(MainActivity.kt:204)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Caused by: java.lang.NullPointerException
at de.marmaro.krt.ffupdater.app.impl.fetch.mozillaci.MozillaCiLogConsumer.updateCheck(MozillaCiLogConsumer.kt:28)
at de.marmaro.krt.ffupdater.app.impl.FirefoxBeta.updateCheckWithoutCaching(FirefoxBeta.kt:39)
at de.marmaro.krt.ffupdater.app.BaseAppDetail$updateCheck$$inlined$withLock$lambda$1.invokeSuspend(BaseAppDetail.kt:63)
... 6 more
This crash came up on my automatic check for updates and continues if I try to manually check for updates:
java.lang.NullPointerException
at de.marmaro.krt.ffupdater.app.impl.fetch.mozillaci.MozillaCiLogConsumer.updateCheck(MozillaCiLogConsumer.kt:28)
at de.marmaro.krt.ffupdater.app.impl.FirefoxRelease.updateCheckWithoutCaching(FirefoxRelease.kt:39)
at de.marmaro.krt.ffupdater.app.BaseAppDetail$updateCheck$$inlined$withLock$lambda$1.invokeSuspend(BaseAppDetail.kt:63)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
I think ungoogled-chromium should add to FFUpdater because it is privacy-oriented browser like others.
Apart from new, translated values-xx\strings.xml
what other is needed for new localization to be accepted?
@Tobi823 As shown below, many versions from v74.3.0 & before say "No Network Connection" on my Android 8.1.0 32-bit Moto G5+, but updates actually download & install when available. On my Android 11 64-bit TCL 10L, everything shows & works as expected. Fix available?
information about the app (version, link to issue, etc) in the menu would be nice to have
The download link for Nightly is different than the path in Mozilla archive.
It seems like they've changed it to :
https://archive.mozilla.org/pub/mobile/nightly/latest-mozilla-esr68-android-api-16/
I guess the name will change again when ESR 68 will hit its End of Life.
Using FFUpdater 72.0.0 on Android 7.1 (LineageOS 14.1, no Google)
Clicked on red arrow to download Firefox. Firefox downloaded successfully (data usage app showed ~67MB downloaded)
After download completed, nothing happened, so opened file explorer and searched for downloaded apk. Searched entire file system, including SD card, but could not find Firefox apk. (FFUpdater 'download' folder empty)
Downloaded apk apparently not saved (or deleted after download).
(An unfortunate waste of metered data).
Would be good to have an in-app setting for user to choose download location (including ability to select external SD card). Either that or an in-app button to "Open download folder".
This is my first time downloading an update in FFUpdater. I hope it is not intentionally deleting downloaded apk, especially when it apparently makes no attempt to install update after downloading!
How to reproduce:
I got a notification saying background update had failed. When I opened the notification the app had crashed.
Stacktrace:
java.lang.NullPointerException at MozillaCiLogConsumer.kt:28
java.lang.NullPointerException
java.lang.NullPointerException
at de.marmaro.krt.ffupdater.app.impl.fetch.mozillaci.MozillaCiLogConsumer.updateCheck(MozillaCiLogConsumer.kt:28)
at de.marmaro.krt.ffupdater.app.impl.FirefoxRelease.updateCheckWithoutCaching(FirefoxRelease.kt:39)
at de.marmaro.krt.ffupdater.app.BaseAppDetail$updateCheck$$inlined$withLock$lambda$1.invokeSuspend(BaseAppDetail.kt:63)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Android Version: 30
Device Manufacturer: motorola
Device Model: moto g(8) power
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.