Open
levone1
opened this issue 2 years ago
•
9 comments
Short story:
Not working on TCL Flip2. Installs and sets up fine, with all permissions and services checked. Shows up on screen, and scrolls around, but no clicks or scrolls registering anywhere.
Long story:
I've used this successfully on at least a couple of phones, (BLU Tank Flip currently), and unsuccessfully on a couple. I have also noticed the same inconsistency of function on other apps of similar function, (KDE Connect remote input, Google Voice Access, et al). I think what I realized is that there is some kind of function and/or property, both in the app/program, and in the phone firmware, the wrong combination of which will cause these things to not register.
For example, on my BLU, which is Android 8.1, I can use the latest Google Voice Access, and KDE Connect remote input, and works perfectly. However, on the TCL, which I think runs Android 12, only the older versions of Voice Access function. The newer versions install, and seem to work/respond fine, but when a command is given, nothing happens. A 'touch' gesture shows on the screen, as if it's trying to swipe/scroll, but the contents of the screen are unaffected. Same with KDE Connect. However, DeskDock works fine on both phones.
I don't know enough to know what it's called, but there seems to be some kind of embedded or specified function or protocol, potentially on either/both the device and the software that makes it able to respond or not. I assume it has something to do with newer, touch screen code, but not sure.
So I'm happy to just report here about my device and your app, but maybe you have some insight about the bigger picture. Is it possible to modify some device property, or maybe code in the app source that makes this work?
Phone is rooted, according to @neutronscott's guide - https://github.com/neutronscott/flip2/wiki
The phone does have a built-in mouse function which can be made to work well, bound to keycode, (my method here - https://github.com/neutronscott/flip2/issues/8), but it has the annoying limitation of being restricted within the boundaries of the status/nav bars. Anyway, I'm fine using it, but, like I said, I'm more curious about the bigger issue/question.
After testing a few different options, I found that with version "MATVT.1.0.7-rs_adbserver_testbranch-main_lab-test25", I can get clicks to work on items that are focused, but nothing else, (as reported by several others).
I noticed that @virresh mentioned in one thread that there may be an issue with gesture api being left out of some devices, and said, "without root level permissions, we may not be able to...". Is there a possibility to publish a root version, or post what possible mods/commands might be able to make it work? My phone is rooted.
When working with adb option, we use adb input to send input events. This is ignored by the system if it reports it doesn't have a faketouch capability (you can check it with the instructions in this thread). If your device doesn't have faketouch, there's no chance of adb inputs working in it's current state.
With root, you have a couple of options. You could flash a rom that supports faketouch (sorry I don't have any suggestions on this since there are a plethora of roms and I usually don't work on rooted devices these days). You could also port back accessibility API and use the main release version. If you're comfortable with coding, you could give special SE-Linux permissions that allow matvt to use accessibility apis even though it's from a different package.
Basically the possibilities are infinite with root access. If you do decide to go down any of these paths, I would be very interested to know the result!
When working with adb option, we use adb input to send input events. This is ignored by the system if it reports it doesn't have a faketouch capability (you can check it with the instructions in this thread). If your device doesn't have faketouch, there's no chance of adb inputs working in it's current state.
With root, you have a couple of options. You could flash a rom that supports faketouch (sorry I don't have any suggestions on this since there are a plethora of roms and I usually don't work on rooted devices these days). You could also port back accessibility API and use the main release version. If you're comfortable with coding, you could give special SE-Linux permissions that allow matvt to use accessibility apis even though it's from a different package.
Basically the possibilities are infinite with root access. If you do decide to go down any of these paths, I would be very interested to know the result!
Thanks. pm list features command returns:
feature:android.hardware.faketouchfeature:android.hardware.touchscreenfeature:android.hardware.touchscreen.multitouchfeature:android.hardware.touchscreen.multitouch.distinctfeature:android.hardware.touchscreen.multitouch.jazzhand
I compared output with my BLU phone, which works perfectly with MATVT, and the only thing I see that it has that the TCL doesn't, is "feature:android.hardware.vulkan...(2 variants)".
If it's not the faketouch/touchscreen feature issue, what do you think might be the blockage? DeskDock, and DroidMote both work fine, and function fully, but MATVT and KDEConnect both show the cursor, and successfully accomplish "back" action, but no affect on the screen. Could there be some protocol used or feature enabled in the one, that could be changed in the code of the others? I tried building KDEConnect older versions to test, but the same result.
When working with adb option, we use adb input to send input events. This is ignored by the system if it reports it doesn't have a faketouch capability (you can check it with the instructions in this thread). If your device doesn't have faketouch, there's no chance of adb inputs working in it's current state.
With root, you have a couple of options. You could flash a rom that supports faketouch (sorry I don't have any suggestions on this since there are a plethora of roms and I usually don't work on rooted devices these days). You could also port back accessibility API and use the main release version. If you're comfortable with coding, you could give special SE-Linux permissions that allow matvt to use accessibility apis even though it's from a different package.
Basically the possibilities are infinite with root access. If you do decide to go down any of these paths, I would be very interested to know the result!
Here's something possibly meaningful - I logcatted while using DeskDock, MATVT, and KDEConnect, to see if any obvious differences/signs, and I don't know enough to know how to interpret thousands of lined of log, but one thing I saw is that the log for MATVT seems to show that as it is being used, it is basically just continually sending whatever keycode is the one set as the boss key. So, I tried setting key to '2', and got a long string of
`11-29 20:25:31.957 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=15 keyguardOn=false canceled=false metaState:0
11-29 20:25:31.960 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=15, policyFlags=1107296256
11-29 20:25:31.960 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.006 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=16 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.009 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=16, policyFlags=1107296256
11-29 20:25:32.010 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.059 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=17 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.062 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=17, policyFlags=1107296256
11-29 20:25:32.062 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.096 1081 1179 D WindowManager: interceptKeyTq keycode=2 interactive=true keyguardActive=false policyFlags=22000000
11-29 20:25:32.102 4837 4837 I WTFLOGGER: Key ===>>>>>>>>>> 2
11-29 20:25:32.108 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=18 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.111 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=18, policyFlags=1107296256
11-29 20:25:32.112 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.160 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=19 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.163 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=19, policyFlags=1107296256
11-29 20:25:32.163 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.209 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=20 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.213 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=20, policyFlags=1107296256
11-29 20:25:32.213 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.262 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=21 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.265 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=21, policyFlags=1107296256
11-29 20:25:32.266 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.312 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=22 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.316 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=22, policyFlags=1107296256
11-29 20:25:32.317 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.364 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=23 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.368 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=23, policyFlags=1107296256
11-29 20:25:32.368 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.414 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=24 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.417 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=24, policyFlags=1107296256
11-29 20:25:32.417 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.426 1081 1179 D WindowManager: interceptKeyTq keycode=20 interactive=true keyguardActive=false policyFlags=22000000
11-29 20:25:32.431 4837 4837 I WTFLOGGER: Key ===>>>>>>>>>> 20
11-29 20:25:32.466 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=25 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.470 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=25, policyFlags=1107296256
11-29 20:25:32.470 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.515 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=26 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.519 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=26, policyFlags=1107296256
11-29 20:25:32.520 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.567 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=27 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.570 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=27, policyFlags=1107296256
11-29 20:25:32.571 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.616 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=28 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.621 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=28, policyFlags=1107296256
11-29 20:25:32.621 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.669 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=29 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.672 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=29, policyFlags=1107296256
11-29 20:25:32.673 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.719 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=30 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.728 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=30, policyFlags=1107296256
11-29 20:25:32.728 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.733 523 523 I BufferQueueProducer: [FramebufferSurface](this:0xb1d5e060,id:-1,api:1,p:523,c:523) queueBuffer: fps=17.87 dur=1007.13 max=597.46 min=14.51
11-29 20:25:32.734 482 508 I hwcomposer: [HWCDisplay] [Display_0 (type:1)] fps:17.871891,dur:1007.17,max:598.13,min:14.55
11-29 20:25:32.745 523 559 I BufferQueueProducer: [#1](this:0xb0d33780,id:65,api:1,p:4837,c:523) queueBuffer: fps=9.84 dur=1016.09 max=732.43 min=16.99
11-29 20:25:32.771 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=31 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.775 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=31, policyFlags=1107296256
11-29 20:25:32.775 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.806 1081 1179 D WindowManager: interceptKeyTq keycode=20 interactive=true keyguardActive=false policyFlags=22000000
11-29 20:25:32.811 4837 4837 I WTFLOGGER: Key ===>>>>>>>>>> 20
11-29 20:25:32.820 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=32 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.823 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=32, policyFlags=1107296256
11-29 20:25:32.823 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.872 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=33 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.876 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=33, policyFlags=1107296256
11-29 20:25:32.876 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.922 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=34 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.925 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=34, policyFlags=1107296256
11-29 20:25:32.925 1081 1178 D WindowManager: No fallback.
11-29 20:25:32.953 1081 1179 D WindowManager: interceptKeyTq keycode=23 interactive=true keyguardActive=false policyFlags=22000000
11-29 20:25:32.958 4837 4837 I WTFLOGGER: Key ===>>>>>>>>>> 23
11-29 20:25:32.974 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=35 keyguardOn=false canceled=false metaState:0
11-29 20:25:32.977 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=35, policyFlags=1107296256
11-29 20:25:32.977 1081 1178 D WindowManager: No fallback.
11-29 20:25:33.023 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=36 keyguardOn=false canceled=false metaState:0
11-29 20:25:33.027 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=36, policyFlags=1107296256
11-29 20:25:33.027 1081 1178 D WindowManager: No fallback.
11-29 20:25:33.075 1081 1178 D WindowManager: interceptKeyTi keyCode=2 down=true repeatCount=37 keyguardOn=false canceled=false metaState:0
11-29 20:25:33.079 1081 1178 D WindowManager: Unhandled key: inputToken=android.os.BinderProxy@297ba7c, title=com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher, action=0, flags=8, keyCode=2, scanCode=48, metaState=0, repeatCount=37, policyFlags=1107296256`
Ack
I haven't gone through the logs yet, but can you try disabling the untrusted touches on your device - https://github.com/virresh/matvt/issues/55#issuecomment-1356076190
This was a security feature introduced in Android last year and I think it may have been rolled out to more devices.
Checked the logs here and doesn't look like the issue is captured in them.
Do you mind looking through the system logs and checking if you see something there?
Ideally should be something with level error or above, but if we don't find anything there, we should check warning level and above.
Checked the logs here and doesn't look like the issue is captured in them. Do you mind looking through the system logs and checking if you see something there?
Ideally should be something with level error or above, but if we don't find anything there, we should check warning level and above.
Thanks.
Sorry, probably wasn't clear - I knew there wasn't an error in the logs, I was just posting them to ask if that seemed normal. What the log shows is the events being sent when I was clicking items on the screen, and it's always just whatever keycode I assigned as boss - that's the only thing the app ever seems to send.
The main problem is that there are no errors that I can see, but you would know better. I will catch a full log, and upload.
Checked the logs here and doesn't look like the issue is captured in them. Do you mind looking through the system logs and checking if you see something there?
Ideally should be something with level error or above, but if we don't find anything there, we should check warning level and above.
So here's logcat "beginning of system" - https://pastebin.com/NKtJUPsR
And here's from when I started using MATVT - https://pastebin.com/4crt8HCT