Skip to content

Releases: Arian04/android-hid-client

v2.2.1

16 Apr 01:34
529c723
Compare
Choose a tag to compare

Bugfixes

  • Fix onboarding screen showing every time app is opened rather than only the first time

Other Changes (not user-facing)

  • Bump AGP version from 8.3.0 to 8.3.1

Full Changelog: v2.2.0...v2.2.1

v2.2.0

13 Apr 21:35
7674cd3
Compare
Choose a tag to compare

NOTE: Since Hacker's Keyboard is unmaintained, I am now recommending Unexpected Keyboard.

Features

  • extend support down to API level 26 (Android 8 - Oreo)
  • improve touchpad input handling (clicks send better, triple-finger middle clicks work now)

Bugfixes

  • fix crash on Android versions < 12
  • fix crash if shell commands time out
  • handle various errors more gracefully, giving the user more information about what the problem is
  • handle default Android gadgets that aren't named g1

Other Changes (not user-facing)

  • don't create the HID "out" endpoint anymore since the app doesn't use it
  • replace my custom shell utility classes with libsu which should be way more robust
  • set up instrumented testing, which should hopefully help me catch bugs more easily, since previously I was only testing on my main device, because manually starting up an emulator and testing the app for every supported API level after every commit is incredibly tedious and unreasonable.

Full Changelog: v2.1.0...v2.2.0

v2.1.0

27 Mar 00:34
44da0b3
Compare
Choose a tag to compare

NOTE: Like with the last release, the best way to update this version is to reboot your device, update the app, open the app only after the update (not before), then you should be able to use it as normal. I would normally increment the major version due to this, but the last release wasn't even 12 hours ago so I'm basically counting this as part of it. It'll also hopefully be the last change requiring a reboot for a long time, since I'm making all these gadget improvements at once and I don't see a reason they should have to change for a while.

Changes (user-facing):

  • HID functions can now be used WITH the standard Android USB features, no more needing to disable the standard USB features in order to use the app!
  • Roughly 4x smaller APK file size
  • Chinese Simplified Translation (thanks to @WeiguangTWK)

Changes (other):

  • Bump commons-codec dependency to 1.16.1
  • Enable minification and optimization without obfuscation (which is why, as mentioned above, the APK is much smaller)

v2.0.0

26 Mar 15:56
262eedd
Compare
Choose a tag to compare

NOTE: Major version bump due to breaking change. Previous release was a "maybe" as far as whether or not the modified keyboard report descriptor would cause issues on people's devices, but this release adds mouse support, so the character devices will need to be recreated. The script might work to modify the existing USB gadget created by the older version, but absolutely no guarantees on that. Your best bet is to follow the same procedure explained in the previous release. For clarity, reboot your device, update the app, open the app only after the update (not before), then you should be able to use it as normal.

Changes (user-facing):

  • Added mouse support!!!!
  • Added support for enabling or disabling the HID gadget within the app, meaning you can now restore the standard Android USB gadget features without using another app.
  • Improved the initial onboarding screen that explains a bit about the app

Changes (other):

  • removed Google's encrypted blob from builds
  • update dependencies
  • lots of refactoring

v1.1.0

24 Mar 18:35
e8b2b95
Compare
Choose a tag to compare

Edit: Fixed and updated attached APK to include the right version code and version name

NOTE: I've changed the keyboard character device to make it more efficient and less over-complicated. If you update, I THINK the previously-created character device should work fine, but to be safe (or if you experience problems), reboot (in order to delete the old character device), then update the app, then finally let it create the new character device.

Changes (user-facing):

  • Keyboard character device simplification mentioned above
  • Fix bug that caused app to not work on Android 13
  • Add debug mode option that allows user to enable and export logs (the only real purpose of this is to make it easier for a user to send me logs if they experience a bug)
  • Removed option to create the character device(s) on boot because I didn't make it clear to users that this will make USB debugging unavailable and it doesn't really provide a significant advantage
  • Removed option to default to ignoring issues as they arise, because I don't think that has a good reason for existing beyond potentially causing problems if someone has it selected without understanding the ramifications (or accidentally enabled it)

Changes (other):

  • Simplify SELinux policy code so it should work on all future Android versions unless they make a significant breaking change that goes against assumptions mentioned in their SELinux documentation page.
  • Greatly simplified all shell command code (lead to more error-checking and less code duplication).
  • Misc other improvements to code

v1.0.0

25 Dec 21:58
90501a8
Compare
Choose a tag to compare

Changes:

  • Settings, info, and help pages are now fully fleshed out
  • Added option to automatically recreate character device on boot (since it isn't persistent)
  • Added an option to allow the app to automatically fix issues when they arise (rather than being prompted and having to answer it every time) or ignore the issues
  • Added an onboarding screen that shows up when users open the app for the first time to allow them to configure some settings before using the app
  • Volume button passthrough is now functional

v1.0.0-beta.4

04 Dec 02:00
ba32d5b
Compare
Choose a tag to compare
v1.0.0-beta.4 Pre-release
Pre-release

This pre-release adds several new features and fixes several bugs as well, most notably, the code to create a character device (and fix its permissions to make it writable by this app without root) has been added, which was important, because I was too quick about the last release and realized after publishing it that I hadn't written the code, so you can now take advantage of the additions and changes in the last release as well.

Changes:

  • Magisk is the only supported root method. This is because I use magiskpolicy to modify selinux policy to allow writing to /dev/hidg0 without a root shell
  • No longer dependent on a separate app to create the character device. Now, on app startup, if /dev/hidg0 doesn't exist, then the user will be shown a prompt explaining the issue and asking if they want it to be fixed for them (if so, they just click a button and it's done automatically). The user can decline, I don't see why they would, but I left that option in just in case.
  • Code to support volume button passthrough has been written (it still doesn't work though, I suspect it's an issue with my HID gadget descriptor, this is being tracked in #7)
  • Remove "debug" menu entry
  • Fix spaces, enter, and tab not sending in direct input (From my tests, every key on Hacker's Keyboard works except for .com and a key that sends a KEYCODE_DPAD_CENTER key, both of which I can't find a corresponding HID scan code for)
  • Add some nice snackbars that tell the user when issues occur while sending keys (and show buttons allowing them to be fixed)

Plans for next release:

  • Finish settings, info, and help pages
  • Add option to automatically create the character device on every boot (because there's no way to make it persist that I can find)

v1.0.0-beta.3

25 Nov 23:22
Compare
Choose a tag to compare
v1.0.0-beta.3 Pre-release
Pre-release
  • Fix several miscellaneous bugs
  • Performance improved to the point where it's no longer an issue
  • Typing in "Direct Input" is now fully functional from my testing (Modifier keys work, including multiple at a time)
  • Hacker's Keyboard is the best supported keyboard for this app for reasons that can now be found in the README under prerequisites and I recommend switching to it when using this app (and changing the settings mentioned in that same section in the README), but other keyboards should mostly work too (however, random unfixable issues may occur, such as #5)

Update: this release won't work without changing the selinux context of /dev/hidg0, changing the permissions of it, and add an selinux policy to allow writing to /dev/hidg0. I plan to add code to detect if this is not done yet and do it automatically/show a pop up asking the user if they want the app to fix perms for them, but released this before writing it. This will be fixed in the next release.

v1.0.0-beta.2

26 Mar 23:35
Compare
Choose a tag to compare
v1.0.0-beta.2 Pre-release
Pre-release

Changes:

  • Add a performance mode to give users the choice between a much more performant (lower CPU usage and 15+ times faster in my limited testing), but potentially unstable experience and a stable, but slow, experience. More details about this solution can be found in issue #3.

v1.0.0-beta.1

26 Mar 22:30
Compare
Choose a tag to compare
v1.0.0-beta.1 Pre-release
Pre-release

Changes:

  • Fix issue where keys wouldn't release on Xbox (Unsure if this issue affected other platforms)
  • Implement a proper settings menu
  • Fix (hopefully) all visual bugs that used to occur when switching between logging levels
  • Misc UI fixes
  • Clean up the code a little
  • Add a new debug button in the overflow menu that'll be removed in the stable release, because, as the name implies, it's just there for debugging