petr.m...@gmail.com
unread,May 3, 2025, 4:09:05 PMMay 3Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Epsilon Notes
I love Epsilon Notes, it's a fantastic program and I use it for hours every day. It's very flexible and there's nothing else like it. Its ability to combine markdown and html with css and JS, linked through a preprocessor is something I can't give up. On top of that, writing mathematical formulas, musical notation, working with the filesystem offers incredible flexibility and extensibility. I am very sorry that the developer has literally abandoned this program and not made it available as open source.
But even in this state it is perfectly usable. The only danger is that it will cease to be compatible with Android. It is still compatible with version 14, but it's starting to teeter on the edge. Even though it has disappeared from Google Play, it is still possible to install it, although the user must grant a security exception when installing it. This is because it uses the original READ_EXTERNAL_STORAGE and WRITE_EXTETNAL_STORAGE permissions in file access. Brief historical development:
- Android 1-4.3: `READ_EXTERNAL_STORAGE` and `WRITE_EXTERNAL_STORAGE` allow full access to all files on external storage.
- Android 4.4: `WRITE_EXTERNAL_STORAGE` limited to custom app folders, `READ_EXTERNAL_STORAGE` works unchanged.
- Android 6.0: both permissions require user consent when running the application (runtime permission).
- Android 10: added scoped storage, but `READ/WRITE_EXTERNAL_STORAGE` still fully works if `requestLegacyExternalStorage=true` in manifest.
- Android 11: apps with targetSdk 29 and below have full access with `requestLegacyExternalStorage=true`. Apps with higher targetSdk have access limited to custom folders unless they have `MANAGE_EXTERNAL_STORAGE`.
- Android 13: older apps still use `READ/WRITE_EXTERNAL_STORAGE` without restriction. New apps must use the new `READ_MEDIA_*` permissions.
- Android 14: `READ/WRITE_EXTERNAL_STORAGE` remains fully functional for older apps (e.g. Epsilon Notes) that do not have an elevated targetSdk.
- Android 15: `READ/WRITE_EXTERNAL_STORAGE` still work for legacy apps with targetSdk < 33. Permissions remain valid, but new apps with targetSdk 35+ cannot use them.
Since the author is no longer developing the application, we have to hope that support for this interface for legacy applications is still maintained. I'm using Epsilon Notes on a Samsung Galaxy Tab 9 and I think it will last me for many years to come. At worst, I want to write an alternative to Epsilon Notes myself. But for the moment, I would like to keep Epsilon Notes alive.
I've learned how to decompile and recompile it. This allows me to keep the libraries up to date, look at some broken things, and even make some minor code modifications. The decompiled code (smali) is pretty unreadable, it's kind of like the Android assembler, incomprehensible and undocumented, but I think you can do small things there. My first goal is to add :en-home:, similar to :en-path:, which will expand to the set home folder. This will allow me to refer to the home directory and have other javascript libraries in it that I can easily refer to from anywhere. This way everyone will be able to expand the functionality of android according to their needs.
At the moment, I have managed to rename the application, i.e. to make it a different application from an android perspective. I've named it Epsilon Notes W1. This has a huge advantage, it allows me to have Epsilon Notex running twice and switch between them or have them side by side on a split screen, something I've always wanted. Like when I was programming something in Epsilon Notes in Javascript and needed to look at my notes to see how to do what, which I also had in Epsilon Notes. Now I can do it simultaneously and I'm happy.