Releases: Xtr126/XtMapper
v2.3.1
After your feedback, the app icons have been made smaller now.
- Added "Add games" button
- Fixed a crash when launching games
- Fixed deviation of pointer and cursor overlay position on small screen devices
- Fixed oversized floating keys
- Automatically enable system pointer mode as a better workaround for the 14 QPR3+ issue
- Fixed cursor randomly not visible on 14 QPR3+
- Fixed ghost cursor issue
Full Changelog: v2.3.0...v2.3.1
v2.3.0
This release brings a new user interface, quality of life improvements, a workaround for a breaking change in 14 QPR3 and more.
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
New Contributors
v2.2.1
Quick release to fix a critical issue with v2.2.0.
Thanks to StoneSpider from the discussion group for reporting it.
New Contributors
- @muhammadbahaa2001 made their first contribution in #106
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
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.
-
Importing/exporting profiles (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
- deps: bump androidx.webkit:webkit from 1.10.0 to 1.11.0 in /app #91 (dependabot[bot])
- deps: bump com.google.android.material:material in /app #92 (dependabot[bot])
- deps: bump androidx.appcompat:appcompat in /app #94 (dependabot[bot])
- deps: Jpgrade libsu from 5.2.2 to 5.3.0 (Xtr126)
Chores
- release v2.2.0 (Xtr126)
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
Added custom dpads, universal APK and some other changes.
Full Changelog: v2.1.4...v2.1.5
v2.1.4
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
v2.1.3
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
- Use BuildConfig (Xtr126)
v2.1.2
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
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
- release v2.1.1 (Xtr126)
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
This release fixes several bugs reported by @ilhan-athn7 and almost all currently known issues
- Added an option to disable auto-profiling: https://xtr126.github.io/XtMapper-docs/features/auto_profiling
- Hiding cursor for disabled profiles
- Show toast "Keymapping Enabled/Disabled for .." when switching profiles
- Launch editor in fullscreen (immersive mode) #50
- Changes in Kernel SU root access detection to not show "root access not found dialog" always #52
- Improved and fixed issues with keyboard shortcut functions https://xtr126.github.io/XtMapper-docs/settings/shortcuts/
Integrated new documentation into the app
screenrec.mp4
Full Changelog: v2.0.1...v2.1.0