UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login
    1. Home
    2. brenno.almeida
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 12
    • Groups 0

    brenno.almeida

    @brenno.almeida

    7
    Reputation
    9
    Profile views
    12
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online
    Website brennoflavio.com.br
    Location Brazil

    brenno.almeida Unfollow Follow

    Best posts made by brenno.almeida

    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      New alpha with more quality of life features:

      https://github.com/brennoflavio/greenline/tags

      • Integration with lock screen with number of messages read [needs qa]
      • Full background sync, faster startup times
      • Tapping on a notification opens the chat of that notification
      • Support for messages that are only links
      • Call notifications
      • Only notify the last message of a chat room
      • Clear notification for the chat room once chat is opened
      • Notification badge support (unread count in the side bar)
      • Messages from groups should notify the group name in the title, not the person name [needs qa]
      posted in App Development
      brenno.almeidaB
      brenno.almeida
    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      New alpha with features:

      https://github.com/brennoflavio/greenline/releases

      • Pair Whatsapp with phone number + code
      • Settings page now correctly uninstall the daemon from the device
      • Block all notifications globally, regardless of Whatsapp configuration
      • Text input now correctly renders more than 2 lines
      • Show "typing" indicators in the chat page header
      posted in App Development
      brenno.almeidaB
      brenno.almeida
    • [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      Hi everyone! I've been working on a qml Whatsapp client for Ubuntu Touch for a few weeks, now I think its good enough for its alpha release.

      The app is not complete, there's still a ton of work to do, and probably many bugs. If you want to test it out, feel free to install in your device, and get back here if you find any bug so I can look at it. The Whatsapp protocol is awful to work with, I'm posting this early to gather feedback about edge cases.

      Consider this app as Alpha, don't use it expecting to be 100% functional or complete, but use it to give feedback and help with the development.

      Also the app runs unconfined to setup a background daemon, more on the architecture bellow.

      Releases here: https://github.com/brennoflavio/greenline/releases

      Once its stable, I'll publish to the store. Now more details about it.

      Architecture

      This app is composed of 3 parts:

      1. Golang Daemon

      This daemon managed by Systemd connects to Whatsapp servers and runs continuously in the background, gathering events and pre processing them. Also:

      • Manages your encryption keys
      • Serialize whatsapp events, stores in a queue
      • Expose a JSON RPC endpoint to read and send messages, among other operations
      • Syncs users avatars, media, and other data
      • Sends notifications
      1. Python Backend

      Event driven backend that pulls events from the daemon and acts on them, building a chat room and message database. It also sends events to the frontend, updating the message list in real time

      1. QML

      The frontend is entirely written in qml and communicates with python using pyotherside

      In order to pull messages in the background, it needs to run unconfined.

      posted in App Development
      brenno.almeidaB
      brenno.almeida
    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      @arubislander @pparent app uses whatsmeow, a golang implementation of Whatsapp Web socket. So from Whatsapp perspective, its like you're using Whatsapp Web.

      The risk of being banned using unofficial tools is never 0, but extremely low if you don't abuse the tool. Its the same risk of using the WhatsApp Matrix bridge for example, that uses the same library behind the scenes.

      posted in App Development
      brenno.almeidaB
      brenno.almeida
    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      @pparent said:

      @brenno.almeida

      Ok so another confined app does not have permission to access your messages and data, via this Unix socket?

      Confined apps cannot access files outside their specified directories (config, data, cache), so they cannot use the socket.

      posted in App Development
      brenno.almeidaB
      brenno.almeida

    Latest posts made by brenno.almeida

    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      New alpha with features:

      https://github.com/brennoflavio/greenline/releases

      • Pair Whatsapp with phone number + code
      • Settings page now correctly uninstall the daemon from the device
      • Block all notifications globally, regardless of Whatsapp configuration
      • Text input now correctly renders more than 2 lines
      • Show "typing" indicators in the chat page header
      posted in App Development
      brenno.almeidaB
      brenno.almeida
    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      @sahirul the ability to login with phone number is added in the latest alpha

      posted in App Development
      brenno.almeidaB
      brenno.almeida
    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      @pparent Thanks for the feedback, 100% agree with you. I think Whatsnew will always be ahead in terms of features, the goal of this project is to have a more "native" chat experience, specially while we don't have Mir 2 in stable branch.

      There's still a ton of work to be done, as you noticed. Need to support all message types, improve the performance and usability of the pages and decide on which features from whatsapp web implement here. My goal is to have the essentials to have a good chat experience in UT, this will stay in alpha for a while 🙂

      posted in App Development
      brenno.almeidaB
      brenno.almeida
    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      New alpha with more quality of life features:

      https://github.com/brennoflavio/greenline/tags

      • Integration with lock screen with number of messages read [needs qa]
      • Full background sync, faster startup times
      • Tapping on a notification opens the chat of that notification
      • Support for messages that are only links
      • Call notifications
      • Only notify the last message of a chat room
      • Clear notification for the chat room once chat is opened
      • Notification badge support (unread count in the side bar)
      • Messages from groups should notify the group name in the title, not the person name [needs qa]
      posted in App Development
      brenno.almeidaB
      brenno.almeida
    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      @777X hey thanks for using the app! Feel free to report any other issues.

      The avatar sync module needs more love, currently it populates slowly as you use the app, at some point they'll will be there.

      And replies are not implemented (yet). But hopefully soon it will be implemented

      posted in App Development
      brenno.almeidaB
      brenno.almeida
    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      @ikoz said:

      @brenno.almeida said:

      as far as I know there's no such mechanisms in Ubuntu Touch for us to use.

      Have you seen the secret-tool package? It's similar to using GNOME keyring.
      You can also write your own keyring mechanism assuming your daemon starts before any app. It will store the keys in plain text when the phone is powered off and thus rely on full storage encryption. When the device boots up, the daemon will read the key from the file, store it in its memory and encrypt the file with the file's content as key. This daemon will communicate with your app via dbus or similar and send the keys only to the appropriate app id.

      I'll look into it, thanks! In an ideal scenario all 3 SQLite databases should be secured against an unconfined process. Not sure if this will be possible tho.

      posted in App Development
      brenno.almeidaB
      brenno.almeida
    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      @pparent said:

      @brenno.almeida

      Ok so another confined app does not have permission to access your messages and data, via this Unix socket?

      Confined apps cannot access files outside their specified directories (config, data, cache), so they cannot use the socket.

      posted in App Development
      brenno.almeidaB
      brenno.almeida
    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      @pparent not yet! But I can expand on this topic.

      First, the communication between go and python happens over a unix socket. This ensures that all communication is local between parts. This app does not expose your data outside the phone neither open ports (outside the WhatsApp socket). Notifications are also fully local (ubports push server is not used). But any unconfined process can access the socket and manage your account, three's no protection against that.

      Also its important to mention that your encryption keys, messages and contacts are stored as plain text in 3 SQLite databases in the app data folder. This is necessary to do e2e encrypted communication with whatsapp, and it's similar to how Whatsnew or any other Whatsapp web client works by design.

      This means that an attacker with a non root shell access in your device can steal your keys and send messages on your behalf for example. This is also true for our other Whatsapp web clients.

      On Android, the official client uses a sandboxed storage to protect those keys, so only the app or a root user can access the keys. But as far as I know there's no such mechanisms in Ubuntu Touch for us to use.

      posted in App Development
      brenno.almeidaB
      brenno.almeida
    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      Lots of changes since my original post. Some highlights:

      • Better name resolutions
      • Sync history chats
      • Fixed some bugs around logging out and disconnecting
      • Better performance when loading many chats
      • Add video and image messages
      • Sticker support
      • Better avatar sync and resolution
      • Swipe to copy messages
      • Reply messages are shown
      • Faster startup sync

      Latest release: https://github.com/brennoflavio/greenline/releases

      posted in App Development
      brenno.almeidaB
      brenno.almeida
    • RE: [Alpha] Greenline - A qml Whatsapp client for Ubuntu Touch

      @sahirul not yet, but is planned. For now, qr code only

      posted in App Development
      brenno.almeidaB
      brenno.almeida