Giter VIP home page Giter VIP logo

apple-notes-liberator's People

Contributors

adam-fallon avatar alexkolson avatar apoland avatar ehershey avatar gabrielreid avatar jiwon79 avatar minhoryang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

apple-notes-liberator's Issues

Look for data in all ZMERGABLEDATA columns

It appears that it can also be in ZMERGABLEDATA1 or perhaps even ZMERGABLEDATA2

If the data is in ZMERGABLEDATA1 or ZMERGABLEDATA2 and not in ZMERGABLEDATA, then it is currently not found and as such the embedded object data is null, even though data actually exists, just not in the expected column.

Can't run and successfully get past usage

I feel very defeated - it seems as if I should be able to figure it out, but I can't seem to get the command line right to pass the necessary arguments to either the JBang or the plain .jar file installation.

With the JBang installation, I've tried several different permutations of the following as the command line (Windows PowerShell v7.3.4.0):

PS C:\Downloads\Application Groups\com.apple.notes> apple-notes-liberator -j -f=.\Notes.sqlite
PS C:\Downloads\Application Groups\com.apple.notes> apple-notes-liberator -j -f=Notes.sqlite

Which gives me an error: "Unmatched argument at index 2: '.sqlite'", followed by the usage statement.

With the .jar file installation, I've tried several different variations on:

PS C:\Downloads\Application Groups\com.apple.notes> java -jar C:\Downloads\apple-notes-liberator.jar -j -f=Notes.sqlite
PS C:\Downloads\Application Groups\com.apple.notes> java -jar C:\Downloads\apple-notes-liberator.jar --json --file=Notes.sqlite

Which results in the error: "Cannot automatically find notes database, you will have to manually provide the file path via the -f (--file) option.", NOT followed by the usage statement.

What am I doing wrong?

notesCloudObject is null

I'm getting the following error when I run the jar:

Cannot invoke "de.hamburgchimps.apple.notes.liberator.entity.NotesCloudObject.getzTypeUti()" because "notesCloudObject" is null

apple-notes-liberator appears to have found the correct database since it copied notes.sqlite into the liberated-notes folder. I manually queried that database using the following command:

sqlite3 notes.sqlite "SELECT writefile('note_data.gz', zdata) FROM zicnotedata WHERE znote = 100"

The extracted data includes the text of one of my notes, so I don't think the problem is with the source data.

My configuration:

  • macOS 13.2.1
  • java "20" 2023-03-21
  • apple-notes-liberator release 1.0.3

Here's some additional information from the log:

ERROR [de.ham.app.not.lib.dat.Table] (main) Failed to parse table: java.lang.RuntimeException: no data to parse

Any ideas of what might be tripping it up?

no permissions for notes db

when I run I get:

"Cannot copy notes database, do you have read and execute permissions for /Users/myuser/Library/Group Containers/group.com.apple.notes/notestore.sqlite"

and I can't see how to even copy/modify the permissions to try using another file.

Any tips for how to get it copied?

Cannot invoke because return value of getzFolder() is null

(Thank you for working on this tool!)

I'm getting the following error when executing apple-notes-liberator:

Cannot invoke "de.hamburgchimps.apple.notes.liberator.entity.NotesCloudObject.getzTitle2()" because the return value of "de.hamburgchimps.apple.notes.liberator.entity.NotesCloudObject.getzFolder()" is null

The situation seems similar to #25: a notes.sqlite was generated and apparently filled with the correct data.

Running version 2.1.0.

Doesn't build on ARM mac

I tried fiddling with different versions of protoc, but had no luck.

This is with openjdk and maven installed by homebrew.

base) # javac -version
javac 19.0.2

(base) # mvn --version
Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8)
Maven home: /opt/homebrew/Cellar/maven/3.9.1/libexec
Java version: 19.0.2, vendor: Homebrew, runtime: /opt/homebrew/Cellar/openjdk/19.0.2/libexec/openjdk.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "13.2.1", arch: "aarch64", family: "mac"

(base) # mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------< de.hamburgchimps:apple-notes-liberator >---------------
[INFO] Building apple-notes-liberator 0.1.0
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- protoc-jar:3.11.4:run (default) @ apple-notes-liberator ---
[WARNING] Parameter 'localRepository' is deprecated core expression; Avoid use of ArtifactRepository type. If you need access to local repository, switch to '${repositorySystemSession}' expression and get LRM from it instead.
[INFO] Protoc version: 3.11.4
protoc-jar: protoc version: 3.11.4, detected platform: osx-aarch_64 (mac os x/aarch64)
protoc-jar: using default maven settings, didn't find user settings.xml
protoc-jar: cached: /var/folders/61/myftlcwd4c12gbfm5nv7zzs80000gn/T/protocjar.webcache/com/google/protobuf/protoc/maven-metadata.xml
protoc-jar: using default maven settings, didn't find user settings.xml
protoc-jar: cached: /var/folders/61/myftlcwd4c12gbfm5nv7zzs80000gn/T/protocjar.webcache/com/github/os72/protoc/maven-metadata.xml
protoc-jar: using default maven settings, didn't find user settings.xml
protoc-jar: cached: /var/folders/61/myftlcwd4c12gbfm5nv7zzs80000gn/T/protocjar.webcache/com/google/protobuf/protoc/maven-metadata.xml
protoc-jar: downloading: https://repo.maven.apache.org/maven2/com/google/protobuf/protoc/3.11.4/protoc-3.11.4-osx-aarch_64.exe
protoc-jar: using default maven settings, didn't find user settings.xml
protoc-jar: cached: /var/folders/61/myftlcwd4c12gbfm5nv7zzs80000gn/T/protocjar.webcache/com/github/os72/protoc/maven-metadata.xml
protoc-jar: downloading: https://repo.maven.apache.org/maven2/com/github/os72/protoc/3.11.4/protoc-3.11.4-osx-aarch_64.exe
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.956 s
[INFO] Finished at: 2023-03-26T13:10:00-07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.github.os72:protoc-jar-maven-plugin:3.11.4:run (default) on project apple-notes-liberator: Error extracting protoc for version 3.11.4: Unsupported platform: protoc-3.11.4-osx-aarch_64.exe -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Cannot invoke "String.isEmpty()" because "typeIdentifier" is null

tried to run the v0.1.0 release on ARM mac and got error
Cannot invoke "String.isEmpty()" because "typeIdentifier" is null

here is the terminal history:

~ ₿ java -version
openjdk version "19.0.1" 2022-10-18
OpenJDK Runtime Environment Homebrew (build 19.0.1)
OpenJDK 64-Bit Server VM Homebrew (build 19.0.1, mixed mode, sharing)
~ ₿ java -jar ~/Downloads/apple-notes-liberator.jar 
Cannot invoke "String.isEmpty()" because "typeIdentifier" is null 

Questions

Liberating apple notes, is a project I think about since a long time myself.
However I wouldn't have implemented the project like you, that's why I have a few questions.
I didn't find any discussion section on this repo so I will ask them here.

  • Why java ? Java is old and slow, require an interpreter to be installed (which can be buggy) and make project release as a jar.
    I would personally have chosen a language such as swift for performance and "Apple friendly" that would have produced a optimised binary.
    A binary could then be published to macOS package manager: brew. Making installation, upgrade easy.
    I'm not sure this can be achieved with a jar but currently user has track updates manually and call it with java -jar apple-notes-liberator.jar which is not user friendly.
    So is there a technical reason why you chose java ?

  • If a binary is achieved and published to brew. I can help you with the publication process and provide the formula file. Using GitHub workflows (CI/CD) to auto-update this formula file would also be a good idea.

  • Why output as a minified json ? I would have done an option to export as HTML, markdown and maybe even an format that allow import to other notes apps (the popular FOSS ones)

  • Is there any plan to make it possible to import notes that were previously exported ? If json is not human readable, its main utility would be a backup (which could be restored later)

Update application version in nix shell

Hey @adam-fallon, would you mind helping here? :)

I am happy to do it as well, but I am not sure how exactly the sha256 hash is being generated/what is being hashed. When I use openssl to generate a sha256 hash for the 1.1.0 jar it is nothing like the one in nix.shell. Any tips you could share?

Thank you!

-f or --file not working

I am trying to extract notes from my daughter's ipad. I recovered the NoteStore file and am trying to run this on my mac which also has Notes. But my local notes are not the desired NoteStore. I am using thie -f and --file option, but it is always only extracting the default notes file.

I have them in a folder on my desktop. I am in that directory. This is the command I'm running.

apple-notes-liberator --file=NoteStore.sqlite --json

have also used

apple-notes-liberator --file=./NoteStore.sqlite --json

Have tried -f with above paths with same result.
Have also tried --markdown output with same result.

Version is

xxxxxx@xxxxxx LizRecoveredNotes % apple-notes-liberator --version                     
2.2.3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.