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

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

  •  
  •   jmliang · Feb 27, 2025 · 2477 views
    This topic created in 464 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
        1
    jmliang  
    OP
       Feb 27, 2025
    可以参考这个产品: https://www.alipan.com/s/UR3LtUkEavq
    musi
        2
    musi  
       Feb 27, 2025 via iPhone
    用 libusb 不行吗?
    jmliang
        3
    jmliang  
    OP
       Feb 27, 2025
    @musi 不行,不能读写端口,提示没有权限:Failed to write data: [Errno 13] Access denied (insufficient permissions)。目前测试的是通过 iokit 内核扩展( kext ),或者 driverkit 才有权限访问
    jeddida
        4
    jeddida  
       Feb 27, 2025
    问的 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
        5
    wang93wei  
       Feb 27, 2025
    @jeddida 号要没了……
    Bssn
        6
    Bssn  
       Feb 27, 2025
    @wang93wei ai 判官...
    wang93wei
        7
    wang93wei  
       Feb 27, 2025
    @Bssn 我看好几篇 直接贴 AI 代码的都凉了
    ivyliner
        8
    ivyliner  
       Feb 27, 2025
    建议使用 driverkit, kext 已经被废弃了, 这块资料应该比较少, 888 我估计除非有人搞过, 否则去学习和调研的时间成本 cover 不住.
    Shatyuka
        9
    Shatyuka  
       Feb 27, 2025
    试过 sudo ?
    jmliang
        10
    jmliang  
    OP
       Feb 27, 2025
    @Shatyuka 试过不行
    jmliang
        11
    jmliang  
    OP
       Feb 27, 2025
    @ivyliner 这块资料太少了,价钱好商量,真心想解决问题。
    galenzhao
        12
    galenzhao  
       Feb 27, 2025
    感觉上应该用户空间的 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
        13
    ivyliner  
       Feb 27, 2025
    @jmliang #11 嗯, mac 上太特殊了, 我没有搞过 usb 的, 我之前看过 audio driverkit, 还需要去苹果申请 entitlement, 还把我拒绝了 :-(
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2755 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 05:26 · PVG 13:26 · LAX 22:26 · JFK 01:26
    ♥ Do have faith in what you're doing.