View Single Post
Old 06-05-2014, 01:41 AM   #1
auraborealis
Member
auraborealis knows the difference between 'who' and 'whom'auraborealis knows the difference between 'who' and 'whom'auraborealis knows the difference between 'who' and 'whom'auraborealis knows the difference between 'who' and 'whom'auraborealis knows the difference between 'who' and 'whom'auraborealis knows the difference between 'who' and 'whom'auraborealis knows the difference between 'who' and 'whom'auraborealis knows the difference between 'who' and 'whom'auraborealis knows the difference between 'who' and 'whom'auraborealis knows the difference between 'who' and 'whom'auraborealis knows the difference between 'who' and 'whom'
 
Posts: 10
Karma: 10010
Join Date: Jun 2014
Device: Aura
Patches to improve PDF viewer experience

After getting my Aura, one of the biggest disappointments was the PDF support.

Who came up with this user interface? It seems impossible to read anything without panning all over the place after every page turn, and panning is not the strong suit of an eInk display.

Why not let the user pan and zoom to crop off the margins once and then remember those settings, instead of forcing them to repeat that process on every new page?

I also found the huge arrows along the sides when zoomed in to be obnoxious and unnecessary- changing pages by tapping or swiping is much easier. The arrows create the additional problem of making it nearly impossible to center up the page at the desired zoom level.

Then there's the "helpful" map widget that pops up to show you where you are on the page, and in doing so blocking the very page you're trying to see.

So, I spent some time reverse engineering the PDF viewer and developing a patch to fix each of these issues:

Spoiler:
# libadobe.so in Firmware 3.3.1 (38384a81c1)

<Patch>
patch_name = `Remove map widget shown during panning`
patch_enable = `yes`
replace_bytes = 02BC4E, 04 46 D0 F8 34 01 08 B1 40 68 B8 B9, 00 BF 00 BF 00 BF 00 BF 00 BF 00 BF
replace_bytes = 02BC5A, E8 F7 28 EF D4 F8 34 01 18 B1 40 68, 00 BF 00 BF 00 BF 00 BF 00 BF 00 BF
replace_bytes = 02BC66, 08 B1 D4 F8 38 01 E8 F7 48 EF D4 F8, 00 BF 00 BF 00 BF 00 BF 00 BF 00 BF
replace_bytes = 02BC72, 54 01 E8 F7 1A EF D4 F8 54 01 E8 F7, 00 BF 00 BF 00 BF 00 BF 00 BF 00 BF
replace_bytes = 02BC7E, 40 EF 20 46, 00 BF 00 BF
</Patch>

<Patch>
patch_name = `Preserve pan position across page turns`
patch_enable = `yes`
replace_bytes = 01C96A, C0 F8 80 30, 00 BF 00 BF
replace_bytes = 01C96E, C0 F8 84 30, 00 BF 00 BF
</Patch>

<Patch>
patch_name = `Remove page turn arrows at left and right edges of page`
patch_enable = `yes`
replace_bytes = 02C1EE, F6 1A, 00 BF
replace_bytes = 02C1F0, 1D 44, 00 BF
replace_bytes = 02C208, C3 EB 08 02, 00 BF 00 BF
replace_bytes = 02C20C, 1F 44, 00 BF
</Patch>


The patch is against 3.3.1 and should be applied to /usr/local/Kobo/libadobe.so. Be sure to make a backup of the unpatched original in case things don't go as planned.

This has only been tested on my 6" Aura.

Enjoy!
auraborealis is offline   Reply With Quote