Android app for keeping encrypted notes

Related tags

App sealnote
Overview

SealNote

ARCHIVED! NOT MAINTAINED!

MIT licensed Build Status Coverage Status Get it on F-Droid Get it on Google Play

SealNote is simple notes/notepad application which focuses on security and simplicity. Your notes are password protected using 256-bit AES encryption. Keep sensitive information always available without compromising security!

  • Password protection (256-bit AES encryption)
  • Color code your notes
  • Password expires after configurable timeout
  • Protect content from screenshots, window switcher and other non-secure displays
  • Multi-column layout with number of columns optimized for your screen size.
  • Simple and easy to use UI/UX
  • No ads ever!

Advantage of encrypting notes

  • Keep private information such as credit cards, bank account and passwords in a single place
  • Notes are encrypted locally so no one else can access them, unless they have password.
  • Since encryption is done at storage level, access of notes directly from disk is not possible. Hence if you ever lose phone, you won't lose your notes to thieves.

Frequently Asked Questions (FAQ)

Why not use XYZ app with application lock?

Application locks prevents user from opening application, but does not secure the storage. Hence adversary can simply access the storage file directly and read the content.

If someone connects phone to computer and copies/read the data file storingall the notes, can't they read everything?

They can't. No one can, regardless how they access the data file (unless they have your secret password). The application uses a technique called encryption. Encryption uses your password to convert notes to unreadable form which makes no sense to anyone even computer. This can be converted back to readable text only using exact same password.

I forgot my password. How do I recover my notes?

You can't. Your password is not stored anywhere but in your brain. If you lose your password, you will lose all your notes. Storing password locally or on server is a security hole which should be avoided.

I can't take screenshots from app or I see blank screenshot in application switcher. What's wrong?

You probably have enabled "Secure Window" feature in SealNote settings. Disable it to be able to take screenshots or show window content in application switcher.

Contributing

Contributions are much appreciated. Please go through this section to understand how and what to contribute.

If you need ideas for contribution, please check currently open issues. If you want to propose a new feature, please open a new issue. A good feature can be something which improves some workflow or security for a user.

Tools of trade

  • Java 1.7+
  • Android API Level 19+

How to submit a pull request

  1. Clone sealnote: git clone https://github.com/vishesh/sealnote.git && cd sealnote
  2. Verify that build succeeds: ./gradlew assembleDebug
  3. Create a topic branch: git checkout -b feature
  4. Make your changes.
  5. Fork sealnote on GitHub.
  6. Add your fork as remote: git remote add <YOUR-USER> https://github.com/<YOUR-USER>/sealnote.git
  7. Push to your fork: git push -u <YOUR-USER> HEAD
  8. Open a pull request against master branch describing your changes.

Style Guide

The project follows Google's Java Style Guide with following exceptions:

  • 4 spaces indentation instead of 2.
  • Horizontal alignment is recommended if it makes code more readable.

If you see any violation, feel free to submit a patch.

Commit guidelines

There is no strict guideline on commit messages. However, whenever possible, follow Git-book's guidelines.

Documentation updates

We value documentation and believe in continuous improvement. All the documents can be considered living documents, unless stated otherwise. Please follow the general contribution guidelines when submitting a patch for documents.

Contact

Homepage: www.twistedplane.com Email : [email protected]

Send bugs to the above email with [Sealnote][BUG] tags in subject.

Comments
  • Binary libraries are preventing implementing SealNote into F-Droid's repo

    Binary libraries are preventing implementing SealNote into F-Droid's repo

    For reference: https://f-droid.org/forums/topic/sealnote/

    I was looking into apps that are stuck in the F-Droid submission queue, and wish to see where I could assist to push these processes forward.

    It seems that the binary libraries here are the issue in this case, as they are precompiled items that could pose a potential security threat in the eyes of those that appreciate full transparency. I do not know how to proceed, however, so I was hoping you may have insight!

    opened by chadcurtis 11
  • Feature request: import/export

    Feature request: import/export

    I am keeping several long-term notes that I carry across generations of devices and operating systems. For that it would be a prerequisite to have an import/export function to/from a simple and open file format, such as plaintext.

    opened by netge 4
  • Hardcoded string makes sentence untranslatable

    Hardcoded string makes sentence untranslatable

    There is a hardcoded string in file SealnoteFragment.java, method onAdapterDataSetChanged(). This makes it impossible to translate the string without touching the code. The line I'm talking about is: mEmptyGeneric.setText(getActivity().getActionBar().getTitle() + " is empty!"); https://github.com/vishesh/sealnote/blob/master/Sealnote/src/main/java/com/twistedplane/sealnote/fragment/SealnoteFragment.java#L182

    I also noticed that, for dialogues where a "Cancel" button is present, the string for "Cancel" is not read from strings.xml but uses the OS default for the selected language

    opened by Tamarindo94 3
  • Github releases for stable versions

    Github releases for stable versions

    Hello once more! It looks like SealNote has been accepted into the F-Droid repo, but they were curious about the addition of stable version tags.

    It's an argument of ease for the maintainers, as it appears that someone will have to push new versions of the app to F-Droid manually if tagged releases are not present. Would you be interested in releasing in such a fashion?

    Once more, thank you for your quick and kindly replies to these matters!

    opened by chadcurtis 3
  • FIX: App crashes when password is null or tags are retrieved from parcel FIXES #25

    FIX: App crashes when password is null or tags are retrieved from parcel FIXES #25

    • Check for null password and navigate to PasswordActivity if true. When app permissions are revoked manually, the password in the memory is lost and the app crashes.

    • Pass note to NoteContent.FromString. Tags are passed to NoteContent instead of note that cause the tags to be null when read from parcel.

    opened by rohitramkumar308 2
  • Issue #25 Fix: Bunch of reports with this stacktrace. Might be happening because we don't persist password, and during wakeup its gone from memory.

    Issue #25 Fix: Bunch of reports with this stacktrace. Might be happening because we don't persist password, and during wakeup its gone from memory.

    Issue #25 Fix: Bunch of reports with this stacktrace. Might be happening because we don't persist password, and during wakeup its gone from memory.

    Replicating: Manually revoke permissions while in the Application.

    opened by rohitramkumar308 2
  • Crashes at wakeup

    Crashes at wakeup

    Bunch of reports with this stacktrace. Might be happening because we don't persist password, and during wakeup its gone from memory.

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.twistedplane.sealnote/com.twistedplane.sealnote.NoteActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference
    	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3319)
    	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
    	at android.app.ActivityThread.access$1100(ActivityThread.java:229)
    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
    	at android.os.Handler.dispatchMessage(Handler.java:102)
    	at android.os.Looper.loop(Looper.java:148)
    	at android.app.ActivityThread.main(ActivityThread.java:7325)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference
    	at com.twistedplane.sealnote.data.Note.convertToTagSet(Note.java:118)
    	at com.twistedplane.sealnote.data.Note.readFromParcel(Note.java:97)
    	at com.twistedplane.sealnote.data.Note.<init>(Note.java:76)
    	at com.twistedplane.sealnote.data.Note$1.createFromParcel(Note.java:250)
    	at com.twistedplane.sealnote.data.Note$1.createFromParcel(Note.java:248)
    	at android.os.Parcel.readParcelable(Parcel.java:2367)
    	at android.os.Parcel.readValue(Parcel.java:2264)
    	at android.os.Parcel.readArrayMapInternal(Parcel.java:2614)
    	at android.os.BaseBundle.unparcel(BaseBundle.java:221)
    	at android.os.BaseBundle.getBoolean(BaseBundle.java:659)
    	at android.app.Activity.restoreHasCurrentPermissionRequest(Activity.java:7153)
    	at android.app.Activity.performCreate(Activity.java:6903)
    	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
    	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266)
    	... 9 more
    
    java.lang.RuntimeException: An error occured while executing doInBackground()
    	at android.os.AsyncTask$3.done(AsyncTask.java:304)
    	at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
    	at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:242)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    	at java.lang.Thread.run(Thread.java:818)
    Caused by: java.lang.IllegalArgumentException: Password null or not acceptable
    	at com.twistedplane.sealnote.data.DatabaseHandler.update(DatabaseHandler.java:84)
    	at com.twistedplane.sealnote.data.DatabaseHandler.getWritableDatabase(DatabaseHandler.java:110)
    	at com.twistedplane.sealnote.data.DatabaseHandler.getReadableDatabase(DatabaseHandler.java:115)
    	at com.twistedplane.sealnote.data.DatabaseHandler.getNotesCursor(DatabaseHandler.java:558)
    	at com.twistedplane.sealnote.data.AdapterLoader.loadInBackground(AdapterLoader.java:30)
    	at com.twistedplane.sealnote.data.AdapterLoader.loadInBackground(AdapterLoader.java:13)
    	at android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:312)
    	at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:69)
    	at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:57)
    	at android.os.AsyncTask$2.call(AsyncTask.java:292)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    	... 3 more
    
    bug urgent 
    opened by vishesh 2
  • Message of Note Saved even after note is empty

    Message of Note Saved even after note is empty

    After i trying to save an empty note it showed me the message "No point of saving empty Note" in plain text note and immediately it showed me the Note saved. I am attaching one zip in which i have attached one video. Seal Note Error.zip

    .

    bug 
    opened by chintandesai49 2
  • Don't show actual screenshot on recent apps view

    Don't show actual screenshot on recent apps view

    Sealnote provides password protection and this works as expected inside the app. BUT, if I leave the app (e.g. with the back or home button), the last view is shown in the android recent apps list. This allows to see quite a big part of the encrypted information, without ever typing any password.

    It would be nice if the app could immediately lock before going to the background, or always show a static image at recent apps view.

    I have observed the same problem also in other "password-protected" apps, like dropbox.

    opened by MakisH 2
  • Added translation files and made changes for better translatability

    Added translation files and made changes for better translatability

    -Added Italian translation for strings.xml and array.xml -Added German translation for array.xml (may need corrections) -PasswordInput.java: moved the array with the values for password strength to array.xml, so those values can be translated, too -SealnoteFragment.java: changed the hardcoded string at line 182, now it's read from strings.xml (and added the translation for the string to strings-de.xml); there is still a problem since this approach doesn't allow to correctly translate the sentence to languages where Archive and Trash require being preceded by different articles depending on the word (like Italian) or where Archive and Trash are of different genders and require the adjective for "empty" to be concordant with the gender. I thought of two possible ways to solve this, but implemented neither since you might want to decide your preferred approach: --use a different string for each folder; this would require some change in the code in order to retrieve the correct string at runtime; I can do this if you're ok with it --use only the word "empty" without naming the folder

    opened by Tamarindo94 1
  • Feature request: search within the note!

    Feature request: search within the note!

    Hi guys! Love the app, the only feature I and sure many others really need is a search function within the note to quickly locate stuff by the key word. Then I would never switch to any other app, this one would be all time best!

    opened by antiacid 1
  • Feature Request: disappearing note

    Feature Request: disappearing note

    I think It may be a good idea to introduce an option that allows the automatic deletion of some notes after a specified interval of time (for exemple 1 h, 6 h, 12 h, 1 d, 1 w etc.), in order to keep the database clean and add an additional security feature. Thanks for keep this app the best of its kind!

    opened by artoborty 0
  • Washed Out Colors

    Washed Out Colors

    Tagged color always appears washed out when a note is opened. But it looks fine in the main menu. No, there's no issue with my phone's screen.

    Do check.

    Thanks.

    opened by ghost 1
  • Backup wizard stucks at end

    Backup wizard stucks at end

    v0.8.7 #27 When I presses 'Backup' button from settings, system asks me what to do with backup file. But previously (before March update) I had an option to save .db file to local storage disk with my file explorer as file saver. It easily saves backup. But after update, system is giving only 'gmail' and other options for saving .db files without any file manager option. Even if I selects any option, only rotating indicator shows. Nothing happens. Help.

    opened by itsKV 2
  • Import Notes from Google Keep

    Import Notes from Google Keep

    Hi there,

    It would be very convenient to add an option to import notes from Google Keep, or at least an html file.

    Indeed I am currently trying to migrate from Keep to SealNotes, and copying all the notes by hand is quite painful.

    Cheers !

    opened by mhham 0
Hobby-keeping - Platform to record books that you read and games you played! Made with Kotlin and Spring Framework

Hobby Keeping API to record books that you read and games you played! Made with

William Barom Mingardi 1 Jan 29, 2022
An easy, cross-platform method of keeping track of other people's timezones

TimezoneDB TimezoneDB is an easy, cross-platform method of keeping track of others' timezones. This project is inspired by PronounDB, and we'd like to

Synapse Technologies, LLC 13 Nov 16, 2022
Poc-sealed-secrets - An alternative to store sensitive data in the template Secrets Kubernetes an encrypted way

POC Sealed Secrets Overview Proof of concept with the objective of showing an al

Cainã Ferreira da Silva 2 Jan 28, 2022
Open Super dApp - Your gateway to the new digital commons. Integrated mobile messenger, Ethereum wallet, and Web 3.0 browser built on open, decentralized, and encrypted protocols.

A fully open source, open standard, decentralized "super app" including a secure, encrypted Matrix compatible messenger based off of the Element Messenger, and an Ethereum crypto wallet and web3 browser based off of Alpha Wallet.

2Gather 6 Jul 25, 2022
Techbee e.U. 62 Jan 31, 2023
BlueNote-Android - an android app that provides simple notes and answer

BlueNote AnswerSheet Blue Note is an android app that provides simple notes and

HyukJin Kwon 0 Jan 4, 2022
A simple Notes Android app

Taskie - A Note Taking MVVM Application! Designed a simple Notes Android app following features A simple Notes Android app following features Single a

Chetan Gupta 13 Aug 1, 2022
A simple and completely secured notes android app

Notes Our very first project A simple and completely secured notes app Your data is stored in a completely isolated mechanism which minimizes the risk

karan goyal 1 Nov 14, 2021
An educational android app that provides services like notes, online videos and visualization calculator to learn and understand deep concepts of DSA.

Aldo ALDO is a free education app for the young programmers who are desiring to master the concepts of Data Structure and Algorithms. ALDO offers prac

Siddharth Singh 2 Aug 8, 2022
Note-Taking-App - Android application which can be used to take notes

Android application which can be used to take notes.The application uses Recycle

Utkarsh Panwar 0 Jan 30, 2022
Android-Study-Jams-BSIOTR - NotaRank - Easy notes taking app for students

Android Study Jams BSIOTR Notarank : Notes Taking app Problem Statements The env

null 2 Jan 10, 2022
Simple Notes app demonstrates modern Android development with Hilt, Material Motion, Coroutines, Flow, Jetpack (Room, ViewModel) based on MVVM architecture.

Simple Notes app demonstrates modern Android development with Hilt, Material Motion, Coroutines, Flow, Jetpack (Room, ViewModel) based on MVVM architecture.

Aravind Chowdary 2 Sep 3, 2022
Easy Note: Building a Notes app using MVVM, JetPack Compose with a clean multi-module architecture approach.

Easy Note Easy Note: Notes app using JetPack Compose and MVVM with a clean architecture approach. This app shows the usage of the new Navigation Archi

Akhilesh Patil 10 Dec 17, 2022
A notes taking app.

NoteDroid A simple android app written in Kotlin to take notes and be productive. This app was built under Android Study Jams 2021 for students to lea

Google Developer Student Clubs - SNU 2 Jan 10, 2022
GOD - Goal of the day is the notes app which tracks your daily tasks, most important tasks & monthly goals

GOD - Goal of the day GOD - Goals of the day Problem Statement: People always face problems in finding their goals and keeping track over a period. Th

Shubham Jitiya 1 Jan 16, 2022
Personal notes and reminders app

Notes App App de anotações e lembretes pessoais, onde é possível adicionar um título com texto de componente, mudar a cor do lembrete, editar ou delet

Ruan Ruiz 1 Mar 4, 2022
Simple Notes app, MVVM with Google Architectural components Room database, LiveData and ViewModel. Written in Kotlin using androidx libraries

Simple Notes app, MVVM with Google Architectural components Room database, LiveData and ViewModel. Written in Kotlin using androidx libraries. Implemented Firebase Auth and Database, and used Room database

Javokhir Jambulov 3 Aug 1, 2022
Is an All in One app for Muslims with lots of features such as Prayer Times & Adhan, Collections of Dhikr and Prayer sourced from Authentic Hadith, The Holy Qur'an, Qibla, Notes and many more!

DzikirQu Is an All in One app for Muslims with lots of features such as Prayer Times & Adhan, Collections of Dhikr and Prayer sourced from Authentic H

DzikirQu 112 Dec 26, 2022