trustcrypto / OnlyKey-App

The OnlyKey App is used for the initial setup and configuration of OnlyKey. Supported on Windows, macOS, Linux, and Chromebook (with Chrome App).
https://docs.crp.to/app.html
Other
105 stars 24 forks source link

Add support for the ARM architecture (armhf & arm64) #169

Closed pineguy64 closed 3 years ago

pineguy64 commented 3 years ago

I'm trying to set up my OnlyKey with the app, but I may be unusual in that all my devices are ARM architecture based. (PinePhone, PineBook Pro Laptop, etc). The app doesn't support any ARM architecture. Currently I'm attempting to build from source as a workaround for now, but native ARM support would be a great thing to have as more and more devices are moving to ARM.

justinmbrock commented 3 years ago

This. aarch64 devices are everywhere now. I was trying to get this installed on my PinePhone (Arch Linux ARM) and a Raspberry Pi 4 4GB (Raspberry Pi OS) today and it won't open on either.

onlykey commented 3 years ago

If you are able to get chrome/chromium to install you should be able to use the chrome app on whatever architecture chrome is installed on - https://chrome.google.com/webstore/detail/onlykey-configuration/adafilbceehejjehoccladhbkgbjmica?hl=en-US

justinmbrock commented 3 years ago

Chrome doesn't run on everything. Not to mention EOL. And some of us take issue with being told to use Chrome for every little thing. You don't need Chrome to write and SD card image, but you're using one if you use BalenaEtcher. You shouldn't need Chrome to flash a microcontroller, but you will with Arduino 2.0. Atom Editor and VS Code are Chrome too. And you should really, really not use Chrome to flash your security key, so, you know, we would appreciate a native aarch64 app, hence the issue here. I think we would appreciate either a positive response, or a wontfix tag, and then we will know to shop elsewhere in the future. Thanks.

onlykey commented 3 years ago

@justinmbrock You don't use the OnlyKey app to "flash" your security key. The app is for initial configuration and for setting up accounts so you could certainly set up your device on a non-ARM system and use it on an ARM system.

justinmbrock commented 3 years ago

Excuse me? You're going to take issue with the generic term "flashing" to refer to "loading firmware" and not even answer me? Yes, you "flash" the security key. I'm saying a depreciated Chrome app is unacceptable. You won't even say if you are refusing to make your product compatible with ARM devices. That's what I want to hear. Say yes or no, don't blow off your customers that used to recommend you to everyone.

pineguy64 commented 3 years ago

I'd assume you're likely held up by node-webkit not fully being ported over to ARM yet, is that right? I only have ARM systems outside of my work laptop which is fully locked down and won't allow unapproved programs so for me the options are to use the End of Life webapp, run a full VM in qemu to run the desktop app in, or borrow/buy a non-ARM device just to get this set up. Native ARM support for the setup app still in my opinion is a desirable feature. If porting this over is held up by node-webkit, it would be nice to be told so so that I could open an issue upstream.

pineguy64 commented 3 years ago

Upon trying to use the webapp to set this up, I've found it doesn't work great, at least on any of my ARM devices. The issue is due to it never detecting the onlykey as being plugged in. At first I thought this was due to sandboxing, but even turning sandboxing off for chromium it's never detected. So I can't see the webapp as a solution for this at all. I'm working to try to get the node-webkit app running, but having no experience in it yet that's a bit of a challenge. Not great verbosity for errors. I've additionally looked at the python onlykey-cli, yet several features such as setting the backup key are dependent on this app to work. Is there anything you can suggest outside of having to use (meaning buy or borrow) a non-ARM device? Even just pointing me at whatever is blocking you from porting (I assume node-webkit?) so I can open an issue there will get me progress instead of just closing out the ticket entirely (the android request still being open even, yet this one closed?)