Pass Viewer (Harbour / openrepos)

I couldn’t find specific thread to this app so here we go… App ain’t mine, so all the glory from making this app to the developer! Unfortunately I am not sure what is the correct developer nick here, but in harbour it is: christof_buergi

I haven’t yet figured where I need to put the files so that app can see them. I have tickets in pdf format under documents and downloads but they won’t show up in the app. All tips are welcome! I am wondering whether the problem is that I have installed it through Harbour and the app has more limited access to the files?

I’m not sure how it works, I think it searches for specific file formats i.e. pkpass which is a zip file. The main issue is getting that file from the ticket issuer, most often we opt for pdf version which cannot be used by this app.

Ah thanks for the info! I thought it would also support pdf, but wasn’t sure.

Often when you choose the apple ticket option you receive the ticket as pkpass

In the copyright section in the app there is also Carmen F. B. who seems to be the maintainer. She is in the forum as @carmenfdezb I think

1 Like

I have a few pkpass files in my ~/Downloads folder, indirectly extracted from emails and PassViewer picked up those files, it might check for validity of dates and not display expired ones, also I am not sure if it updates the calendar automatically. I think the main issue is getting the pkpass from the ticket issuer.

1 Like

Have to check if I could find file in that format!

No, I’m not the maintainer, I contribuited some time ago with fixing some bug and translation. But PassViewer is working fine for me, but it only works with .pkpass files, no .pdf files. I put .pkpass files in a subfolder into ~/Documents and PassViewer can see them.

4 Likes

Please be aware that the current version found on OpenRepro contains a bug related specifically to Apple wallet Aztec codes.

Some ticket providers like Hamburg’s HVV issue a “Deutschlandticket” in that specific format who’s content can be found inside pass.json (message key). That message key contains the binary compacted payload for the Aztec code as used by Apple wallet. However, the zint library vendored with Pass Viewer will handle this message byte stream as mixed text/binary resulting in a broken Aztec code and a funny discussion with the ticket inspector (I had one and was assumed as a fare dodger).

that’s funny, I also have a Deutschland ticket by HVV and observed that it can’T be validated. Luckily I had a backup with android app. Is there a chance that this bug can be fixed?

1 Like

the problem seems to be in lines 25 to 28 in src/barcodeimageprovider.cpp

there the code is transformed to text and then checked if it is a code128 and if not transformed back

It should be the other way round, that the stream is only transformed if it is code128 and otherwise processed further as a binary payload.

Unfortunately, creating issues or PRs seems to be disabled in this bitbucket repo

The repo is here

I once filed a bug and he fixed it. But as I see there is no issue tracker anymore. But since the last commit is from Jan 2026 I think it is still maintained.

1 Like

The fix is related to message encoding and the zint library which had been vendored in the project. A working version can be found here:

You can test if your HVV ticket is rendered correctly by doing the following test:

  • login to HVV website and screenshot the valid Aztec code from there
  • load the Passbook file from HVV site and store it on device (or refresh an already imported HVV ticket)
  • screenshot the Aztec code from Pass Viewer

Now you can use an offline (wasm) parser to get the binary content of both Aztec codes:

The hex values from HVV (website) and Pass View (device) should be identical.

3 Likes

I’d love to test it, but I would need 32 bit version

Hi David, I added the build for armv7hl. Have fun.

1 Like

I tried to load my HVV ticket, the image still looks different to the one my android app displays, but the binary code the website you provided is identical for the two barcodes.

Excellent, one stupid android less for me

Thank you for your amazing work!

Edit: I can’t wait to be in a ticket control

1 Like

Will you create a pull request upstream?

Just a short heads up to all Deutschlandticket owners:

Yesterday I updated my Passbook ticket and was promptly checked by a ticket inspector in the train. I didn’t compare the Aztec code content from website with Pass Viewer previously so I was a bit nervous… and q.e.d. that the fix works :partying_face:

Cheers,
Nek

5 Likes

While your version correctly displays Aztec codes such as the Deutschlandticket, tickets with QR codes are broken :confused:

1 Like

Sorry for this issue, the backported (and cherry-picked) Aztec code messed up 7-bit and 8-bit encoding so that common QR codes would render incorrectly.

The new v1.8.2 available on Github fixes this issue.

Cheers and Thanks for reporting!
Nek

2 Likes