Blog

Blog

PHODAL

Ducky 9008S2 Mac OS下使用

一直在想办法用自己的机械键盘,而不是买一个新的,于是终于在今天重新发现了一个库可以用来支持一些通用的HID的Repo,最后发现自己的键盘也是支持的。

HID descriptor

USB报告描述符(Report Descriptor)是HID设备中的一个描述符,它是比较复杂的一个描述符。

https://github.com/thefloweringash/iousbhiddriver-descriptor-override这个repo里对这个项目的描述是:

This OS X kernel extension provides a method for overriding a HID descriptor and ignoring the descriptor provided by the device. This is useful when the HID descriptor returned by a HID device is invalid or incorrect.

Mac OS X的内核扩展提供了用于覆盖一个HID描述,而忽略由所述装置提供的描述符的方法。当由HID设备返回的HID描述符无效或不正确的,这是很有用的。

于是项目中写了这样的两个问题——为什么一些键盘不支持Mac OS

  • 重复按键
  • 修改键只有一些能工作

HID 描述符具有通过同时指定立即用法的列表,以及一系列用途的重叠。这将导致OS X的同时发送用法时,在重叠范围内的键被按下。这里使用的解决方案是将项目分成两个独立的项:一个用于直接列表和其它的范围。

所以上文中说的项目只是修改了HID描述符。

Ducky 9008s2 Mac OS 驱动

我们可以编译代码来重新获得我们的驱动,也可以直接下载。。

Ducky 9008s2 Mac OS 下载

安装完需要重启

下载地址: https://thefloweringash.com/iousbhiddriver-descriptor-override/downloads/

Ducky 9008s2 Mac OS 驱动编译

安装依赖

gem install bundler
bundle install --without scan

构建

注意: 构建需要用到xcode

xcodebuild
sudo cp -r build/Release/IOUSBHIDDriverDescriptorOverride.kext \
/System/Library/Extensions
sudo kextutil \
/System/Library/Extensions/IOUSBHIDDriverDescriptorOverride.kext

其他

一开始进入了一个思维误区,以为我的键盘需要自己获取描述符,后面重新插拔了键盘才发现原来是可以工作的。

查看USB设备属性

执行

 ioreg -p IOUSB -c IOUSBDevice | grep -e class -e idVendor -e idProduct -e bcdDevice

最后会返回我们的键盘和鼠标的一些属性

+-o USB Keyboard@14100000  <class IOUSBDevice, id 0x10000101e, registered, matched, active, busy 0 (212 ms), retain 36>
|     "idProduct" = 359
|     "bcdDevice" = 272
|     "idVendor" = 1241
+-o G9x Laser Mouse@14500000  <class IOUSBDevice, id 0x100001050, registered, matched, active, busy 0 (170 ms), retain 27>
      "idProduct" = 49254
      "bcdDevice" = 22530
      "idVendor" = 1133

(PS: Let's enjoy typing)

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806

新书《前端架构:从入门到微前端》

《前端架构:从入门到微前端》是一本围绕前端架构的实施手册,从基础的架构规范,到如何设计前端架构,再到采用微前端架构拆分复杂的前端应用。本书通过系统地介绍前端架构世界的方方面面,来帮助前端工程师更好地进行系统设计。

前端架构包含以下五部分内容:

  • 设计:讲述了架构设计的模式,以及设计和制定前端工作流。
  • 基础:通过深入构建系统、单页面应用原理、前端知识体系等,来构建出完整的前端应用架构体系。
  • 实施:通过与代码结构的方式,介绍如何在企业级应用中实施组件化架构、设计系统和前后端分离架构。
  • 微前端:引入6种微前端的概念,以及如何划分、设计微前端应用,并展示了如何实现这6种微前端架构。
  • 演进:提出更新、迁移、重构、重写、重新架构等架构演进方式,来帮助开发人员更好地设计演进式架构。
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Developer, Consultant, Writer, Designer

ThoughtWorks 高级咨询师

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 与我沟通

标签