A full-featured, Photoshop-style image editor for Googlebooks.
Patchy, the open-source editor for PSD files, layers and masks, made into a
Googlebook app: one download for every Googlebook, Intel and Snapdragon.
⬇ Download Canvas.apk · Install · Privacy · What's new · Licenses
A personal passion project by Fika Labs, proudly developed on a Googlebook. Not affiliated with or endorsed by any employer, or by Patchy's author (more).
Canvas is Patchy, Seth A. Robinson's free, open-source image editor, built as an app for Googlebooks. Patchy is made for accurate PSD and PSB editing and round trips with Photoshop, and Canvas brings all of it to the Googlebook, working offline:
- Layers with masks, blend modes, groups, adjustment layers and layer styles
- Smart Objects, editable text and vector shapes
- Brushes with pressure dynamics, selections, filters, gradients and patterns
- PSD and PSB in and out with their layers; PNG, JPEG, WebP, TIFF, GIF, SVG, RAW photos and more
- JavaScript scripting, palettes, seamless tiling and much more from Patchy
Menus live in the window's title bar and open as you move along it, like on any desktop.
Patchy runs on Windows, macOS, Linux and in the browser. Canvas adds what it takes to feel at home on a Googlebook:
- A real desktop window. The menu bar sits in the title bar next to the window buttons; menus follow the pointer; dialogs have proper frames; everything stays sharp at the Googlebook's display scaling, maximized, restored or resized.
- Your files, the Android way. Open and Save use the system file picker, so Downloads, Google Drive, USB drives and other apps' storage all work. Open with and Share from Files, Photos or Chrome open images straight in Canvas. Recent files and the status bar name documents by where they live ("Download › photo.psd").
- Trackpad and touchscreen gestures: pinch to zoom and two-finger pan; a single finger still paints.
- Dark by default, with Auto (follow the system) and Light one click away in the menu bar.
- Print through Android's print dialog, including Save as PDF.
- Nothing gets lost: if Android closes Canvas in the background, unsaved documents come back the next time you open it.
Adjustments preview live on the canvas.
The Appearance menu at the end of the menu bar: Auto, Light or Dark.
Canvas isn't in a store; you install the APK from this page. It takes a minute:
- On your Googlebook, download Canvas.apk (about 170 MB; the same file works on Intel and Snapdragon Googlebooks).
- Open it: click the download in Chrome, or find Canvas.apk in the Files app under Downloads.
- The first time, Android asks whether Chrome (or Files) may install apps: choose Settings, turn on Allow from this source, go back and click Install.
- Open Canvas from the launcher. It starts on a page with New Document…, Open… and your recent files.
Updating: download the new Canvas.apk and install it over the old one. Your settings, recent files and any recovered documents stay. Every release is signed with the same key; Android refuses an update signed with another, so only install Canvas from this page.
Checking the download (optional): each release lists SHA-256 checksums in SHA256SUMS; in the
Googlebook's Linux Terminal, sha256sum Canvas.apk prints the one to compare.
- No internet permission. Canvas can't send anything anywhere, and it has no accounts, analytics or ads.
- Files only through you. It sees the documents you pick in the system file picker or send to it with Open with or Share, and nothing else of your storage. It keeps working copies of open documents (and the unsaved-work recovery) inside its own app storage.
- Uninstalling Canvas removes all of that.
- Full-screen windows: keep the menu bar clear of the system's app header (normal and maximized windows are already fine).
- Screen readers: make Canvas readable with TalkBack. Qt's accessibility bridge on Android crashed the app, so it's switched off for now.
- Open PDFs: Qt's PDF module isn't published for Android, so build it for Canvas or use Android's own PDF renderer. Exporting PDFs already works.
- A smaller download: leave out the parts of Qt that Canvas doesn't use (about 11 MB per processor type).
Ideas and bug reports are welcome in Issues. Canvas's Android parts are my work, so report bugs here rather than to Patchy.
Canvas is Patchy 1.00 (UPSTREAM), unmodified except for the small patches in
patches/ (each one explains itself), plus the Android side in android/:
an activity that puts the menu bar in the caption, turns trackpad and touch gestures into zoom and
pan, and connects Patchy to the system file picker and print dialog. It's built with Qt 6.11.3 for
Android and the Android NDK r27c.
./cv setup # Qt for Android and the NDK (once)
./cv src # Patchy at the pinned commit, with patches/ applied
./cv build universal # build/Canvas-universal.apk (Arm and Intel)
./cv install && ./cv start./cv builds on an arm64 Linux machine such as the Googlebook's Linux Terminal; the
GitHub Actions workflow builds the same universal APK on x86_64
Linux and starts it in an Android 16 emulator on every push. A version tag makes a release: GitHub
builds, signs and publishes it (docs/RELEASING.md). Developer notes are in
CLAUDE.md; the original plan and research are in docs/.
Canvas was developed on a Googlebook, in its built-in Linux Terminal:
- The Terminal's Debian VM builds everything: Patchy against Qt for Android, compiled by Debian's own clang standing in for the NDK's, then Gradle packaging and signing.
- The app goes straight onto the same laptop over Wireless debugging, where it's tested for real:
virtual mice, trackpads and touchscreens (Linux uinput) drive menus, pinches and pans, and
adbscreenshots check every change. - The demo landscape in these screenshots is drawn by a small Python script
(
tools/demo_art.py), and the screenshots come from the app itself (tools/readme_images.py).
Canvas is my personal passion project, published as Fika Labs and made in my own time. It has no affiliation with my employer: my employer didn't make, sponsor, review or endorse it, and nothing here speaks for my employer or endorses its products.
Canvas is also not made or endorsed by Seth A. Robinson, Patchy's author. All the editing power is Patchy's; the Android adaptation, and any bugs in it, are mine. If you like the editor, star Patchy and consider supporting Seth's work.
Photoshop is a trademark of Adobe; it's named only to describe file compatibility.
- Canvas's own code (the Android activity and helpers, the build tools and the patches) is under the MIT License.
- Patchy is under the MIT License, Copyright (c) 2026 Seth A. Robinson.
- Qt 6.11.3 is used under the LGPL-3.0, unmodified and dynamically linked: its libraries are separate files in the APK and can be replaced.
- Patchy's bundled libraries and fonts: LibRaw (CDDL-1.0), Little CMS, miniz and stb (MIT), Zstandard (BSD-3-Clause), and the open fonts (SIL OFL 1.1). The Android runtime adds AndroidX (Apache-2.0) and LLVM libc++ (Apache-2.0 with the LLVM exception).
THIRD_PARTY_NOTICES.md lists every component inside the app with its
full license text; the app shows it under Help › About Patchy › Licenses. Every
release carries the complete source of what's in the app:
Canvas-<version>-source.tar.gz (Canvas with the patched Patchy source, including its bundled
libraries) and the source archives of the Qt modules it ships.
With a little help from Claude.

