Jump to content

Sean McCreary

  • Content Count

  • Joined

  • Last visited

Community Reputation

50 Excellent

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. FYI, there is an easy Treble-compatible tweak to wake the Pro1 with any keypress. When combined with the modified lights HAL, this will turn on the keyboard backlight on when the device wakes.
  2. For anyone interested in trying an Android 10 GSI, I highly recommend using my patched boot.img and vendor.img from this thread. The latest versions of both are regularly updated at https://drive.google.com/drive/folders/1ey6g1N1ORYZ34oRXLYsF4zCCL6_KGRCi These patched images include several important fixes for improved Treble compatibility, including a refined key character map, better keyboard slide behavior, and a working keyboard backlight. The latest boot.img also includes the new keyboard driver from @netman and a fix for the swapped stereo channels on the built-in speakers. Please read the 'changelog.md' file for full information about the patched images.
  3. Remember this thread is about Treble-compatible changes, which means no changes to the system image are allowed. We can make changes to the HALs below the core OS, or add apps that run above the OS layer, but mostly my fixes simply improve integration with the core frameworks provided by Google. These limitations make it difficult to add entirely new features. Google expects the slider to send SW_LID events rather than keystroke events, so the slider fix means you can't turn the keyboard backlight on and off with F5 and F6. There are other ways we might add backlight control using key combinations (perhaps using a privileged app), but the current HAL change makes it more likely you would want to turn it off than turn it on 😉
  4. Even though the kernel accepts an 8-bit value, sending it a '1' seems to result in the same brightness as sending it '255'. I don't think the keyboard backlight hardware supports variable brightness.
  5. I haven't debugged the problem with the slider fix and the stock system image, but it could be the same as the problem with the October 'release' builds of the Android 10 GSI. IIUC it *ought* to work, but perhaps the RRO for framework-base.apk has to be signed with a different key on a user build. In both cases the kernel generates the events correctly, but they aren't processed by Android's higher layers. All of the builds that work with the slider fix are userdebug rather than user, and consequently they have slightly reduced security requirements. I have let F(x)tec devs know about the Treble fixes, but new OTAs for stock probably won't be available until after the Chinese New Year holiday. I hope they will integrate some of the fixes, but we'll have to see which ones they like.
  6. I have added a new lights HAL to the patched vendor.img that forces the keyboard backlight to follow the display backlight state. Whenever the screen is on, the keyboard backlight is on as well. This isn't ideal, but it works well enough that I felt it was worth an update. I also updated the kcm to include VaZso's patch, so shift/fn + arrow keys will send PGUP/PGDOWN/HOME/END, and fn + backspace sends BACK while fn + Del sends FORWARD. The download directory now includes a brief changelog file, with notes about what was changed on each date. The changes are cumulative, so the latest date has all the fixes listed on previous days (unless the file says otherwise). I also did some brief testing with system images other than the Android 10 GSI, and the patched boot.img and vendor.img seem to work well with tdm's second test build for LineageOS 16.0. Unfortunately, the slider fix does not work with the stock system.img ☚ī¸ You can install the patched images over the top of tdm's LineageOS build with fastboot, using the same commands as if restoring the device to stock firmware. Just specify the uncompressed boot and vendor images downloaded from Google Drive instead of the stock firmware RAR archive in the fastboot commands.
  7. Hopefully F(x)tec will like some of our changes enough to add them to a future update. In the meantime I have updated the kcm file in my patched vendor.img at https://drive.google.com/drive/mobile/folders/1ey6g1N1ORYZ34oRXLYsF4zCCL6_KGRCi
  8. I pushed a patch to GitHub with a variation on this mapping: - shift/fn+left arrow: HOME - shift/fn+right arrow: END - shift/fn+up arrow: PAGE UP - shift/fn+down arrow: PAGE DOWN - fn+backspace: BACK - fn+del: FORWARD - shift+del: INSERT F(x)tec really wanted a key that sends a hard BACK keycode, and I think this is a better way than stealing ESC. I also like having FORWARD and BACK next to each other, so you can hold the left 'yellow arrow' Fn key and easily move back and forward with the other thumb.
  9. BTW, the slider sends Fn-F6 and Fn-F5 when it moves, which is why the keyboard backlight turns on and off. Sending these from the keyboard will also cause some side effects, depending on whether you have the rotation lock enabled or disabled. I think we need a way to manage the backlight from the keyboard, but this method may stop working in the future. Until then, it seems useful 🙂 In LineageOS I have changed the kernel to send SW_LID events when the slider moves, which triggers Android's native landscape keyboard support. F(x)tec decided not to use the native framework for this, but since it is compatible with Treble (and F(x)tec's custom modifications are not) it will probably end up in future LineageOS builds. The boot.img files I posted for use with the Android 10 GSI include this change. Also, thanks for working out the kcm changes needed to support PAGE_UP and PAGE_DOWN from the keyboard. I think these modifications will be very useful in all languages, and I'll create a kcm file patch that attributes them to you. However, can you actually type fn+shift+backspace? I can only manage two-key chords myself.
  10. As a former computer security professional, I want to emphasize that everything tdm has said is correct. But any serious discussion about security needs to be very concrete about the threat model, or it becomes very difficult to determine what the effects of any change might be. Google has produced a detailed white paper describing the security model of Android, and it lists 15 different threats in section 2.3. Only the first two critically depend upon secure boot, i.e. the cases where, "Adversaries can get physical access to Android devices," and the primary attack vector involves modifying the system software installed on the device. All the other threats can be mitigated at a higher level, whether secure boot (or AVB) is enabled or not. Also, please remember that secure boot only provides the root of the chain of trust. In order to keep the chain from breaking, the bootloader must not be unlockable without cryptographic authentication. Otherwise, malicious code could change the unlock flag directly, and even a signed, trusted abl would then honor the 'trojaned' unlock flag. If you really think secure boot is necessary, then you are also arguing for F(x)tec to restrict bootloader unlocking, This is completely wrong. I my experience, LineageOS has always chosen security over features, including refusing to accept unnecessary closed-source components, and insisting that all devices have well designed SELinux policy. IMHO the most important reason for using LineageOS is when it provides security fixes for devices that are no longer supported by their OEMs. As tdm pointed out, this is not possible given the security model used by Qualcomm and the OEMs. They aren't securing the device for you, they are securing the device for the OEM. If you don't trust the OEM, then secure boot doesn't buy you anything.
  11. Thanks for the link 😊 I installed FinQwerty v1.5.2 on the Jan 10th Android 10 GSI build and it seems to work.
  12. In a pinch you can always try to enable the keyboard backlight manually with the command: This is inconvenient and doesn't work on stock, but it is better than nothing.
  13. The trouble with the Fn key is a Treble bug, and the patched vendor.img has that fix. I haven't tried installing the FinQwerty app while running an Android 10 GSI, but it ought to work. Note that the GSI builds posted at ci.android.com do not include GMS.
  14. [Note: This post is on an esoteric topic, and is only suitable for people who enjoy tinkering with their phones. Please don't try any of this if you aren't willing to erase everything on your Pro1] Project Treble made it possible in theory to run new versions of Android without requiring any OEM updates. If you've tried this in the past then you know the usability results can be 'mixed' 😉 The good news is that the Pro1 ships with fairly good Treble support, and you can find some information about how well it works while running an Android 10 generic system image (GSI) at https://github.com/phhusson/treble_experimentations/wiki/F(x)tec-Pro1. As part of my work on LineageOS I have been fixing some of the Treble bugs in the stock firmware. So far I have fixes for the keyboard shift and Fn key mapping, and the keyboard slider behavior, and I hope to have a fix for the keyboard backlight behavior soon as well. If you'd like to try these fixes with a GSI, you can find my patched vendor.img and boot.img files at https://drive.google.com/drive/folders/1ey6g1N1ORYZ34oRXLYsF4zCCL6_KGRCi Note that the slider behavior fix only works with recent Android 10 GSI builds, e.g. https://ci.android.com/builds/submitted/6124690/aosp_arm64-userdebug/latest/aosp_arm64-img-6124690.zip. It does NOT work with the 'release' GSI builds that were published in October 2019.
  15. FYI, I have imported the Pro1 FinQwerty v1.5.1 key character maps (kcm files) into my LineageOS builds. If there are other kcm files that people have worked out for the Pro1, I'd be happy to add them as well. The current FinQwerty maps add support for Czech, Danish, Finnish, Norwegian, and Swedish, as well as the alternate German mapping. For reference, you can find the patches required to add additional kcm files to a device build here: https://github.com/mccreary/android_device_fxtec_pro1/commits/lineage-16.0/AsantiKeypad The last of the three is not necessary for the stock Pro1 kernel, which maps ESC to back in the keyboard driver.
  • Create New...

Important Information