有史以来第一次您能够击打一下计算机并得到有意义的呼应!运用 Linux® 和 Hard Drive Active Protection System(硬盘活动维护系统HDAPS)内核驱动程序咱们能够拜访 Lenovo(曾经称为 IBM®)ThinkPads 上的嵌入式加速器然后处理加速器的数据来读取特定 击打 事情序列(也便是您运用关节击打笔记本的事情序列)并根据这些击打事情运转一些指令双击确定屏幕然后敲入暗码来解锁击打显现屏一次就能够让 MP 播放器行进一个音轨这类或许事物是无穷无尽的
年IBM 开端发行集成了加速器和相关软件的 ThinkPad 笔记本以便在笔记本掉到地上时对硬盘进行维护来自 IBM 和其他当地的黑客现已为 Linux 内核开发了一些模块来运用这些传感器的长处屏幕显现方向桌面切换乃至是游戏操控和实时的笔记本倾斜度 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 装备文件中的双击指令这能够在屏保运转时供给很好的协助它更难检测出击打是否正确