Privacy Policy
Effective Date: September 2, 2026 ยท App version 1.0.11

Privacy Policy

This Privacy Policy describes how WiFi File Transfer: FTP Server ("the App", "we", "our") handles information when you use the App on your Android device. We are committed to being fully transparent โ€” this policy is written in plain language, not legal boilerplate.

Short version: The App has no accounts, no servers of ours, no ads, and no analytics. Your files, contacts, and settings stay on your device or move directly to another device you choose on your own local network. We never receive any of it. The only connection the App makes outside your local network is to Google Play, so it can offer you an app update.

1. Who We Are

WiFi File Transfer: FTP Server is an independent Android application published by HiveCrawl Studio. If you have any questions about this policy, you can contact us at:
Email: hivecrawlstudio@gmail.com

2. What the App Does

WiFi File Transfer: FTP Server turns your Android device into a local file server and a device-to-device transfer tool. All of its features work over your local Wi-Fi network only.

2.1 FTP & browser file server

When the server is running, other devices on the same Wi-Fi network can connect to browse, download, and upload files โ€” using either an FTP client application or a standard web browser. The App also includes a built-in browser tab (an Android WebView) that simply opens the App's own server page at http://127.0.0.1 on your device. It does not browse the internet.

2.2 Sharing files into the App

The App can receive files shared from other apps on your device via the Android share sheet. Shared files are held in memory and made available as temporary download links on your local network only; they are never written to persistent storage and are cleared as soon as the transfer completes or the App is closed.

2.3 Clone (phone-to-phone transfer)

Clone copies content from one phone to another over the same Wi-Fi network โ€” directly, phone to phone, with no cloud step and no server of ours in between. You pick which of these buckets to send: Photos, Videos, Audio, Documents, Apps, and Contacts. Nothing is scanned or sent until you select a bucket and start a transfer, and the two phones must first be paired (see section 2.4).

2.4 Device Link (pairing & remote browsing)

Device Link lets two phones running the App find each other on the same Wi-Fi network and, once paired, browse and pull files from each other. Discovery uses Android's built-in mDNS (NsdManager) and advertises only the device model name and a short certificate fingerprint on the local network โ€” never file names or file contents.

2.5 Network discovery (SSDP / UPnP)

So that Windows "Network" and similar file explorers can see your phone, the App advertises the server over SSDP/UPnP on the local network. The advertisement contains the device name you see in the App, the server URL, and a stable identifier (a UUID derived by hashing Android's ANDROID_ID so the same phone keeps the same entry between restarts). This advertisement is broadcast on your local network only and is never sent to us or to any third party. It stops when the server stops.

2.6 Automation

Automation apps such as Tasker or MacroDroid can send broadcast intents to start or stop the server. No data is exchanged in these intents beyond the start/stop command itself.

3. Data We Do Not Collect

We do not collect, store, transmit, or have access to any of the following:

The App contains no advertising SDK, no analytics SDK, no crash reporting SDK, and no third-party tracking of any kind. We operate no servers and receive no data from the App whatsoever.

4. Data Stored Locally on Your Device

The App stores the following settings locally on your device using Android's DataStore, plus two small app-private files used by Device Link. None of this data ever leaves your device:

ItemPurposeLeaves Your Device?
FTP port numberConfigures which port the FTP server listens onNo
FTP username & passwordAuthenticates FTP and browser connections on your local networkNo
Anonymous access toggleControls whether unauthenticated connections are allowedNo
Home directory pathThe folder on your device that is shared over the networkNo
HTTP browser toggle & portEnables browser-based file access and sets its portNo
FTPS (TLS) toggleEnables encrypted FTP connectionsNo
Auto-start on boot toggleControls whether the server starts when the device restartsNo
Auto-start on Wi-Fi / auto-stop on disconnect togglesStarts or stops the server with Wi-Fi stateNo
Write permission toggleControls whether clients can upload or delete filesNo
Additional user accountsUsernames, passwords, and per-user permissions for extra FTP accountsNo
Theme preferenceLight / dark / system appearanceNo
Preferred open protocolWhether network links open as FTP or HTTPNo
Max concurrent transfersLimits simultaneous downloads for stabilityNo
Clone tips shown / tab seen flagsRemembers that first-run tips were already displayedNo
Link discoverable toggleControls whether this phone announces itself to paired devicesNo
Link browsing allowed toggleControls whether a paired phone may browse this oneNo
Link trust list (JSON file, app-private)Remembers paired devices: name, model, certificate fingerprintNo
Link identity keystore (PKCS#12, app-private)The self-signed TLS certificate and key used to encrypt Link connectionsNo

These settings are explicitly excluded from Android cloud backup (as declared in backup_rules.xml) and from device-to-device transfer (as declared in data_extraction_rules.xml). They are never sent to Google or any other service.

Transfer logs (file name, client IP address, file size, timestamp) are kept in memory only for display in the Logs tab. They are cleared when the App is closed or when you tap "Clear". They are never written to persistent storage and never transmitted anywhere.

5. Permissions Explained

The App requests the following Android permissions. Here is exactly why each is needed:

PermissionWhy It Is Needed
INTERNET Required to open server sockets that accept connections from other devices on your local Wi-Fi network, and to reach Google Play for the in-app update check (section 7). It is not used to send your data anywhere.
ACCESS_WIFI_STATE
ACCESS_NETWORK_STATE
Used to read your device's local IP address so it can be displayed in the app (e.g. ftp://192.168.1.5:2221) and to start or stop the server when Wi-Fi connects or disconnects.
CHANGE_WIFI_MULTICAST_STATE Holds a multicast lock so SSDP/UPnP announcements and mDNS device discovery can be sent and received on your local network. Multicast is local-only traffic.
READ_EXTERNAL_STORAGE (Android 12L and below)
WRITE_EXTERNAL_STORAGE (Android 10 and below)
MANAGE_EXTERNAL_STORAGE (Android 11+)
Required to read and serve your files over FTP and HTTP, to save uploaded files, and to read and write files during a Clone or Link transfer. Without storage access, the App cannot function. Files are only accessed when a transfer you started requires them. No files are sent to any external server.
READ_CONTACTS Requested only when you choose the Contacts bucket in Clone. It is used to export your address book to a vCard file that is sent to the phone you are cloning to, and nowhere else. If you never use that bucket, the permission is never requested and your contacts are never read. Declining it leaves every other feature working.
CAMERA Optional. Used only to scan the pairing QR code shown on the other phone's screen. The camera preview is decoded on-device in real time; no photo or video is saved, stored, or transmitted. Pairing can also be completed without the camera by typing the on-screen code.
FOREGROUND_SERVICE
FOREGROUND_SERVICE_CONNECTED_DEVICE
FOREGROUND_SERVICE_DATA_SYNC
The file server and Device Link run as a connected-device foreground service; a Clone transfer runs as a data-sync foreground service because it can take tens of minutes. A persistent notification is shown while either is running, as required by Android.
WAKE_LOCK Keeps the CPU awake during a long Clone transfer so a copy does not stall when the screen turns off. Released as soon as the transfer ends.
RECEIVE_BOOT_COMPLETED Only used if you enable the "Auto-start on Boot" setting. When enabled, the App listens for the device boot event to start the server automatically. If this setting is disabled, this permission is not used.
POST_NOTIFICATIONS Required on Android 13 and above to show the foreground service and transfer progress notifications.

6. File Access

The App requires broad storage access (MANAGE_EXTERNAL_STORAGE on Android 11+) because its core function is to serve and transfer your files. Specifically:

7. Network Traffic

Essentially all network communication of this App is strictly between your Android device and other devices on your local network only: FTP, HTTP, Clone, Device Link, SSDP/UPnP, and mDNS traffic never leaves your Wi-Fi.

The only exceptions, listed in full:

Beyond those, the App does not connect to any server operated by us or any third party, and sends no telemetry, analytics, or diagnostic data.

8. Third-Party Libraries

The App uses the following third-party components:

Apache FTP Server (Apache MINA)
Used to implement the FTP server protocol.
License: Apache License 2.0
Does not collect any data and has no network connectivity of its own.

ZXing & ZXing Android Embedded
Used to generate the server/pairing QR codes and to decode a QR code from the camera preview.
License: Apache License 2.0
Operates entirely offline; camera frames are decoded in memory and discarded.

Bouncy Castle (bcpkix)
Used to generate the self-signed TLS certificates for FTPS and for Device Link.
License: MIT License
Certificate generation happens entirely on-device. No data is transmitted externally.

Google Play In-App Update Library (Play Core)
Used to offer you an update to the App from Google Play.
License: Android Software Development Kit License
This is the only component that communicates outside your local network. It communicates with Google Play only, under Google's Privacy Policy. It does not give us any information about you.

AndroidX / Jetpack Compose & Instrument Sans / JetBrains Mono fonts
UI toolkit and typefaces bundled inside the App.
Licenses: Apache License 2.0 (AndroidX) and SIL Open Font License 1.1 (fonts)
Fonts are packaged in the APK; no font is fetched from the internet and no data is sent.

None of these components include advertising or analytics in this App. The App does not include Google AdMob, Firebase, Facebook SDK, or any other third-party tracking or advertising SDK.

9. Data Sharing and Sale

We do not sell, rent, or share any user data โ€” because we never receive any. When you use Clone or Device Link, data moves directly from your phone to the other phone you selected and confirmed; it does not pass through us or any cloud service. You are the only party deciding what moves and to which device.

10. Children's Privacy

WiFi File Transfer: FTP Server does not collect any personal data from any user, including children under the age of 13. The App is a local network utility and has no user accounts, registration, or data collection of any kind.

11. Security

The App operates on your local network, so your files are only reachable by devices connected to the same Wi-Fi network as your phone. Device Link connections are additionally encrypted with TLS and restricted to devices you have explicitly paired. We recommend:

12. Your Choices and Controls

13. Changes to This Policy

If we update this Privacy Policy, we will post the new version at this URL and update the Effective Date at the top. Since the App does not collect any user contact information, we cannot notify users directly โ€” please check this page periodically if you have concerns.

14. Contact Us

If you have any questions or concerns about this Privacy Policy or the App's data practices, please contact us:

App Name: WiFi File Transfer: FTP Server
Package: com.hivecrawlstudio.wififtpserver
Developer: HiveCrawl Studio
Email: hivecrawlstudio@gmail.com