DEV Community

PureHub
PureHub

Posted on

Building a safer offline Android screen recorder in PureHub beta.33

Building a safer offline Android screen recorder in PureHub beta.33

Screen recording looks simple from the UI, but Android apps must manage user consent, encoder dimensions, long-running service state, and incomplete MediaStore files correctly. PureHub beta.33 focuses on those details while keeping the app offline and ad-free.

What changed

  • Mini-app headers now show the correct tool name instead of a blank title.
  • Screen Recorder now offers a quick path and an optional Pro mode.
  • Pro presets cover efficient 720p/30 fps, balanced 1080p/30 fps, and smooth 720p/60 fps recording.
  • Recording state survives UI recomposition and navigation.
  • Pause, resume, and stop actions are available from both the app and notification.
  • Virtual displays and file descriptors are released reliably.
  • Failed or too-short captures no longer leave unusable pending media behind.

Privacy and verification

PureHub records to local storage after Android's system consent prompt. The release APK requests no INTERNET permission. For beta.33, both Android variants passed unit tests, lint, release builds, dependency checks, and the offline permission gate. I also verified the published ARM64 checksum and signing certificate before installing it on a physical Android device.

Try it

Download PureHub beta.33 and inspect the source. Feedback about recording quality, device compatibility, and the new preset flow is especially useful.

PureHub is free, open source, and has no ads or trackers. Development and release QA used AI-assisted tooling under maintainer review.

Top comments (2)

Collapse
 
superfunicular profile image
Super Funicular

The no-INTERNET-permission line is the part of this I'd build on, because it's the one claim a reader can check without trusting you. Two things that make it hold up.

A dependency can put INTERNET back through manifest merge without you ever touching your own manifest, so the artifact that matters is the merged manifest in the release build, not the source one. Reading the output of processReleaseManifest, or aapt dump permissions on the signed APK, catches a transitive add that a grep of app/src won't.

On pending media: a failed or too-short capture is one way to strand an IS_PENDING row, but process death mid-recording is the other, and it never runs your cleanup path at all. A sweep at startup over the pending entries your own app owns covers both cases without needing to know why the last one died.

Does the offline permission gate assert against the merged manifest or the source manifest?

Collapse
 
purehub profile image
PureHub

Yes - the offline gate runs aapt dump permissions against every final signed release APK, so it checks the merged artifact rather than only the source manifest.

You were also right about hard process death: normal service cleanup cannot be relied on after the process is killed. PureHub beta.34 now performs process-start recovery that only removes abandoned IS_PENDING video rows owned by the PureHub package and matching its Movies/PureHub recording path and filename pattern.

Thanks for the careful review and for catching that gap.