Android权限

5
首先我必须说我是新手Android开发者。
我是一名硕士研究生,我的毕业论文需要我开发一个系统,可以在后台收集所有触摸屏幕的用户输入,无论使用哪个应用程序。
这样做的目的是使用这些数据建立用户档案,并应用算法不断比较新输入和旧输入,以授予合法用户身份验证。
换句话说,我需要开发一个Touchlogger,但不是为了恶意目的。
我的问题是:安装过程中用户接受的初始权限是否足以允许我的应用程序从其他应用程序中收集触摸输入,或者它会因为沙盒而被阻止?
注:该系统将用于普通设备上的普通人员,因此对设备进行Root处理不应是一个选项。
谢谢您的帮助。
最好的问候

1
我真的希望没有root权限是不可能的 ;) - Viacheslav Rodionov
2
有趣的问题。我认为可以通过使用服务而不需要root权限来实现。Facebook Messenger的聊天头像功能以这样的方式工作,它们能够覆盖任何当前正在运行的活动,我想象这将很容易地应用于触摸检测。 - Kent Hawkings
1
@KentHawkings:那些“聊天头像”会拦截并消耗触摸事件。正如Raghav Sood的回答所指出的那样,消耗这些触摸事件将阻止底层应用程序获取它们,使设备无法使用。在旧版本的Android(1.x/2.x)上可能发生此类“点击劫持”攻击,但感谢上帝,现在已不再可能。 - CommonsWare
1
这需要作为修改后的Android平台的一部分进行部署(不仅仅是读取事件,而且要能够在整个系统范围内对认证决策进行操作),因此您应该从AOSP构建或从中派生的社区ROM项目之一开始。 - Chris Stratton
1
我曾经在寻找类似的东西来进行数据收集,但是不需要root权限。幸运的是,出于隐私和安全原因,这是不可能的。 - CommonsWare
显示剩余3条评论
1个回答

2

这是不可能的,特别是在较新版本的Android系统中。

原因是尽管有系统覆盖层可以让你在任何其他应用程序上显示聊天头像等内容,但你无法捕获触摸事件并将其传递给下面的应用程序。因此,即使你设法捕获事件,最终会导致设备无法使用,因为在你的叠加层下面什么都不能工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接