Privacy policy
This is the privacy policy for the Android app Octi - Multi-Device Sync (package
eu.darken.octi), written and published by Matthias Urhahn (darken).
Last updated: 22 September 2026
Summary
Octi lets you check your other Android devices’ battery, network, clipboard and installed apps, and send files between them. You choose how the devices exchange this data.
- Octi requires no sign-up, password or email address. An Octi Server account is a random identifier created by the app, not a profile about you.
- Octi contains no ads, no analytics SDK and no tracking of any kind.
- I do not collect, sell, rent or share your personal information.
- Your device data leaves your device over the sync service you choose, and only so that your own other devices can read it. The one request that goes elsewhere is the public IP lookup described below.
If something here is unclear, send a quick mail and I will answer it. My underlying privacy principle is the Golden Rule.
What Octi reads from your device
Octi is built from modules. Battery, connectivity, WiFi, installed apps, clipboard and file transfer each have an on/off switch in the app’s settings. Basic device info is always part of a sync, because without it the other devices cannot tell which device they are looking at.
| Module | What it reads and syncs |
|---|---|
| Battery | Charge level, charging state and speed, time estimates, and battery health |
| Connectivity | Connection type, your local and public IP address, gateway and DNS servers |
| WiFi | Network name (SSID) and signal quality |
| Clipboard | Only text you explicitly send with the share action or the clipboard widget. Octi does not watch your clipboard in the background. |
| Installed apps | Which apps are installed, with their versions and install times |
| Device info | A device ID generated by Octi, a device name you can set, model and device type, Android version, uptime, and the Octi version |
| File transfer | Only files you explicitly pick to send, with their name, type and size |
This information is shown on your own devices, and nowhere else. It is not sent to me, and no part of it is used to build a profile, to advertise, or to train anything.
Turning a module off stops it collecting and syncing new data. Transfers and deletions for files already shared continue in the background until they finish.
How your devices exchange this data
Octi shares data between your own devices, not with other users. Each device writes its data to Octi Server or Google Drive for your other devices to read. You choose which service each device uses.
Octi Server
Octi Server is an open-source sync server. I run one, and you may also host your own.
Module data and transferred files are encrypted on your device with AES-256 authenticated encryption before they are uploaded. The encryption key is generated on your device and travels between your devices in the QR code you scan when linking them. It is never sent to the server, so the server, and therefore I, cannot read the contents of your synced data.
The following is not encrypted, so the server can read it:
- Your account and device identifiers, which are random values generated by the app.
- Details sent with each request as HTTP headers: your Octi version, the platform (
android), your device model, and which sync protocol features your version supports. - Access times and IP addresses, stored temporarily to limit how often devices can make requests and to block abuse.
Creating an account requires no email address, no password and no personal details.
You can delete everything the server holds for you from inside the app, by deleting your account. Unused data is also removed on its own: a device that has not contacted the server for 90 days is deleted together with its synced data, and an account that is left with no devices is deleted too.
Google Drive
If all your devices are signed in to the same Google account, Octi can use Google Drive instead of a server. See Google user data below for the full detail of what this involves.
Data stored this way is not end-to-end encrypted. It is held in Drive’s hidden application data folder, which only Octi can access, and it is protected by your Google account rather than by a key only your devices know. If you sync over Google Drive, you and Google can access that data. I cannot.
Public IP address lookup
The connectivity module shows your device’s public IP address. A device cannot determine its own public address by itself, so it asks an Octi Server. Any Octi Server you have configured is asked first, and the default Octi Server that I run is always kept as a last fallback, including when you have configured your own.
The server sees your public IP address when it answers the lookup. Nothing else is recorded for it. Turning off the connectivity module stops these requests.
Google user data
This section covers Octi’s use of Google account data and the Google Drive API. It applies only if you connect a Google account for Drive syncing. If you only use Octi Server, Octi requests no Google data at all.
Which permissions Octi requests, and why
| OAuth scope | What Octi does with it |
|---|---|
https://www.googleapis.com/auth/drive.appdata |
Reads and writes the device state and transferred files your other devices need, inside Drive’s hidden application data folder. This folder is created for Octi, is not visible in your Drive file list, and cannot be read by other apps. |
openid, email |
Reads the account ID and email address of the account you picked, so the app can label it in the account list and check that every device is linked to the same account. |
Octi requests no other scope. It cannot list, open, create or delete your ordinary Drive files,
documents, photos or folders, and it never asks you for that permission. The drive.appdata scope
grants access to Octi’s own hidden folder only.
What is stored, where, and for how long
- The synced device state and any files you send live in the application data folder of your own Google Drive. Device state stays until Octi replaces it with newer state. Shared files expire 48 hours after you share them, and are cleaned up then or when you delete the share in the app.
- The account ID and email address are stored locally on your device, in Octi’s private app storage, so that the app can show you which account it is connected to. They are not uploaded anywhere and are never sent to me. Syncing over Google Drive involves no Octi account and no server of mine. (The connectivity module separately asks an Octi Server for your public IP address, as described above, but that request carries no Google data.)
- Access tokens let Octi prove to Google that it has permission to use your account. Google Play services obtains and refreshes them on your device. Octi sends them only to Google’s own APIs, does not save them itself, and never sends one to me or to any third party.
Sharing
Google user data obtained through these scopes is not shared with anybody. It is not sent to me, to an analytics provider, to an advertiser, or to any other third party. The only parties involved are your devices and Google.
One exception is under your control: a debug log that you generate and share yourself can contain your Google account ID and the email address of the connected account.
Removing it
- Reset, on the Google Drive entry in Octi’s sync settings, deletes the synced device state held in the application data folder, while leaving the device signed in. Files you transferred are stored separately and are not covered by it; delete those from the app’s file list, or let them expire after 48 hours.
- Disconnect, on the same screen, signs this device out, deletes this device’s synced state, and removes the locally stored account ID and email address.
- Disconnecting does not withdraw the permission you granted. Revoke Octi’s access to your Google account at your Google account’s permission page.
- Uninstalling Octi removes all data Octi held on that device.
Limited Use
Octi’s use and transfer of information received from Google APIs to any other app will adhere to the Google API Services User Data Policy, including the Limited Use requirements.
Octi does not use or transfer Google user data for advertising, sell it, or allow anyone other than you to read it.
Android permissions
Location
Viewing information about your current WiFi network requires location permission
(ACCESS_COARSE_LOCATION / ACCESS_FINE_LOCATION) on newer Android versions. Android treats
nearby WiFi networks as location data, because knowing which networks are around you narrows down
where you are.
Granting it is optional. Without it, Octi simply does not show things like the WiFi network name. Octi does not request GPS coordinates and does not track your location.
Camera
The camera (CAMERA) is used to scan QR codes, which is how two devices are linked: one device
shows a QR code holding the account data, the other scans it. Camera frames are processed on the
device to find the code and are never stored or transmitted.
Query installed apps
Showing which apps are installed on your other devices requires QUERY_ALL_PACKAGES.
This list is visible only to you, on your own devices. When you sync over Octi Server, it is encrypted both during transfer and while stored. It can also appear in a debug log that you choose to generate and share.
Debug log
A debug log is a detailed record of what Octi is doing, used to investigate problems. Recording starts only when you turn it on in the app’s settings. You can share the log file through Android’s sharing menu, for example by emailing it to me.
This file can contain sensitive information, such as your list of installed apps, your WiFi network name, or the Google account ID and email address of a connected Google account. Only share it with people you trust.
Changes to this policy
Changes are published on this page, with the date at the top updated. The revision history of this document is public in the app’s repository.
Contact
Matthias Urhahn (darken), support@darken.eu