Skip to content

Releases: Xtr126/XtMapper

v2.3.0

21 Sep 13:08
1cc63bd
Compare
Choose a tag to compare

This release brings a new user interface, quality of life improvements, a workaround for a breaking change in 14 QPR3 and more.
Screenshot_20240921_100917_XtMapper (Debug)

Full Changelog: v2.2.1...v2.3.0

Some issues with FPS games are expected, they will be attempted to be solved in next release.

What's Changed

  • Punjabi (ਪੰਜਾਬੀ) Translation added by @KSMaan45 in #109

New Contributors

v2.2.1

17 Aug 09:34
Compare
Choose a tag to compare

Quick release to fix a critical issue with v2.2.0.
Thanks to StoneSpider from the discussion group for reporting it.

New Contributors

What's Changed

  • Added Arabic translation by @muhammadbahaa2001 in #106
  • Fixed a bug with horizontal mouse movement in aiming mode.
  • Automatically hide pointer when entering aiming mode.

v2.2.0

16 Aug 16:33
c0b2ab3
Compare
Choose a tag to compare

What's new

Thanks to @guobao2333 for first translation contribution to our project: Add Chinese language (是果宝呐) #101

  • Vertical/horizontal sensitivity adjustment for aiming #103 (Xtr126)
    (31b6554))
    Added an non-linear scaling option to fix sensitivity in some games (#90) and individual X/Y axis sensitivity adjustment.
    Screenshot_20240816_220642_XtMapper

  • Importing/exporting profiles (Xtr126)
    IMG_20240815_223920_428

  • Some layout changes #101 (Xtr126)

  • Use string arrays for drop-down menus to support locales #101 (Xtr126)

  • Alert when shizuku is not authorized (Xtr126)

Bug fixes

  • Write script only if not found (Xtr126)
  • Use tablet layout only in landscape mode (Xtr126)
  • Stringbuffer comparison on API <34 (Xtr126)
  • random crash due to PendingIntent (Xtr126)
  • Fix Launching editor from notification (Xtr126)
  • Random crash (Xtr126)
  • Use single WindowManager instance for stability (Xtr126)
  • Set default type to POINTER_OVERLAY (Xtr126)
  • Alert when shizuku not authorized #102 (Xtr126)
    (04fca05))
  • Hide cursorView using visibility flag for View (Xtr126)
  • Use dynamic color theme (Xtr126)
  • Obtain context when launched using xtMapper.sh (Xtr126)
  • Fixed Nullpointerexception on accessing recyclerview (Xtr126)

Code Refactoring

Builds

Chores

Commits

  • 3985851: Upgrade AGP from 8.2.2 to 8.5.0 (Xtr126)
  • 742c4da: Add middle mouse button as mouse aim trigger #96 (Xtr126)
  • 42636ff: Update workflows (Xtr126)
  • f41e6b5: Update build-apk.yml (Xtr126)
  • 0ba45a2: Update README.md (Xtr126)
  • (#101)
  • d03bc34: test non linear scaling (Xtr126) #103
  • c41c45b: Add import/export button (Xtr126)
  • 49a8b97: Add landscape layout for ImportExportActivity (Xtr126)

v2.1.5

02 May 17:06
Compare
Choose a tag to compare

Added custom dpads, universal APK and some other changes.
Full Changelog: v2.1.4...v2.1.5

v2.1.4

07 Mar 18:12
Compare
Choose a tag to compare

v2.1.4 fixes some issues related to mouse aim and using other functions of the keymapper while holding left mouse click.
Set swipe delay to a non zero value by default.
It adds a toggle for opening editor in a overlay window as a workaround for multi window systems such as WSA/ChromeOS that do not display a transparent activity properly. As a preliminary step in adding support for WSA #65

Features

  • Support side buttons on mouse #82 (Xtr126)
  • Introduce option to toggle opening editor as overlay (Xtr126)

Bug Fixes

  • Fixed issue with using alt key as modifier
  • use material theme for dialog (Xtr126)
  • Looper not prepared (Xtr126)
  • settings layout (Xtr126)
  • Use distinct pointer id for mouse aim #82 (Xtr126)
  • apply swipe delay when re-entering bounds (Xtr126)

v2.1.3

25 Feb 17:19
Compare
Choose a tag to compare

Now Android system won’t show a notification “XtMapper is displaying over other apps” when keymapper is running.
Updated documentation / in-app help.
Workaround for untrusted touches is not required anymore.

Features

  • use TYPE_SECURE_SYSTEM_OVERLAY for showing pointer over system windows (Xtr126)
  • add setting for switching pointer mode (Xtr126)

Bug Fixes

  • check if cursorView is null (Xtr126)
  • run on ui thread (Xtr126)
  • implement destroy() method to remove cursorView (Xtr126)
  • Remove cursorView when service stopped (Xtr126)
  • check if cursorView is null (Xtr126)

Code Refactoring

v2.1.2

22 Feb 05:41
Compare
Choose a tag to compare

Now XtMapper works on non rooted devices without setting SELinux to permissive, using Shizuku.
A workaround using adb shell may be needed on certain devices: https://developer.android.com/about/versions/12/behavior-changes-all#test-untrusted-touch-events
Shizuku should be installed and XtMapper should be authorized. Additionally “Use shizuku” should be enabled in XtMapper settings. https://xtr126.github.io/XtMapper-docs/guides/activation/#non-rooted-devices

Commits

  • Add support for Shizuku as activation method (Xtr126)
  • 860471d: Ask and exit gracefully when service could not be run with sufficient privileges (Xtr126)
  • 2641e02: Disable dependency info block #79 (Xtr126)
  • a1e550f: Update dependabot.yml (Xtr126)
  • 06edc32: Merge branch 'dev' into dependabot/gradle/com.android.library-8.2.2 (Xtr126) #69
  • daa209c: Update release.yml (Xtr126)

v2.1.1

21 Feb 07:36
Compare
Choose a tag to compare

Quick release to fix an issue on Android 14.

Features

  • add touchpad to direct touch (Xtr126)
  • bring back system pointer (uinput virtual tablet) (Xtr126)
  • checking device name (Xtr126)
  • start/stop touchpad direct (Xtr126)
  • Add touchpad input mode selector (Xtr126)
  • Implement touchpad relative input mode (Xtr126)
  • split APKs based on ABI (Xtr126)
  • Use libsu for root access (Xtr126)
  • target Android 14 (Xtr126)
  • Add naming for APK (Xtr126)
  • signing release APK (Xtr126)
  • Use RootService from libsu (Xtr126)

Bug Fixes

  • run on ui thread (Xtr126)
  • check if binding is null (Xtr126)
  • set BTN_TOUCH if not set (Xtr126)
  • check if INPUT_PROP_POINTER set for touchpad (Xtr126)
  • segmentation fault (Xtr126)
  • check for only eventX (Xtr126)
  • touchpad relative motion (Xtr126)
  • Android 14 #78 (Xtr126)
  • disable tcpip (Xtr126)
  • call Looper.loop() (Xtr126)
  • android.os.DeadObjectException (Xtr126)
  • pauseKeymap() freezes input (Xtr126)
  • call System.exit() (Xtr126)
  • pkill instead of pgrep (Xtr126)
  • Use Material theme (Xtr126)
  • Do not disable activation (Xtr126)
  • remove view only if attached (Xtr126)
  • check if root access available for RootService (Xtr126)
  • exit if root access not available (Xtr126)
  • use MaterialAlertDialogBuilder (Xtr126)
  • disable touchpad support by default for now (Xtr126)

Code Refactoring

  • rename MouseCursor.cpp and use UI_DEV_SETUP and UI_ABS_SETUP ioctls (Xtr126)
  • Inline injectTouch() method (Xtr126)
  • define virtual tablet device name in header file (Xtr126)
  • Use range-based for loops (Xtr126)
  • support multiple mouse devices (Xtr126)
  • dont cast to 'void *' (Xtr126)
  • Remove ok button from app selector dialog (Xtr126)
  • rewrite using byte arrays (Xtr126)
  • try tcpip connection first (Xtr126)
  • Remove Auto-activation button and add Launch app (Xtr126)
  • remove unused imports (Xtr126)
  • move members from RemoteService class (Xtr126)
  • remove unused resources (Xtr126)

Builds

  • deps: bump ndkVersion to 26.1.10909125 (Xtr126)
  • deps: upgrade android gradle plugin (Xtr126)
  • deps: bump com.github.topjohnwu.libsu:service from 5.2.1 to 5.2.2 #80 (dependabot[bot])
  • deps: bump com.github.topjohnwu.libsu:core from 5.2.1 to 5.2.2 #81 (dependabot[bot])

Chores

Commits

  • 4c52d98: Add touchpad configs (Xtr126)
  • 0633933: Add libsu dependency (Xtr126)
  • b82ee10: Update issue templates (Xtr126)
  • 2ea5b6d: Check for BTN_MOUSE if INPUT_PROP_POINTER not set (Xtr126)
  • 9edc52c: Update README.md (Xtr126)
  • 837dc24: Update README.md (Xtr126)
  • 063a392: Update android.yml (Xtr126)
  • d87e497: Update README.md (Xtr126)
  • 071d401: fix (wlclient): move only one cursor (Xtr126)
  • b9fb649: Adding code for socket ipc #63 (Xtr126)
  • d837f70: Update AGP dependency (Xtr126)
  • ad37a6d: Add server code (Xtr126)
  • ae993dd: Add --tcpip flag to server (Xtr126)
  • 937ec8b: Update README.md (Xtr126)
  • e2645de: Update release.yml (Xtr126)
  • d426b72: remove unused imports (Xtr126)
  • 80c0bdf: Create build-docs.yml (Xtr126)
  • bbcfde5: Update release.yml (Xtr126)

v2.1.0

28 Oct 16:45
Compare
Choose a tag to compare

This release fixes several bugs reported by @ilhan-athn7 and almost all currently known issues

Integrated new documentation into the app

screenrec.mp4

Full Changelog: v2.0.1...v2.1.0

v2.0.1

19 Sep 18:39
Compare
Choose a tag to compare

Top level activity detection

XtMapper will periodically detect what apps are running currently and automatically switch keymapping accordingly.

  • Multiple profiles for one app are also supported.
  • User will be prompted to select profile when launching app if there are multiple profiles.
  • Now the keymapper can also be disabled for other apps, enabling it automatically only when specific apps are running.

Other changes:

  • Fixed a crash when starting service
  • Fixed a crash when kernelSU is not installed
  • Fixed a rare freezing issue for some occasions
  • Added experimental wayland client support

Full Changelog: v2.0...v2.0.1