plumbing for a new FDE unlocker, unl0kr, has been merged (!2687 (merged)), and the intention is to replace osk-sdl with this new thing.
Since FDE is a requirement for community and edge devices, we need maintainers of community and edge devices to test that this fde unlocker app works on their hardware. It's possible there might be bugs related to display, input, which might result in you being unable to unlock a device. So do not test this on a device with data you care about
To test it, fetch the latest pmaports master branch, and build an image that uses unl0kr with:
$ pmbootstrap install --fde --add unl0kr
flash/install that to your device using whatever device-specific instructions/methods exist for it
Please test that you're able to unlock using the touch onscreen keyboard, as well as a hardware keyboard if your device includes one (N900, pinebook, pinephone keyboard, etc). unl0kr looks noticeably different than osk-sdl, so make sure that osk-sdl did not install/run when you are testing. It shouldn't if you followed step 1 closely, but let us know if there are problems.
Start a new thread below in this issue for each device, indicate whether testing was successful or, if there were problems, state them there
ODROID-HC2 doesn't have a display... FDE was never really 'tested' with osk-sdl.
It probably just works with cryptsetup over serial, but using it like that is horrible.
samsung-gt58 works fine, can handle the funny aspect ratio. Would expect all other msm8916 devices to work as well.
Interestingly, mkinitfs said:
...2022/02/04 15:56:59 == Generating initramfs extra ==2022/02/04 15:56:59 - Including extra binaries2022/02/04 15:56:59 - *NOT* including FDE support...
yeah it's probably best to just clean up the confusing mkinitfs message once we pull osk-sdl, to avoid having to make multiple possibly-risky changes to the initfs stuff.
unable to unlock with vkb, as keyboard is not correctly mapped to the touchscreen, i.e. seems to be inverted about the center
the keys are rather small. one will need to type slowly or use the stylus. if the top bar could be reduced in size, the keys could possibly become a more comfortable size
The N900's display is 800x480 pixels, right? Does the UI generally look like in this screenshot?
The "breezy" theme has a little less padding than the default pmOS theme which results in slightly larger keys. Maybe we could decrease the padding in the pmOS theme as well. CC @dylanvanassche
About the touch screen, is it just the on-screen keyboard that doesn't properly register touches or all of the UI? And when you say "inverted about the center" does that mean you tap at (midX + x, midY + y) and the touch is registered at (midX - x, midY - y)?
@sicelo thanks for testing. the touch input issue sounds like maybe a calibration problem, and the input driver used by unl0kr/lvgl probably needs some info to correct it. in osk-sdl, tslib is used for input, and can accept calibration info to adjust input accordingly.
display is 800x480 yes, with 3.5" diagonal. So the more space keyboard can be allocated, the better.
touch screen, in the pmos theme, the touch is inverted around that green horizontal line running through the screen. i.e. if you click around the 'backspace' or 'Enter' key, you're actually activating the power 'button'. when you try to change theme (dark/light), you actually activate Shift or the 123 button
Unl0kr uses libinput which in turn uses udev. The rules are copied into the initfs but only from /lib/udev/rules.d/. It looks like the rules you mentioned are in /etc/udev/rules.d/ though.
I didn't realize there was another rules directory, sorry.
But chances are we'll just have to copy all the rules from this folder, too.
Unl0kr is currently using the orientation reported by the framebuffer itself. It looks like for the Pinetab we explicitly specify deviceinfo_framebuffer_landscape="true" which is then evaluated when generating the splash image.
I guess to make unl0kr use the same orientation it'd need a dedicated CLI argument which is then set based on the value of deviceinfo_framebuffer_landscape.
Doesn't receive input neither from the touchscreen nor a USB keyboard.
I thought this would close #1268 (closed), but it looks like it won't be as easy as I expected. I'll try to find out what's wrong. It would be great if someone has an idea on where I should start looking.
Thanks for testing @Tooniis! And sorry it doesn't seem to work at all.
Unl0kr uses libinput for reading from /dev/input/event... nodes for both hardware keyboards and the touchscreen. I think the first thing to try is running something like evtest in the debug shell to see what event nodes are there and then checking which ones unl0kr picked (which should be logged to STDERR).
I have never actually debugged unl0kr in the debug shell myself though so I'd have to try this out, too.
This device doesn't have any udev rules in /etc/udev/rules.d, does it? Just asking because those files are currently not yet copied into the initfs (see #1411 (comment 832955979)).
Tested on samsung-serranove using on-screen keyboard and a rather simple passphrase - worked very well for me. High-contrast mode and showing password worked fine as well.
tested on the pinebook pro, the UI size was fine (osk hidden by default because it found the physical keyboard as expected)
the only real problem I found was that it wasn't registering key presses when I typed 'normally'. I had to type my passphrase slowly/deliberately for all the presses to register correctly. @cherrypicker have you seen this in your testing?
Hm, I did see key presses being dropped occasionally when testing it with my Ergodox EZ but only with the dual function keys (where the trigger time is longer than with normal keys). The key handling happens within LVGL. I wonder if maybe it's not able to keep up with the events due to load.
For samsung-espresso3g, as unl0kr is added to initramfs, the boot.img becomes bigger than the boot partition so until it is moved to initramfs-extra, cannot test it/
ya basically I think postmarketos-mkinitfs should have a directory for collecting lists of files that should be installed in the -extra archive. then unl0kr's package could add its list file to that dir.
Did a fresh build on edge and the boot.img I get is of 11mb, so it still seems to be an issue. Reason being MR#19 has those changes and we need to create a new release as pmaports uses 1.4.1 which doesnt include it
Installed unl0kr on a running device with apk and that works fine, here's the log
samsung-espresso3g:~$ sudo unl0kr[sudo] password for user:unable to add device to libinput context: No such file or directorylibinput error: event1 - MELFAS MMS136 Touchscreen: client bug: event processing lagging behind by 29ms, your system is too slowlibinput error: event1 - MELFAS MMS136 Touchscreen: client bug: event processing lagging behind by 26ms, your system is too slowlibinput error: event1 - MELFAS MMS136 Touchscreen: client bug: event processing lagging behind by 29ms, your system is too slowlibinput error: event1 - MELFAS MMS136 Touchscreen: client bug: event processing lagging behind by 33ms, your system is too slowlibinput error: event1 - MELFAS MMS136 Touchscreen: client bug: event processing lagging behind by 29ms, your system is too slowlibinput error: event1 - MELFAS MMS136 Touchscreen: WARNING: log rate limit exceeded (5 msgs per 60min). Discarding future messages.147147
Everything from input to themes works perfectly fine.
I suppose we'll also need a new version of the unl0kr package that actually puts its files hook file into the extra directory?
We can just define it in /etc/postmarketos-mkinitfs/files-extra as the MR suggests and it should work. There's no need of making changes in unl0kr from what I understand.