Skip to main content

Linux Support

I use a linux computer. There is already a windows/macos app so it seems like linux support hopefully might not be too difficult?

My main reasoning is that the website does not support the e2ee so it is impossible to use on my computer with it enabled.

Status: Completed13 comments

Log in to comment and vote

Comments13

  • Luke M

    Team•

    May 18

    Unlikely to happen, I’m afraid. The app is built with Flutter, which has only the most basic support for Flutter; the biggest issue is the dozens and dozens of plugins and capabilities that TimeFinder uses, don’t support Linux natively.

    Since e2ee is a must-have for you, my only recommendation would be to run the android app on Linux somehow; I’ve been told by another user that this is possible and straightforward, but I’ve never tried.

    I’m sorry to disappoint. Thanks for your interest and let me know if I can help with anything else.

    -Luke

    • xela.codes

      •

      May 19

      I am unable to easily run this in an android emulator due to there not being an x86 release in the play store.

      I installed libndk to be able to run arm binaries in my emulator and now I can’t run the app because of play protect. It appears the app has a baked-in play protect block since i have play protect disabled in my emulator?

      Is there an APK release that does not have the play protect block, or an x86-compatible APK?

      After a couple hours of debugging I am unable to get the app to run whatsoever in an emulator, due to the play integrity checks.

      An x86 release I believe would fix this as then I could install it directly from the play store.

      • Luke M

        Team•

        May 19

        Sorry to hear about the runaround here. Two things worth mentioning:


        Firstly, the Android build does actually ship x86_64; Flutter's default AAB includes arm64-v8a, armeabi-v7a, and x86_64, and the Play Store should deliver the appropriate APK per device. If your emulator was getting nothing, it was likely a 32-bit x86 AVD (deprecated for years). Modern Android Studio emulators are x86_64 and should work directly from the Play Store.

        Aside from that, another Linux user emailed me last week to say he's running the TimeFinder Android app on Linux through Waydroid and that it's "quite easy." Waydroid runs Android natively in a Linux container and installs from the Play Store directly, so it sidesteps the libndk translation and the sideloading licensing checks that I think are what gave you trouble.

        I recommend trying the Waydroid approach if that is viable for you. Aside from that, I unfortunately don’t have the bandwidth to support other options like a native linux build or bringing e2ee to web.


        I hope this helps a little. Let me know, thanks!

        • xela.codes

          •

          May 19

          All of this was done on waydroid.

          I reinstalled a fresh copy of waydroid, signed into the google play store, and I’m still met with this:

          My waydroid is x86_64, android 13.

          • Luke M

            Team•

            May 19

            Thanks so much for that screenshot, helps a lot. I think I might have found the issue, or at least one real part of it: Apparently, since TimeFinder has an image-upload option, it declares the ‘camera’ permission as ‘required’ in its android manifest, and apparently, that means that devices without a camera (including Waydroid I suppose) can’t install the android app. I don’t know if this is the only blocker, but I’ll fix it, and we’ll take it from there.

            As for my anecdote from earlier about the user who said it was ‘quite easy’ to use TimeFinder on Waydroid, I misremembered—they said that it "should” be quite easy to use TimeFinder on Android (after I mentioned some limitations of the web app)—not that they have actually tried to yet.. I apologize for that misrepresentation.

            Thanks for your patience!

            • xela.codes

              •

              May 20

              Looks like waydroid passes the camera through. When I open the camera app it flashes my laptop camera and doesn’t show video, but it is still there.

              Listing device features via the terminal shows the camera:

              I’m not sure, but the fingerprint permission may have the same issue. Although I force-enabled the fingerprint feature on waydroid and cleared the google play data and it still shows the same message.

              Here is a full feature list if that helps:

              feature:reqGlEsVersion=0x30002

              feature:android.hardware.audio.low_latency

              feature:android.hardware.audio.output

              feature:android.hardware.bluetooth

              feature:android.hardware.camera

              feature:android.hardware.camera.any

              feature:android.hardware.camera.autofocus

              feature:android.hardware.camera.capability.manual_post_processing

              feature:android.hardware.camera.capability.manual_sensor

              feature:android.hardware.camera.capability.raw

              feature:android.hardware.camera.flash

              feature:android.hardware.camera.front

              feature:android.hardware.camera.level.full

              feature:android.hardware.ethernet

              feature:android.hardware.faketouch

              feature:android.hardware.location

              feature:android.hardware.location.gps

              feature:android.hardware.location.network

              feature:android.hardware.microphone

              feature:android.hardware.opengles.aep

              feature:android.hardware.ram.normal

              feature:android.hardware.screen.landscape

              feature:android.hardware.screen.portrait

              feature:android.hardware.security.model.compatible

              feature:android.hardware.sensor.accelerometer

              feature:android.hardware.sensor.ambient_temperature

              feature:android.hardware.sensor.barometer

              feature:android.hardware.sensor.compass

              feature:android.hardware.sensor.gyroscope

              feature:android.hardware.sensor.light

              feature:android.hardware.sensor.proximity

              feature:android.hardware.sensor.relative_humidity

              feature:android.hardware.touchscreen

              feature:android.hardware.usb.accessory

              feature:android.hardware.vulkan.compute

              feature:android.hardware.vulkan.level=1

              feature:android.hardware.vulkan.version=4198400

              feature:android.hardware.wifi

              feature:android.software.activities_on_secondary_displays

              feature:android.software.app_enumeration

              feature:android.software.app_widgets

              feature:android.software.autofill

              feature:android.software.backup

              feature:android.software.cant_save_state

              feature:android.software.companion_device_setup

              feature:android.software.controls

              feature:android.software.cts

              feature:android.software.device_admin

              feature:android.software.freeform_window_management

              feature:android.software.home_screen

              feature:android.software.input_methods

              feature:android.software.live_wallpaper

              feature:android.software.managed_users

              feature:android.software.picture_in_picture

              feature:android.software.print

              feature:android.software.secure_lock_screen

              feature:android.software.sip

              feature:android.software.sip.voip

              feature:android.software.telecom

              feature:android.software.verified_boot

              feature:android.software.voice_recognizers

              feature:android.software.webview

              feature:android.software.window_magnification

              feature:android.sofware.nfc.beam

              feature:com.google.android.apps.dialer.SUPPORTED

              feature:com.google.android.feature.D2D_CABLE_MIGRATION_FEATURE

              feature:com.google.android.feature.WELLBEING

              feature:org.lineageos.android

              feature:org.lineageos.globalactions

              feature:org.lineageos.hardware

              feature:org.lineageos.health

              feature:org.lineageos.livedisplay

              feature:org.lineageos.profiles

              feature:org.lineageos.settings

              • Luke M

                Team•

                May 20

                Thanks for the details; I will take it from here then and try to get a Waydroid linux build working on my end, and let you know how it goes. Thank you.

                • Luke M

                  Team•

                  May 20

                  I didn’t get very far—turns out android on linux on parallels on Mac doesn’t even really allow me to log into google play. But I did learn a lot about the different app integrity settings, and I just loosened one that might help the android app work in Waydroid after all on your end. That’s closer to what you suggested in the first place, than anything else, so I owe you an apology. Thanks for the solid pointers. Please give it a shot and let me know.

                  In the meantime, I’ll keep working on e2ee for web as a fallback. Thanks!

                  • xela.codes

                    •

                    May 20

                    Alright, thanks for the debugging! I had attempted to install the app via AuroraStore to bypass the play store blocking me and thats when I ran into the play protect notice.

                    I’m assuming if I have a subscription via the iOS app it would carry over to the android app?

                    I’ll try it once I see the update. Thank you!

                    • Luke M

                      Team•

                      May 20

                      thanks for the details! With the loosened play protect restrictions, I’d expect it the Android app to be downloadable/runnable through any means, but I still haven’t succeeded in getting my environment set up properly to try.

                      Good news though: with the help of ai, I was able to get web e2ee support built overnight, so if you want to give it a try, clear your browser cache and go to web.TimeFinder.app, and give it a shot.

                      I’ll keep fiddling with Linux environment but I hope that helps!

                      • xela.codes

                        •

                        May 21

                        Web e2ee does work, with some notes:

                        First issue:

                        • sign into account with encryption turned OFF on web

                        • turn encryption on on another device (my phone)

                        • reload website/cache, enter encryption passcode, blank screen

                        This occurred on firefox, not sure if it happens in other browsers, I didn’t test.

                        I opened a new container tab with a separate session and signed in and then i was able to access everything.

                        Second issue:

                        • fresh signin on web, enter encryption key

                        • all cards/tasks show [Encrypted]

                        The task cards only updated with unencrypted data if i edited them in some way. (moved them around or tried to rename)

                        I switched views from the 1-day to the 3-day on the schedule page and then everything showed up with the proper titles.

                        Looks like this only occurs after the encryption password screen. Reloading the tab and re-entering the password shows ‘encrypted’ until the schedule view is flipped to 3-day or more. If “trust device” is enabled then the issue does not occur.

                        While writing this I re-focused the original “first issue” tab which showed the blank screen and now it shows everything including the decrypted titles.

                        Thanks for the support and it looks like this will work!

                        • Luke M

                          Team•

                          May 21

                          Thank you immensely for the detailed report! This is super helpful. I will address these issues thoroughly. Glad to hear it’s working somewhat better with ‘trust device’ enabled at least. Thanks so much!

                          • Luke M

                            Team•

                            May 21

                            I just released a new web build with some fixes for all this. Let me know if it seems better, or if you see any other issues. Thanks!