新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Linux 笔记本基于“敲打”的命令

Linux 笔记本基于“敲打”的命令

作者:时间:2016-09-12来源:网络收藏

有史以来第一次您可以敲打一下计算机并得到有意义的响应!使用 Linux® 和 Hard Drive Active Protection System(硬盘活动保护系统HDAPS)内核驱动程序我们可以访问 Lenovo(以前称为 IBM®)ThinkPads 上的嵌入式加速器然后处理加速器的数据来读取特定 敲打 事件序列(也就是您使用关节敲打笔记本的事件序列)并基于这些敲打事件运行一些双击锁定屏幕然后敲入密码来解锁敲打显示屏一次就可以让 MP 播放器前进一个音轨这类可能事物是无穷无尽的

本文引用地址:http://www.eepw.com.cn/article/201609/303753.htm

年IBM 开始发行集成了加速器和相关软件的 ThinkPad 笔记本以便在笔记本掉到地上时对硬盘进行保护来自 IBM 和其他地方的黑客已经为 内核开发了一些模块来利用这些传感器的优点屏幕显示方向桌面切换甚至是游戏控制和实时的笔记本倾斜度 D 模块现在都已经可以使用了本文将展示 敲打代码 这种新技术和一个简单程序该程序在检测到特定的敲打代码时会运行一些

使用带有 HDAPS 驱动的已更新的内核我们就可以用一个简单程序 knockAge 来生成敲打代码了我们也可以下载并使用一个 Perl 脚本来定制自己的敲打输入环境请参阅本文最后的 下载 和 参考资料 部分给出的链接其中包括了解 knockAge 操作的链接

硬件需求

容易实现

正如您从展示视频(请参见下面 参考资料 中的链接)可以看到的敲打操作是由一系列指节敲打构成的尽管 ThinkPad 的加速器是为保护它不受意外事件的影响但太强力的振荡仍然会对硬盘造成损坏因此我们必须小心

很多在 年以及这以后生产的 IBM(现在是 Lenovo)的 ThinkPads 中都有 HDAPS 硬件如果您不确定自己的硬件配置可以检查 Lenovo 的 Web 站点上关于您自己型号的机器的技术细节如果您的机器上没有 ThinkPad那么这段代码可能无法在您的笔记本上正常工作

本文是在 x 体系架构上编写的本文中的代码是在 ThinkPad Tp 的两个不同模块上进行开发和测试的有关 ThinkPad 硬件的链接请参阅 参考资料 部分

如果您有一台 Apple MacBook那么您可能也有这种加速器并且可以使用相同的方法通过内核访问它们然而本文中的代码并没有在 Apple 硬件上进行测试

软件要求

HDAPS 驱动程序必须包括在内核中才能启用对加速器的访问试图对现有内核增加补丁也不会获得成功因此我们建议从自己喜欢的镜像站点上下载最新的内核新内核发行版中已经包含了对 HDAPS 驱动程序的支持

启动内核配置选择程序并在配置中包含 HDAPS 驱动程序HDAPS 驱动程序位于Device Drivers > Hardware Monitoring Support > IBM Hard Drive Active Protection System (hdaps) 选项中更多的内核配置和安装过程已经超出了本文的范围但是在 Web 站点上有很多教程可以提供具体的帮助有关可以帮助我们入门的链接请参阅 参考资料 一节的内容

本文是在 版本的内核上进行开发和测试的

创建简单的敲打序列

从 下载 一节的链接中下载源代码并从中找到 knockAgepl 脚本这就是让我们可以创建敲打序列的主要 Perl 程序它还允许监听特殊的敲打序列并运行下面让我们来介绍一下这个用户空间程序的用法以及 knockAgepl 程序的配置然后再对这个函数进行回顾

使用下面的命令运行 knockAgepl 程序

perl knockAgepl c

这会启动 Perl 程序来监听敲打事件并记录下它们之间的间距以供将来使用一旦程序开始运行之后对笔记本进行的敲打操作就会产生效果我们并不需要在物理上移动自己的 ThinkPad 来注册敲打事件如果 ThinkPad 在一个平面上只要对其进行一些移动和滑行即可我建议您用左右握住 ThinkPad 左边接近连接轴的地方同时用右手在距离 LCD 底部 英寸的地方敲打显示屏即可请参阅 下载 部分给出的视频展示或参阅 参考资料 中用来创建敲打序列的例子

体验不同的敲打幅度和力度从而了解 knockAge 程序能够捕获的事件判断率对于创建复杂的敲打事件来说这非常重要

第一次真正尝试敲打应该非常简单两次双击之间停留 秒然后再次运行 perl knockAgepl c在看到 enter a knock sequence 时稳定地敲打 LCD 边上两次中间停留 秒在 秒之后会自动超时(这是可以配置的)您所敲打的序列会被打印出来这类似于下面的例子

_#_ (command here) _#_

让我们来分析一下这一行的内容敲打序列分隔符命令区分隔符最后是注释区我们的下一个步骤是将这行内容复制到 knockAgepl 程序使用的默认配置文件 {$HOME}/knockFile 中该配置文件也可能是 /home//knockFile 文件在使用上面的敲打序列行创建好 knockFile 文件之后就可以对这行进行修改来运行程序了将 (command here) 文本修改成 /bin/echo double tap并将注释区的内容修改成更有意义的内容例如

_#_ /bin/echo double tap _#_ Double tap event

现在我们已经修改好这个配置文件可以打印一条通知了接下来使用下面的命令在守护模式下运行 knockAge 脚本

perl knockAgepl

这个程序会在后台安静地监听 ~/knockFile 所罗列的事件请使用相同的间隔再次双击屏幕您会看到在屏幕上打印出了 double tap 消息如果我们希望更详细地了解 knockAgepl 脚本是如何工作的那么我们可以使用下面的命令在守护模式下运行它

perl knockAgepl v

使用 xscreensaver 锁定屏幕或打开屏幕

创建 password 序列

使用下面的命令在 create 模式下运行 knockAgepl 程序

perl knockAgepl c

现在我们需要创建一个解锁的密码序列我建议使用 刮脸和理发的动作请确保每次您都可以以一贯精确的方式执行这个动作尽管您可以通过修改参数来控制输入密码敲打操作所需要的精度但是这仍然很难匹配精确的时间刮脸和理发动作 除了可以提供稳定的击打顺序之外其复杂性和简单性对于屏保解锁密码来说也非常适合下面是一个刮脸和理发动作 的击打序列示例

_#_ /bin/echo shave the haircut _#_ two bits

在进行下一步操作之前您应该体验一下上面的命令和 ~/knockFile 配置文件中的双击命令这可以在屏保运行时提供很好的帮助它更难检测出敲打是否正确


上一页 1 2 3 4 下一页

关键词: Linux 命令

评论


相关推荐

技术专区

关闭