在 Mac OS X Finder 中添加自定义网络设备图标?

在 Mac OS X Finder 中添加自定义网络设备图标?

Mac OS X Finder 足够自负,可以将任何非 Mac 设备显示为带有 BSOD 的 PC 图片,但我想知道是否可以添加其他设备,以便检测到我的 Ubuntu 机器并显示 Ubuntu PC 的图片,而我的 Windows PC 则显示 Windows 崩溃的图片等。

我知道 public.generic-pc.icns 存在并且可以被替换,但我对替换它本身不感兴趣,更感兴趣的是让 finder 识别其他设备(或了解它如何识别其他 Apple 设备)并将自定义图标映射到它们。

有什么线索吗?

答案1

看来我已经很接近了,只是我没有让我的机器正确地宣传自己。

我终于让它工作了:

Mac OS X 中的自定义网络设备映像

我使用的方法如下:

  1. 首先,在 Mac 上,我通过复制并粘贴文件夹中的现有捆绑包(例如 MobileDevices.bundle 或 MachineTypes.bundle)创建了一个名为“ComputerTypes”的自定义捆绑包/System/Library/CoreServices/CoreTypes.bundle/Contents/Library

  2. 然后,我打开Contents/Info.plistXCode Plist 编辑器并编辑所有详细信息以创建自定义包,更改包标识符、名称等。

  3. 我删除了“UTExportedTypeDeclarations”键中的所有现有条目,然后为每个设备创建了一个新条目。每个设备条目都有一个“UTTypeConformsTo”、“UTTypeDescription”、“UTTypeIconFile”、“UTTypeIdentifier”和“UTTagSpecification”,其中“UTTagSpecification”字典包含键“com.apple.device-model-code”中的数组,其中包含要接受的所有 mDNS _device-info._tcp 标识符。UTTypeIconFile 指的是 Resources 文件夹中的 icns 文件。

  4. 然后我将该包保存到/System/Library/CoreServices/CoreTypes.bundle/Contents/Library文件夹并重新启动。

  5. 在另一台机器上,我需要设置以宣传 _smb._tcp 服务以及 _device-info._tcp TXT 记录,像往常一样,只是使用自定义型号名称而不是 Mac 产品名称。

  6. 重新启动 Mac 后,它应该如上图所示。

我将完成的包上传到http://dl.dropbox.com/u/4140005/ComputerTypes.bundle.zip举个例子。

答案2

这可能只值得对亚当的回答进行评论,但我需要格式化。

在 Windows 中,假设已安装 iTunes 或 Bonjour for Windows,您可以使用以下命令宣传 samba 共享:

  1. 打开两个 cmd 提示符。
  2. 运行以下命令(在不同的控制台中):

    dns-sd -R 计算机名称 _device-info._tcp 本地 445 型号=Xserve3,1

    dns-sd -R 计算机名 _smb._tcp 本地 445

Dns-sd 不会退出,如果您按 Ctrl-C 或关闭 cmd,共享将从 Finder 中消失。尽管 Adam 提供了有用的示例文件(这可能是 10.6 与 10.8 的问题……他的和 10.8 的 plist 之间存在差异),我只能设法使用默认的 OSX 图标。此外,我花了很长时间才弄清楚如何让 Windows 运行此命令并在开机/关机和唤醒/睡眠时关闭它(不过,要从 bat 脚本关闭 dns-sd,您只需使用 taskkill)。

答案3

由于声誉问题,我无法发表评论,但我想补充一下,因为现在人们可能会遇到它并想实现这一点。在 Sierra 的 SIP 实现中,由于无法将文件复制到任何 CoreServices 子目录,Adam 的方法默认不再有效。您必须先禁用 SIP。

在我进一步说明之前,您必须了解 SIP 是 Apple 采取的一项保护措施,以确保您的系统完整性不受损害。

我不会深入讨论作为一名应用程序开发人员我对 SIP 的看法,但我可以说我并不总是与 Apple 的决策同步。

去做这个:

重启 Mac。听到提示音后,按住 CMD+R 直到桌面开始出现。从顶部的“实用程序”菜单中,选择“终端”输入“csrutil disable”并按回车键。输入“rebo​​ot”并按回车键。

SIP 现已禁用。我一般不关心 SIP,但我知道我是少数派。另外,我不希望 Apple 对我太生气。话虽如此,我建议如果你这样做是为了替换系统图标,请在完成后立即重新启用 SIP。为此,请按照说明禁用,但将“禁用”一词替换为“启用”。

相关内容