Android输入输出安全浅析

本文探讨了Android系统中输入输出安全的重要性,分析了输入子系统如何从输入设备获取信息并分发到应用,以及存在的安全风险,如原始事件监听、输入法通信截取和传感器数据滥用。同时,文章提到了输出子系统的简单性导致的安全隐患,如易被恶意程序利用进行截屏。最后,展望了Android安全性的未来发展趋势。
摘要由CSDN通过智能技术生成

转自CSDN《程序员杂志》 作者:火点,Orlando

任何一款独立的操作系统都离不开输入输出环节,并且输入输出的安全与否关于到使用这个操作系统的用户隐私安全,Android系统也不例外,而且用户对手机的使用频率远远大于PC,这使得它的输入输出安全越发重要。本文抛砖引玉,对Android输入输出系统安全深入浅出的分析。

输入输出子系统的重任

简单的说,用户与手机的所有交互都是输入输出子系统承载的,用户通过各种输入设备向系统传达指令,如触摸屏,物理按键,各种sensor等等,然后结果输入子系统传递到某个具体应用完成用户想要的操作,然后通过输出子系统呈现给用户结果。由此可见,如果输入输入被攻破,用户的隐私数据将被轻松窃取,造成极大损失,如输入的银行卡号,密码,身份信息,隐私聊天记录,照片,视频等等,都有可能被窃取。那时,手机真的就变成手雷了。

那么,Android输入输出子系统到底安全吗?且看下面的分析。

输入子系统的漫漫长路

Android输入子系统工作内容主要包括以下几点:

1.      InputReader线程从按键,触摸屏等输入设备获取原始输入信息

开机后,Android中最重要的系统进程system_server中的InputManagerService在初始化中会创建两个线程用来处理输入事件,一个是InputReaderThread,一个是InputDispatcherThread。InputReaderThread在死循环中一直从EventHub中读取系统的输入事件,然后发送到InputDispatcher类中的一个队列里,用于InputDispatcher对其进行分发。

2.      InputDispatcher线程处理InputDispatcher队列中的事件。

在InputReaderThread使用了epoll机制,当有新的输入事件线程被唤醒,把转换好的消息发送到相应的窗口去,通过InputChannel把事件发送给具体的app进程。

3.      App进程收到事件后,最终通过一个view tree结构的根Décor View分发到最终会处理这个事件的Child View。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值