Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates for newer firmware versions #3

Open
johnlago opened this issue Jan 26, 2024 · 8 comments
Open

Updates for newer firmware versions #3

johnlago opened this issue Jan 26, 2024 · 8 comments

Comments

@johnlago
Copy link

There have been a number of official Kobo firmware updates since the last modified build in this project. What's involved in generating an updated KoboRoot.tg.gz? The guide has a "TBD" for this portion of the setup, and I suspect there's something more than just telnet to change - this doesn't seem to work properly with a rooted Kobo on 4.38.21908.

Thanks for building this - I'm excited to use Omnivore on my Kobo!

@Podginator
Copy link
Owner

Hey! I will make some effort to update this section today. It is not a lengthy process, I just wanted to make sure it was automated.

@johnlago
Copy link
Author

Hi! Anything we can do to help with this? If you point me in the right direction, I'd be happy to take a stab at documenting the process or generating new files.

@Podginator
Copy link
Owner

Podginator commented Mar 7, 2024

Sorry, I have been very bad at responding to this.

For updated versions you can do this

Download the update tar.gz
extract it

perl -pi -e 's/https:\/\/getpocket.com/http:\/\/fckpocket.com/' ./KoboRoot/usr/local/Kobo/libnickel.so.1.0.0 && perl -pi -e 's/https:\/\/text.getpocket.com/http:\/\/text.fckpocket.com/' ./KoboRoot/usr/local/Kobo/libnickel.so.1.0.0

Extract the tar.gz that is in this repo, and replace the usr/local/Kobo/libnickel.so.1.0.0 with the one you've just edited.
Repackage the tar.gz file.
Update it using the SD Card by doing the following: Place the new tar.gz inside the .kobo directory on the Kobo

Sorry this is not more elegant a solution, I've been swamped recently.

@Podginator
Copy link
Owner

Note, whilst I haven't tried this, it is probably possible to achieve the same using SSH/Telnet and running those commands. Or doing a scp of the libnickel.so.1.0.0, patching it on your machine, and then scping it back. Which is probably a less tedious process when an update happens.

@johnlago
Copy link
Author

johnlago commented Mar 8, 2024

Thanks for writing that out! No dice, unfortunately. I wonder if something more major changed in the most recent firmware update, since Pocket now uses Mozilla's oAuth to sign into the real Pocket. I may try downgrading to see if that does the trick.

@Podginator
Copy link
Owner

I hope to get some time in the near future to be able to look at this more closely.

One approach I wanted to do was to intercept the URL by using a hook on the OS level. Rather than having to patch the lib - which ultimately gets overridden each time. I had a look at this a while ago but I never got it off the ground.

@Podginator
Copy link
Owner

But with that approach you'd be able to actually host this instead of just using it locally.

@Podginator
Copy link
Owner

Podginator commented Mar 31, 2024

Hey!

I have changed the method in which this works. It no longer patches libnickel (which would get updated every single firmware update) but instead hooks into the webrequest method.

This has two benefits:

  1. You can now run it on any firmware version, without having to worry about updates. The steps for setting this up largely stay the same. Change /etc/hosts etc
  2. You can actually HOST a version of this now, on either Vercel, or Lambda, or any platform of your choice. You can them modify the .cc file and follow the instructions in the guide to pull from your hosted version.

I spent hours getting stuck because I got one little thing wrong and kept causing a Segfault. I love C.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants