ddvk / remarkable2-framebuffer

remarkable2 framebuffer reversing
MIT License
279 stars 22 forks source link

Does not work with my version of Xochitl #18

Open raisjn opened 3 years ago

raisjn commented 3 years ago

This issue is for when rm2fb's server process fails to find the signature it needs.

Please respond with which binary was being used and what its md5sum is, thank you!

NOTE: this issue is specifically for if rm2fb server or client prints out an error referencing issue #18. The error message means that the signatures we use are no longer valid in the version of xochitl being used. Please open separate threads for other issues.

juanfcocontreras commented 2 years ago

@scarpentier:

2.12.1.527 just hit my device!

The open PR #91 adds support for 2.12.1.527. You can just put it into one of the many config files (see README.md)

PR #91 is working great here for the moment!

vasergen commented 2 years ago

@scarpentier:

2.12.1.527 just hit my device!

The open PR #91 adds support for 2.12.1.527. You can just put it into one of the many config files (see README.md)

could you point to an example of conf file? I saw the README section, but there is no example of how this file looks like

ClashTheBunny commented 2 years ago

It's exactly like the static config string: https://github.com/ddvk/remarkable2-framebuffer/blob/master/src/shared/config.cpp#L14

vasergen commented 2 years ago

It's exactly like the static config string: https://github.com/ddvk/remarkable2-framebuffer/blob/master/src/shared/config.cpp#L14

thanks, that works!

Witos commented 2 years ago

@ddvk , please pull in the PR: https://github.com/rotech/remarkable2-framebuffer/tree/2.12.2.573, I've just checked it, it works fine.

lzmartinico commented 2 years ago

I have just updated to 2.12.2.573 /etc/version: 20220303120824 md5sum /usr/bin/remarkable-shutdown: 990eb8c228b33c6fd3265fc3edc8100c md5sum /usr/bin/xochitl: 6d9b830d403c6eb636cfac7747bc5cfe

Eeems commented 2 years ago

@lzmartinico does this match what @Witos included in the PR in the previous comment?

lzmartinico commented 2 years ago

thanks @Eeems, the version number certainly seems the same as in that branch, and my local package is still on 0.0.14-1 so it wouldn't include that commit. I am unable to opkg upgrade though as the rm2fb.service exits with error code 255/EXCEPTION. What is the best way to get 0.0.15, manually downloading the tarball and installing locally?

Eeems commented 2 years ago

You can download the updated package from the testing branch manually:

wget https://toltec-dev.org/testing/rm2/display_1_0.0.15-1_rm2.ipk
opkg install display_1_0.0.15-1_rm2.ipk
rm display_1_0.0.15-1_rm2.ipk
lzmartinico commented 2 years ago

Thank you, unfortunately it seems like I will manually need to update some dependencies first

Configuring display.
Job for rm2fb.service failed because the control process exited with error code.
See "systemctl status rm2fb.service" and "journalctl -xe" for details.
Collected errors:
 * pkg_hash_check_unresolved: cannot find dependency rm2fb-client (= 1:0.0.15-1) for display
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for display:
 *  rm2fb-client (= 1:0.0.15-1)
 * opkg_install_cmd: Cannot install package display.
 * pkg_run_script: package "display" postinst script returned status 1.
 * opkg_configure: display.postinst returned 1.
Eeems commented 2 years ago

Ah right, that's a separate package, grab this one as well: https://toltec-dev.org/testing/rm2/rm2fb-client_1_0.0.15-1_rm2.ipk

rsaavedn commented 2 years ago

990eb8c228b33c6fd3265fc3edc8100c /usr/bin/remarkable-shutdown ec9c6fec1038cb4ab7a1ee40952acb3e /usr/bin/xochitl

Eeems commented 2 years ago

990eb8c228b33c6fd3265fc3edc8100c /usr/bin/remarkable-shutdown ec9c6fec1038cb4ab7a1ee40952acb3e /usr/bin/xochitl

This has already been reported and is supported in the latest version that was released. It has not made it to toltec stable yet.

adavan13 commented 2 years ago

I have just updated to 2.13.3.606

/etc/version: 20220330134519

md5sum /usr/bin/remarkable-shutdown: 990eb8c228b33c6fd3265fc3edc8100c

md5sum /usr/bin/xochitl: d03ca7b00297ff3c1f4c6b7d407adedd

rotech commented 2 years ago

I have just updated to 2.13.3.606 /etc/version: 20220330134519

I just added a pull request for this. You can add the offset block to your rm2fb.conf as per the instructions in the README under the configuration heading. This will add support without needing to recompile.

94

adavan13 commented 2 years ago

I have just updated to 2.13.3.606 /etc/version: 20220330134519

I just added a pull request for this. You can add the offset block to your rm2fb.conf as per the instructions in the README under the configuration heading. This will add support without needing to recompile. #94

I can't seem to find an example rm2fb.conf file. I used the toltec install. Can I create this file, and if so, what is the format. Is it the same as the config.cpp file?

*edit: checked the reader function and you just need the entry as follows:

!20220330134519
version str 2.12.3.606
update addr 0x3ee704
updateType str QRect
create addr 0x3f0848
shutdown addr 0x3f07e0
wait addr 0x3efe14
getInstance addr 0x3e54ec
bkirwi commented 2 years ago

And here's the PR for the latest release: https://github.com/ddvk/remarkable2-framebuffer/pull/97/files

As usual, taking the added config and dropping it into rm2fb.conf gets things working -- in case you, like me, accidentally upgraded before the patch has worked its way through the usual channels.

juanfcocontreras commented 2 years ago

Any chance to have 2.14.0.861 (stable release)?

samdoshi commented 2 years ago

Version 2.14.0.861

/etc/version: 20220615074909

md5sum:

4c5e8692b525e3e292a0a39cbbe56e9d  /usr/bin/remarkable-shutdown
4aca20c4cc7bcf9b51f5edd07ce8276b  /usr/bin/xochitl

edit:

Nevermind... just seen #99 which I've tested an is working on my device.

Servinjesus1 commented 2 years ago

Version 2.14.0.861

/etc/version: 20220530145832

md5sum:

4c5e8692b525e3e292a0a39cbbe56e9d /usr/bin/remarkable-shutdown 143265f03ca12cbc7b9798d27bf6b76c /usr/bin/xochitl

matteodelabre commented 2 years ago

System version 2.14.0 is supported since release v0.0.19. Are you using that release? It’s not available in Toltec stable yet, but you can try out the testing branch.

CrachedAgain commented 2 years ago

Version 2.14.1.866

root@reMarkable:/# cat /etc/version ; md5sum /usr/bin/remarkable-shutdown /usr/bin/xochitl 20220617143306 4c5e8692b525e3e292a0a39cbbe56e9d /usr/bin/remarkable-shutdown f519ba3eceb6bb2844ee077ac48c976c /usr/bin/xochitl

juanfcocontreras commented 2 years ago

Version 2.14.1.866

root@reMarkable:/# cat /etc/version ; md5sum /usr/bin/remarkable-shutdown /usr/bin/xochitl 20220617143306 4c5e8692b525e3e292a0a39cbbe56e9d /usr/bin/remarkable-shutdown f519ba3eceb6bb2844ee077ac48c976c /usr/bin/xochitl

I'm trying the same offsets as previous version and they seem to be working:

/etc/rm2fb.conf

!20220617143306
version str 2.14.1.866
update addr 0x4931c4
updateType str QRect
create addr 0x495308
shutdown addr 0x4952a0
wait addr 0x4948d4
getInstance addr 0x489fac
ferlores commented 2 years ago

Just updated to version 2.14.3.925

reMarkable: ~/ cat /etc/version ; md5sum /usr/bin/remarkable-shutdown /usr/bin/xochitl 20220725110358 4c5e8692b525e3e292a0a39cbbe56e9d /usr/bin/remarkable-shutdown b89b1e01894711b60af5c60f219470bf /usr/bin/xochitl

Tried previous offsets (version 2.14.1.866) and didn't work. Are there any docs on how to calculate the offsets? Thanks!

ferlores commented 2 years ago

Just updated to version 2.14.3.925

reMarkable: ~/ cat /etc/version ; md5sum /usr/bin/remarkable-shutdown /usr/bin/xochitl 20220725110358 4c5e8692b525e3e292a0a39cbbe56e9d /usr/bin/remarkable-shutdown b89b1e01894711b60af5c60f219470bf /usr/bin/xochitl

Tried previous offsets (version 2.14.1.866) and didn't work. Are there any docs on how to calculate the offsets? Thanks!

Ok, I tried to find the offsets following rm2fb README. After looking into the binary I came up with the following config:

!20220725110358
version str 2.14.3.925
update addr 0x4bfaec
updateType str QRect
create addr 0x4c2740
shutdown addr 04c26d8
wait addr 0x4c16e0
getInstance addr 0x4bfdd0

Now rm2fb.service is able to start without an error and I even see some flashes on the screen but xochitl will segfault on start with the following output

reMarkable: ~/ xochitl --system
Sourcing /opt/etc/xochitl.env.d/rm2fb-preload.env
Replacing 'update' (at 0x4bfaec): OK
Replacing 'create' (at 0x4c2740): OK
Replacing 'shutdown' (at 0x4): Segmentation fault

here is the output of rm2fb.service

reMarkable: ~/ systemctl status rm2fb.service 
[[0;1;32m●[[0m rm2fb.service - reMarkable 2 Framebuffer Server
     Loaded: loaded (/lib/systemd/system/rm2fb.service; enabled; vendor preset: disabled)
     Active: [[0;1;32mactive (running)[[0m since Sun 2022-07-31 17:25:52 UTC; 17min ago
   Main PID: 1760 (rm2fb-server)
     CGroup: /system.slice/rm2fb.service
             └─1760 rm2fb-server

Jul 31 17:25:50 reMarkable systemd[1]: Starting reMarkable 2 Framebuffer Server...
Jul 31 17:25:50 reMarkable xochitl[1760]: STARTING RM2FB
Jul 31 17:25:50 reMarkable xochitl[1760]: getInstance() at address: 0x4bfdd0
Jul 31 17:25:50 reMarkable xochitl[1760]: REPLACING THE IMAGE with shared memory
Jul 31 17:25:52 reMarkable xochitl[1760]: Reading waveforms from /usr/share/remarkable/320_R397_AF8D11_ED103TC2C5_VB3300-KCD_TC.wbf
Jul 31 17:25:52 reMarkable xochitl[1760]: 1404 1872 16
Jul 31 17:25:52 reMarkable xochitl[1760]: WAITING FOR SEND UPDATE ON MSG Q
Jul 31 17:25:52 reMarkable systemd[1]: Started reMarkable 2 Framebuffer Server.

I triple checked to offsets and I cannot find any alternatives for them. Any ideas on how to proceed? Thanks!

rotech commented 2 years ago

I haven't received that update on my tablet yet. Not sure if it's OK to attach the binary here or not, but I am happy to double-check your findings.

ferlores commented 2 years ago

Thanks @rotech, probably you can get a copy if you enroll in the remarkable beta program (https://anonfiles.com/B5G5C41fyc/xochitl-2.14.3_925)

rotech commented 2 years ago

@ferlores I am already in the beta program, but they don't release to everyone at once so if there are problems they can stop the rollout without affecting too many people. I get a few different addresses to you, firstly the update function, but also your getInstance was a trap, you have to go one function up from the one you had, "Calls a function that itself calls create and wait".

I won't submit a pull request until I am able to test this for myself, whenever my update happens. But let me know if this works for you.

!20220725110358 version str 2.14.3.925 update addr 0x4bfb1c updateType str QRect create addr 0x4c2740 shutdown addr 0x4c26d8 wait addr 0x4c16e0 getInstance addr 0x4b66a4

ferlores commented 2 years ago

Thanks @rotech! I can confirm that the addresses you sent are correct. I didn't see the trap of getInstrance, good catch. About update, I'm not super familiar with arm assembler and Hooper Dissasembler showed me 0x4bfaec as the beginning of the procedure, but 0x4bfb1c makes more sense since it is pushing a bunch of the registers. Thanks again!

LinusCDE commented 2 years ago

Got 2.14.3.958.

Previous values just managed to clear the screen once.

reMarkable: ~/ cat /etc/version ; md5sum /usr/bin/remarkable-shutdown /usr/bin/xochitl
20220817135850
4c5e8692b525e3e292a0a39cbbe56e9d  /usr/bin/remarkable-shutdown
286718c79fb0e8e9f56f8985f360871b  /usr/bin/xochitl
rotech commented 2 years ago

!20220817135850 version str 2.14.3.958 update addr 0x4bfb2c updateType str QRect create addr 0x4c2750 shutdown addr 0x4c26e8 wait addr 0x4c16f0 getInstance addr 0x4b66b4

LinusCDE commented 2 years ago

The values work great @rotech !

scarpentier commented 2 years ago

@rotech's values also work with 2.14.3.977

LinusCDE commented 2 years ago

Can you provide the content of /etc/version then (so I can make a pr for it)? Or do you want to create the pr yourself?

scarpentier commented 2 years ago
reMarkable: ~/ cat /etc/version ; md5sum /usr/bin/remarkable-shutdown /usr/bin/xochitl
20220825124750
4c5e8692b525e3e292a0a39cbbe56e9d  /usr/bin/remarkable-shutdown
b3f5268807e00f0049db04feef30f7c2  /usr/bin/xochitl
!20220825124750
version str 2.14.3.977
update addr 0x4bfb2c
updateType str QRect
create addr 0x4c2750
shutdown addr 0x4c26e8
wait addr 0x4c16f0
getInstance addr 0x4b66b4
PDF2468 commented 2 years ago

root@reMarkable:~# cat /etc/version 20220907143405

rotech commented 2 years ago

@PDF2468 I have double-checked the offsets for 2.14.3.1005 and they look good, and have tested well. Can you try inserting the config block to /etc/rm2fb.conf and see if that helps?

!20220907143405
version str 2.14.3.1005
update addr 0x4bfb2c
updateType str QRect
create addr 0x4c2750
shutdown addr 0x4c26e8
wait addr 0x4c16f0
getInstance addr 0x4b66b4
PDF2468 commented 2 years ago

@PDF2468 I have double-checked the offsets for 2.14.3.1005 and they look good, and have tested well. Can you try inserting the config block to /etc/rm2fb.conf and see if that helps?

!20220907143405
version str 2.14.3.1005
update addr 0x4bfb2c
updateType str QRect
create addr 0x4c2750
shutdown addr 0x4c26e8
wait addr 0x4c16f0
getInstance addr 0x4b66b4

@rotech In the /etc directory, I cannot find the m2fb.conf file. What should I do?

Eeems commented 2 years ago

@PDF2468 I have double-checked the offsets for 2.14.3.1005 and they look good, and have tested well. Can you try inserting the config block to /etc/rm2fb.conf and see if that helps?

!20220907143405
version str 2.14.3.1005
update addr 0x4bfb2c
updateType str QRect
create addr 0x4c2750
shutdown addr 0x4c26e8
wait addr 0x4c16f0
getInstance addr 0x4b66b4

@rotech In the /etc directory, I cannot find the m2fb.conf file. What should I do?

Create a new one

PDF2468 commented 2 years ago

@PDF2468 I have double-checked the offsets for 2.14.3.1005 and they look good, and have tested well. Can you try inserting the config block to /etc/rm2fb.conf and see if that helps?

!20220907143405
version str 2.14.3.1005
update addr 0x4bfb2c
updateType str QRect
create addr 0x4c2750
shutdown addr 0x4c26e8
wait addr 0x4c16f0
getInstance addr 0x4b66b4

@rotech In the /etc directory, I cannot find the m2fb.conf file. What should I do?

Create a new one

@Eeems May I ask what I need to fill in the new file?

Eeems commented 2 years ago

@Eeems May I ask what I need to fill in the new file?

The content provided in https://github.com/ddvk/remarkable2-framebuffer/issues/18#issuecomment-1250384897

PDF2468 commented 2 years ago

@Eeems May I ask what I need to fill in the new file?

The content provided in #18 (comment)

@Eeems Thanks,I copied all the contents in the config.cpp file to the newly created m2fb.conf file. Now it runs normally.

However, do I have problems copying all the contents in the config.cpp file, or do I just need to copy the following contents.

!20220907143405 version str 2.14.3.1005 update addr 0x4bfb2c updateType str QRect create addr 0x4c2750 shutdown addr 0x4c26e8 wait addr 0x4c16f0 getInstance addr 0x4b66b4

Eeems commented 2 years ago

You only need the content from the comment I linked, not the entire cpp file contents.

PDF2468 commented 2 years ago

You only need the content from the comment I linked, not the entire cpp file contents.

ok,thanks

juanfcocontreras commented 2 years ago

Any chance to get 2.14.3.1047 (new stable release) offsets?

Thanks in advance!

Edited previous offsets seems to be working:

!20220921101206
version str 2.14.3.1047
update addr 0x4bfb2c
updateType str QRect
create addr 0x4c2750
shutdown addr 0x4c26e8
wait addr 0x4c16f0
getInstance addr 0x4b66b4
juanfcocontreras commented 2 years ago

Any chance to get 2.15.0.1067 (new stable release) offsets? Previous offsets (2.15.0.1052) doesn't seem to be working

Thanks in advance!

Eeems commented 2 years ago

Any chance to get 2.15.0.1067 (new stable release) offsets? Previous offsets (2.15.0.1052) doesn't seem to be working

Thanks in advance!

2.15.0.1067 was released this morning. It'll take a while before someone gets the time to figure out the new offsets.

juanfcocontreras commented 2 years ago

Any chance to get 2.15.0.1067 (new stable release) offsets? Previous offsets (2.15.0.1052) doesn't seem to be working Thanks in advance!

2.15.0.1067 was released this morning. It'll take a while before someone gets the time to figure out the new offsets.

Thanks! Can I help with this task? Sharing information about the update, files... or are there any instructions to do it by myself and share the offsets?

Eeems commented 2 years ago

See https://github.com/ddvk/remarkable2-framebuffer#configuration

You can manually locate the addresses of the functions listed above by looking at the disassembly and then add a configuration entry to make remarkable2-framebuffer work with your release.

juanfcocontreras commented 2 years ago

See https://github.com/ddvk/remarkable2-framebuffer#configuration

You can manually locate the addresses of the functions listed above by looking at the disassembly and then add a configuration entry to make remarkable2-framebuffer work with your release.

I will try to get them, thank you very much!