Skip to content

PlainApp: Phone Web Portal

F-Droid

Open source

Manage your phone on the web! Access files, contacts, videos, music & more.

Version
3.1.16
Size
79.7 MB
Updated
Jun 9, 2026
Get from Download APK (v3.1.16)
Signing certificate on record

About this app

**PlainApp** is a free, open-source Android app that turns your phone into a self-hosted management hub you can access from any web browser on the same network — no accounts, no cloud, no subscriptions. Whether you need to transfer files, read SMS, browse photos, or mirror your screen, PlainApp puts full control back in your hands.

## Why PlainApp?

Most phone-management tools either route your data through their own servers, lock features behind subscriptions, or plague you with ads. PlainApp is different:

- **100% local** — your data never leaves your network - **End-to-end encrypted** — every connection is secured with TLS + XChaCha20-Poly1305 - **Completely free and ad-free** — no purchases, no upsells, ever - **Fully open-source** — audit the code, build your own binary, or contribute

## Features

### 🌐 Web-Based Phone Management Open a browser on any desktop or laptop connected to the same Wi-Fi network and get a full dashboard to manage your Android device — no app installation required on the computer side. Supports PWA so you can pin it to your desktop like a native app.

| Category | What you can do | |---|---| | **Files** | Browse internal storage, SD card, and USB drives; upload, download, rename, delete | | **Media** | View and manage photos, videos, and audio; stream them directly in the browser | | **Contacts** | View, search, and manage your contacts | | **SMS & Calls** | Read messages and call logs; send SMS from your desktop | | **Apps** | List installed apps and export APKs | | **Notifications** | Mirror phone notifications to the browser in real time | | **Screen Mirror** | Live-stream the phone screen to the browser with audio and remote control support | | **Device Info** | Check battery, storage, network, and system details |

### 📱 Built-in Android Tools PlainApp is also a capable standalone app — not just a server:

- **Markdown Notes** — write and organize notes with a clean editor - **RSS Reader** — follow your favorite websites with a distraction-free reader - **Video & Audio Player** — full-featured media player with playlist support - **TV Cast** — cast media to any DLNA/Chromecast-compatible TV - **Peer-to-Peer Chat & File Sharing** — share files and messages directly between devices without a server - **Pomodoro Timer** — stay focused with a built-in work timer - **Sound Meter** — measure ambient noise levels in real time

### 🔒 Privacy & Security - No Firebase Analytics or Messaging — crash reporting (via Firebase Crashlytics) is optional and opt-in - Zero data sent to any third-party server - All traffic between phone and browser is encrypted (TLS + XChaCha20-Poly1305) - No account registration required

Github: https://github.com/plainhub/plain-app Reddit: https://www.reddit.com/r/plainapp

Licensed under AGPL-3.0-only, by SmartCoding.

OfficialSignature VerifiedOpen Source

What's New in v3.1.16

Imported from the F-Droid repository index.

Version history

v3.1.16Latest
Signature continuous

Jun 9, 2026 · 79.7 MB · Android API 2836 · code 598

Imported from the F-Droid repository index.

SCHEDULE_EXACT_ALARMWAKE_LOCKREAD_PHONE_STATEREAD_PHONE_NUMBERSSYSTEM_ALERT_WINDOWINTERNETACCESS_NETWORK_STATECHANGE_NETWORK_STATEACCESS_WIFI_STATECHANGE_WIFI_STATECHANGE_WIFI_MULTICAST_STATEMULTICASTRECORD_AUDIOREAD_SMSSEND_SMSREAD_CONTACTSWRITE_CONTACTSREAD_CALL_LOGWRITE_CALL_LOGCALL_PHONEREQUEST_DELETE_PACKAGESQUERY_ALL_PACKAGESMANAGE_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGEREQUEST_IGNORE_BATTERY_OPTIMIZATIONSFOREGROUND_SERVICEFOREGROUND_SERVICE_MEDIA_PLAYBACKFOREGROUND_SERVICE_MEDIA_PROJECTIONFOREGROUND_SERVICE_SPECIAL_USEBLUETOOTHBLUETOOTH_ADMINBLUETOOTH_CONNECTBLUETOOTH_SCANCAMERAACCESS_FINE_LOCATIONACCESS_COARSE_LOCATIONPOST_NOTIFICATIONSREQUEST_INSTALL_PACKAGESFOREGROUND_SERVICE_DATA_SYNCRECEIVE_BOOT_COMPLETEDcom.ismartcoding.plain.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSIONREAD_EXTERNAL_STORAGE

SHA-256 6d98ab768c7fa2045e06ae6d0e9156a24d173611a6ca81bfff7172bb03d9b82d

v3.1.16
Signature continuous

Jun 9, 2026 · 73.3 MB · Android API 2836 · code 597

Imported from the F-Droid repository index.

SCHEDULE_EXACT_ALARMWAKE_LOCKREAD_PHONE_STATEREAD_PHONE_NUMBERSSYSTEM_ALERT_WINDOWINTERNETACCESS_NETWORK_STATECHANGE_NETWORK_STATEACCESS_WIFI_STATECHANGE_WIFI_STATECHANGE_WIFI_MULTICAST_STATEMULTICASTRECORD_AUDIOREAD_SMSSEND_SMSREAD_CONTACTSWRITE_CONTACTSREAD_CALL_LOGWRITE_CALL_LOGCALL_PHONEREQUEST_DELETE_PACKAGESQUERY_ALL_PACKAGESMANAGE_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGEREQUEST_IGNORE_BATTERY_OPTIMIZATIONSFOREGROUND_SERVICEFOREGROUND_SERVICE_MEDIA_PLAYBACKFOREGROUND_SERVICE_MEDIA_PROJECTIONFOREGROUND_SERVICE_SPECIAL_USEBLUETOOTHBLUETOOTH_ADMINBLUETOOTH_CONNECTBLUETOOTH_SCANCAMERAACCESS_FINE_LOCATIONACCESS_COARSE_LOCATIONPOST_NOTIFICATIONSREQUEST_INSTALL_PACKAGESFOREGROUND_SERVICE_DATA_SYNCRECEIVE_BOOT_COMPLETEDcom.ismartcoding.plain.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSIONREAD_EXTERNAL_STORAGE

SHA-256 123cb1ee99a03a2738855642aaaeed40095758c586945a906286c665dae58d04

v3.1.16
Signature continuous

Jun 9, 2026 · 63 MB · Android API 2836 · code 596

Imported from the F-Droid repository index.

SCHEDULE_EXACT_ALARMWAKE_LOCKREAD_PHONE_STATEREAD_PHONE_NUMBERSSYSTEM_ALERT_WINDOWINTERNETACCESS_NETWORK_STATECHANGE_NETWORK_STATEACCESS_WIFI_STATECHANGE_WIFI_STATECHANGE_WIFI_MULTICAST_STATEMULTICASTRECORD_AUDIOREAD_SMSSEND_SMSREAD_CONTACTSWRITE_CONTACTSREAD_CALL_LOGWRITE_CALL_LOGCALL_PHONEREQUEST_DELETE_PACKAGESQUERY_ALL_PACKAGESMANAGE_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGEREQUEST_IGNORE_BATTERY_OPTIMIZATIONSFOREGROUND_SERVICEFOREGROUND_SERVICE_MEDIA_PLAYBACKFOREGROUND_SERVICE_MEDIA_PROJECTIONFOREGROUND_SERVICE_SPECIAL_USEBLUETOOTHBLUETOOTH_ADMINBLUETOOTH_CONNECTBLUETOOTH_SCANCAMERAACCESS_FINE_LOCATIONACCESS_COARSE_LOCATIONPOST_NOTIFICATIONSREQUEST_INSTALL_PACKAGESFOREGROUND_SERVICE_DATA_SYNCRECEIVE_BOOT_COMPLETEDcom.ismartcoding.plain.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSIONREAD_EXTERNAL_STORAGE

SHA-256 ae14e7bf480f3119b072b41cd1430201d9da66caa267d201f4fe35874c40f215

Will it run on your device?

CompatibilityLikely to run

74%

  • Targets newer Android builds, so legacy devices may be excluded.
  • Multiple CPU architectures are covered.
  • Aligned with the latest Android target SDK expectations.
What changed in this release
Size delta
+6.4 MB
Added permissions
None
Removed permissions
None

Installation Guide

1

Open Settings on your Android device

2

Go to Security → Unknown sources (or Install unknown apps)

3

Enable "Allow from this source" for your browser or file manager

4

Open the downloaded APK file from your Downloads folder

5

Tap "Install" and wait for installation to complete

6

Launch the app from your home screen

Make sure to re-enable Unknown Sources restrictions after installation for security.

How to install this safely

How to verify the file you downloaded

Before you install anything, confirm the file is the one described here. On a computer, run shasum -a 256 your-download.apk (macOS or Linux) or certutil -hashfile your-download.apk SHA256 (Windows), then compare the output character-for-character with the SHA-256 on this page. If a single character differs, the file is not the build we recorded — delete it.

What the signing certificate proves

Every Android app is signed with a private key that only its developer holds. The fingerprint on this page is a hash of the matching public certificate, and it proves continuity rather than identity: it tells you a build came from whoever signed the earlier ones. Android enforces this at install time — if a package claiming to be com.ismartcoding.plain is signed with a different key, the system will refuse to install it over your existing copy. A fingerprint that changes between releases is worth pausing on, because a repackaged app that has been modified by someone else cannot keep the original signature.

How to roll back to an earlier version

If the current release misbehaves, 3.1.16 is the last build before it. Android will not install an older version code over a newer one, so you must uninstall PlainApp: Phone Web Portal first — which clears its local data unless you have a backup. Reinstall the older APK only if its signing fingerprint matches the build you already trust, and check the API range: an older release may target an Android version your device has moved past.

Why we list sources instead of hosting everything

The official store channel is almost always the right choice: it updates automatically and carries the publisher's own distribution guarantees. A direct APK is useful when a device has no store access, when a rollout has not reached your region, or when you need a specific version — and only when the publisher has authorized that copy. APKBrowse does not list pirated, cracked, or unauthorized rebuilds of PlainApp: Phone Web Portal, and a listing is removed when the evidence for it stops holding up.

Get PlainApp: Phone Web Portal

Every source we list for com.ismartcoding.plain is legality-reviewed. Pirated or cracked builds are never offered.

Other sources

F-Droid listing

official

F-Droid builds this app from source and signs it. This is its official listing, with older builds and full release notes.

Source code

verified publisher

The upstream repository this build is compiled from.

We check legality and signature continuity, but device behaviour still varies. Install at your own discretion.

App Information

Developer
F-Droid
Category
Media Audio
Android
9.0+
Architectures
x86_64
Version
3.1.16 (code 598)
Size
79.7 MB
Updated
Jun 9, 2026
Package name
com.ismartcoding.plain

Security Verification

File integrity
SHA-256 recorded
Signing certificate
Fingerprint on record
Official source
Download APK (v3.1.16)

We record provenance; we do not run malware scans. Verify the hash yourself before installing.

SHA-256 Hash

6d98ab768c7fa2045e06ae6d0e9156a24d173611a6ca81bfff7172bb03d9b82d

Signing certificate

c1314fbbfbdde78de3e8e60dea3e0fb8d8ea2103e9c7951043bde074bf1eaf2d

Permissions Required

What each permission lets PlainApp: Phone Web Portal do. A highlighted one is worth a second look — not necessarily wrong, just worth asking whether this app needs it.

SCHEDULE_EXACT_ALARMSchedule tasks to run at an exact time.
WAKE_LOCKKeep the device awake, e.g. to finish a download or play media.
READ_PHONE_STATERead phone status and identity, such as the current call state.
READ_PHONE_NUMBERS
SYSTEM_ALERT_WINDOWDraw over other apps — used for overlays, and by some malware to trick you.
INTERNETSend and receive data over the internet.
ACCESS_NETWORK_STATECheck whether the device is online and on what kind of connection.
CHANGE_NETWORK_STATE
ACCESS_WIFI_STATESee Wi-Fi status and the network it is connected to.
CHANGE_WIFI_STATETurn Wi-Fi on or off and connect to networks.
CHANGE_WIFI_MULTICAST_STATE
MULTICAST
RECORD_AUDIORecord audio with the microphone.
READ_SMSRead your text messages.
SEND_SMSSend text messages, which can cost money.
READ_CONTACTSRead your contacts.
WRITE_CONTACTSAdd or change your contacts.
READ_CALL_LOGRead your call history.
WRITE_CALL_LOG
CALL_PHONE
REQUEST_DELETE_PACKAGES
QUERY_ALL_PACKAGESSee the full list of other apps installed on the device.
MANAGE_EXTERNAL_STORAGERead and change almost all files on the device.
WRITE_EXTERNAL_STORAGEWrite files to shared storage.
REQUEST_IGNORE_BATTERY_OPTIMIZATIONSAsk to keep running without battery limits.
FOREGROUND_SERVICEKeep running in the background with a visible notification.
FOREGROUND_SERVICE_MEDIA_PLAYBACKKeep playing audio or video in the background.
FOREGROUND_SERVICE_MEDIA_PROJECTION
FOREGROUND_SERVICE_SPECIAL_USERun a background service for a purpose the developer declares.
BLUETOOTHConnect to paired Bluetooth devices.
BLUETOOTH_ADMINDiscover and pair Bluetooth devices.
BLUETOOTH_CONNECTConnect to Bluetooth devices.
BLUETOOTH_SCANScan for nearby Bluetooth devices.
CAMERAUse the camera to take photos or video.
ACCESS_FINE_LOCATIONRead your precise location.
ACCESS_COARSE_LOCATIONRead your approximate location.
POST_NOTIFICATIONSShow notifications.
REQUEST_INSTALL_PACKAGESPrompt to install other apps.
FOREGROUND_SERVICE_DATA_SYNCRun a background service to sync data.
RECEIVE_BOOT_COMPLETEDStart automatically when the device finishes booting.
com.ismartcoding.plain.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
READ_EXTERNAL_STORAGERead files in shared storage.

Previous Versions

Signature verified

The signing certificate fingerprint for this release is on record, so a build that does not match it did not come from this publisher.

More Media Audio apps

More from F-Droid

Report a problem with this listing

A listing is only as good as its corrections. If a source is broken, a signature looks wrong, or this app should not be here, tell the moderation team.

Report a problem