• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jmliang
V2EX  ›  程序员

[有偿求助] Mac 系统 USB 驱动开发,搞定直接>888 RMB<红包

  •  
  •   jmliang · Feb 27, 2025 · 3145 views
    This topic created in 615 days ago, the information mentioned may be changed or developed.

    设备是一个 USB 硬盘,加了指纹模块,开发了客户端与硬盘通信进行指纹管理,指纹录入这些功能。其他平台( Windows ,Android )的都做好了,就差 Mac 系统的,客户端 UI 这些已经 OK 了,目前卡在客户端与设备通信这里。指纹管理协议部分是魔改的 USB SCSI 协议。 只要搞定与设备通信部分就行,跑通了立马转账 888 WX:Sk1MODQxNDM0MzU5

    Supplement 1  ·  Feb 27, 2025
    真心求助,有没有大佬有空,可以加到 1500 块,只要与设备通信这块通了就行,板子这些都有,可以随时提供
    13 replies  •  2025-02-27 17:53:20 +08:00
    jmliang
    jmliang
    OP
    Feb 27, 2025
    1
    可以参考这个产品: https://www.alipan.com/s/UR3LtUkEavq
    musi
    musi
    Feb 27, 2025 via iPhone
    2
    用 libusb 不行吗?
    jmliang
    jmliang
    OP
    Feb 27, 2025
    3
    @musi 不行,不能读写端口,提示没有权限:Failed to write data: [Errno 13] Access denied (insufficient permissions)。目前测试的是通过 iokit 内核扩展( kext ),或者 driverkit 才有权限访问
    jeddida
    jeddida
    Feb 27, 2025
    4
    问的 chatgpt 可以测试一下,我不懂这些

    macOS 允许用户态程序使用 IOKit 直接操作 SCSI 设备,而不用写 Kext 。

    你可以尝试使用 IOKit 访问 SCSI 设备:

    #include <IOKit/IOKitLib.h>
    #include <IOKit/usb/IOUSBLib.h>

    kern_return_t result;
    io_service_t usbDevice;
    io_iterator_t iterator;

    // 查找 USB 设备
    result = IOServiceGetMatchingServices(kIOMasterPortDefault,
    IOServiceMatching(kIOUSBDeviceClassName),
    &iterator);

    if (result == KERN_SUCCESS) {
    while ((usbDevice = IOIteratorNext(iterator))) {
    // 这里可以发送 USB 请求
    IOObjectRelease(usbDevice);
    }
    }

    IOObjectRelease(iterator);
    wang93wei
    wang93wei
    Feb 27, 2025
    5
    @jeddida 号要没了……
    Bssn
    Bssn
    Feb 27, 2025
    6
    @wang93wei ai 判官...
    wang93wei
    wang93wei
    Feb 27, 2025
    7
    @Bssn 我看好几篇 直接贴 AI 代码的都凉了
    ivyliner
    ivyliner
    Feb 27, 2025
    8
    建议使用 driverkit, kext 已经被废弃了, 这块资料应该比较少, 888 我估计除非有人搞过, 否则去学习和调研的时间成本 cover 不住.
    Shatyuka
    Shatyuka
    Feb 27, 2025
    9
    试过 sudo ?
    jmliang
    jmliang
    OP
    Feb 27, 2025
    10
    @Shatyuka 试过不行
    jmliang
    jmliang
    OP
    Feb 27, 2025
    11
    @ivyliner 这块资料太少了,价钱好商量,真心想解决问题。
    galenzhao
    galenzhao
    Feb 27, 2025
    12
    感觉上应该用户空间的 app 也能实现这个功能,
    我用的 wd passport 的移动硬盘,他自带的 unlock app 就是用户态的,
    不需要装驱动。

    在 linux 上解锁的代码我看就是给 scsi 发送特殊指令。
    我搜到一些 mac 下 scsi 的 doc ,https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/WorkingWithSAM/WWS_SAMDevInt/WWS_SAM_DevInt.html
    ivyliner
    ivyliner
    Feb 27, 2025
    13
    @jmliang #11 嗯, mac 上太特殊了, 我没有搞过 usb 的, 我之前看过 audio driverkit, 还需要去苹果申请 entitlement, 还把我拒绝了 :-(
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3850 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 05:34 · PVG 13:34 · LAX 21:34 · JFK 00:34
    ♥ Do have faith in what you're doing.