Soduto is a KDE Connect compatible application for macOS. It allows better integration between your phones, desktops and tablets. For more information take a look at soduto.com
To install my forked version of Soduto, head to the Releases Page of this Repository and download the .dmg
file from the latest build. Then open the downloaded .dmg
file. You might get a pop-up window containing the license. Tap agree if you've read it and wish to continue. Then drag Soduto.app
onto the Applications Folder. When running for the first time, you might get a prompt saying that macOS can't run apps from an unidentified developer. Press and hold control
and click on the app icon. While still holding Control
, select Open
.
The official build of Soduto can be downloaded from soduto.com or from Soduto's official repository.
There is also a (unofficial) Homebrew formulae, that can install Soduto with such command:
brew install --cask soduto
Do note that currently there's no Homebrew formulae for my forked version and the only source is the Releases Page of this repository.
-
Clone this repo and update submodules
git clone && git submodule update --init
-
Install Carthage:
brew install carthage
-
Fetch and build frameworks using Carthage:
carthage update --platform macOS --use-xcframeworks
-
Compile universal openssl and libssh2 library using iSSH2:
./build_lib.sh
-
Open project
Soduto.xcodeproj
with XCode -
Select
Soduto
as Target. Go toSigning & Capabilities
and under theApp Groups
section, copy theApp Group key
. -
Open the
SharedUserDefaults.swift
file & paste the key in thesuiteName
variable.static let suiteName = "<your key here>"
-
Make sure you have the same
App Group key
forSoduto Share
. -
Build target
Soduto
-
To see logged messages of Release build of Soduto:
- Open
Console.app
- On Action menu select "Include Debug Messages"
- In Search field enter "process:Soduto category:CleanroomLogger"
- Open
-
To switch logging level in
Terminal.app
run command (with<level>
being an integer between 1 and 5, 1 being the most verbose and 5 - the least):defaults write com.soduto.Soduto com.soduto.logLevel -int <level>
It is highly recommended to enable verbose logging levels only during debugging as sensitive data may be logged in plain text (like passwords copied into a clipboard).
- Google introduced some privacy changes on Android 10 and higher, that doesn’t allow apps to access clipboard data, unless the app is the default input method editor (IME) or is currently in focus. This will affect seamless clipboard sync between KDE Connect and Soduto. Your clipboard will automatically sync to your other devices when you copy something on your mac, however you will have to manually tap on
Send Clipboard
in the KDE Connect app, everytime you want to sync your android's clipboard to your mac. - On Android 11 and higher, you may not be able to add the root location of your Internal Storage or your Download folder to KDE Connect's
Filesystem expose
locations due to Google's privacy changes. - The Share Extension is currently buggy & doesn't provide support for sharing multiple files yet. Soduto Share won't appear in the share menu if multiple files are selected.
- If you have
Riru
orZygisk
, you can bypass the clipboard restriction on Android 10 or higher by using Kr328's Clipboard Whitelist module and then tickKDE Connect
/Zorin Connect
from theClipboard Whitelist
app. If you're on Android 13 and the module isn’t working for you, try Xposed Clipboard Whitelist (remember to selectSystem Framework
for the module scope). You need to haveXposed Framework
for theXposed Clipboard Whitelist
module to work. - NoStorageRestrict is an
Xposed Module
that removes the restriction when selecting folders(like Internal Storage, Android, Download, data, obb) through file manager on Android 11 and higher. There is a Magisk module for this as well but I haven’t tested the Magisk Module version yet, so use it at your own risk⚠️ . - To share multiple files, use the option to
Send Files
from the menu bar app options or drag & drop multiple selected files to the menu bar icon. As of now, Soduto Share only supports sharing one file at a time.
To ask a question, offer suggestions or share an idea, please use the discussions tab of this repository.
If you spot any bugs or vulnerabilities, please create an issue. It's always a good idea to make sure there aren't any similar issues open, before creating a new one!
No, this is not the official version of Soduto. Head over to their official site or GitHub Repo for the official version.
The development for the official version seems to have been inactive for a very long time. Thus, a lot of Soduto's features were broken on recent versions of macOS. This is why, I have tried to replace some deprecated code in my repo.
The code is public, so instead of taking someone else's word for it, it's better to review it yourself if the app is safe.
The reason macOS shows a prompt saying that this app is from an unidentified developer is because I have a free Apple Developer Account and not a paid one, thus the builds of Soduto released by me is not notarized. If you build the app yourself for your own mac, you won’t get the warning. Head over to the building section to do so.
Developers can’t send an app for notarization with a free Apple Developer Account. I am a Student and developing apps for the Apple Platform is neither my job or my hobby. Neither I can or want to pay Apple, a hefty amount of $99 every year for the privilege of developing apps for their platform.
Same as above. I also don't want to have to go through their app review process.
Soduto is licensed under the GNU General Public License v3.0.