1

Certain apps like Type Machine claim to be able to record everything you type. You have to install it and activate it from the device's accessibility settings, then it can somehow record typed text.

How is this even possible? It is not a keyboard app , so it is not directly accessing the keystroke information. Also, according to the android documentation "Only the system is allowed to directly access an IME's InputMethod interface" and 'Only the active client's InputConnection will accept operations'.

Given that a 3rd party service like Type machine is neither a system app or the active client, how is it able to record typed information?

2 Answers 2

1

It installs an Accessibility Service. These services are usually used as screen readers (like TalkBack), and thus have access to on-screen text. It is thus able to record on-screen information. If you install the app, you'll notice it prompts you to register it as an accessibility service so as to collect input information.

However, one limitation of this is it's unable to collect data within password fields.

-1

As far as I know, no 3rd party app can record your "keystrokes" when installed on a non-rooted android phone. When an app gains privilege and is given root access, only then it could act like a system app on a rooted phone. This is why Google has never given root access to users. It's too risky. Anybody can install a spyware "keylogger" app on your non rooted phone and take advantage.

2
  • 2
    I see a lot of opinion here. The question needs to be addressed technically, explaining what Accessibility Settings is capable of, what devastating things apps can do using it, if possible. Then you might have to deal with OP's claim of Android documentation regarding IME's InputMethod interface.
    – Firelord
    Jul 28, 2015 at 15:47
  • Thanks for the reply, I'd like a few more technical details on how exactly the app is able to access the keystrokes, like through which API , class etc though
    – Eridanus
    Jul 29, 2015 at 5:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .