Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

nylock10

macrumors regular
Original poster
Jun 26, 2006
209
0
Hey,

I put AFPd on my iPod touch to manage files with Finder, but how can I change the icon from a cinema display to an iPod touch?

Here's a screenshot:
picture4gv4.png
 
It won't be as easy as you might think.

The information about what model each machine on the network is is gathered through Bonjour. Normally, Macs send out a special _device-info._tcp "service" with additional data of, for instance, "model=MacBook3,1". On Linux using avahi, I've been able to set icons with a service entry like this:
Code:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name>thehostname</name>
  <service> 
    <type>_device-info._tcp</type>
    <port>0</port>
    <txt-record>model=iMac7,1</txt-record>
  </service>
</service-group>
as well as service entries for AFP, SMB, or VNC (doesn't matter, but you need to share one of them for your machine to show up in Finder.)

The second piece of the puzzle is the icons: The icons themselves are in /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources, and the mapping from model identifiers to icons is in /Contents/Info.plist in the same bundle. (Look at UTExportedTypeDeclarations, down toward the later entries. For instance, on my machine, the 17" MBP is #225.)

I think you could export a similar type declaration from any bundle, as long as you were able to get Finder to open it. I'm not sure exactly how this mechanism works; perhaps someone else can chime in with details.

The real question, I suppose, is whether the iPod touch broadcasts a _device-info entry. If not, I'm not sure how you'd make it do so.
 
It won't be as easy as you might think.

The information about what model each machine on the network is is gathered through Bonjour. Normally, Macs send out a special _device-info._tcp "service" with additional data of, for instance, "model=MacBook3,1". On Linux using avahi, I've been able to set icons with a service entry like this:
Code:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name>thehostname</name>
  <service> 
    <type>_device-info._tcp</type>
    <port>0</port>
    <txt-record>model=iMac7,1</txt-record>
  </service>
</service-group>
as well as service entries for AFP, SMB, or VNC (doesn't matter, but you need to share one of them for your machine to show up in Finder.)

The second piece of the puzzle is the icons: The icons themselves are in /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources, and the mapping from model identifiers to icons is in /Contents/Info.plist in the same bundle. (Look at UTExportedTypeDeclarations, down toward the later entries. For instance, on my machine, the 17" MBP is #225.)

I think you could export a similar type declaration from any bundle, as long as you were able to get Finder to open it. I'm not sure exactly how this mechanism works; perhaps someone else can chime in with details.

The real question, I suppose, is whether the iPod touch broadcasts a _device-info entry. If not, I'm not sure how you'd make it do so.

Or you could be totally lazy and just swap the local ACD icon for an iPT one. :D
 
Changing the defulat Mac icon in Core Servers worked great, thanks.

picture2sn7.png
picture3do4.png


I even grabbed a picture of my iPod's home screen and added it to the iPod icon :D
 
Heh, or you could do that. Of course, now any unidentified Mac will show up as an iPod touch on your machine, but if you're okay with that...

Also, you might need to re-apply your change for successive patches that change the CoreTypes.bundle (mostly point-releases, I imagine).
 
I'm hoping I won't have an unidentified computer on my network anytime soon lol

The SMS application is just MobileChat, I have an AIM account I use to send text messages to friends' cell phones (using the +1[Area Code][Number] method).
 
It won't be as easy as you might think.

The information about what model each machine on the network is is gathered through Bonjour. Normally, Macs send out a special _device-info._tcp "service" with additional data of, for instance, "model=MacBook3,1". On Linux using avahi, I've been able to set icons with a service entry like this:
Code:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name>thehostname</name>
  <service> 
    <type>_device-info._tcp</type>
    <port>0</port>
    <txt-record>model=iMac7,1</txt-record>
  </service>
</service-group>
as well as service entries for AFP, SMB, or VNC (doesn't matter, but you need to share one of them for your machine to show up in Finder.)

Is it possible to change the model sent to bonjour on a Mac? I tried to find the conf file but it seems like Mac OS X uses some different thing.
 
I've only been able to make Linux machines look like Macs; I don't know enough about how to publish services with Bonjour on OS X, unfortunately.

Considering that the device-info broadcast is automatically done with the model-identifier of your machine (like, say, MacBook3,1), I'm not sure if there'd be a way to override the automatic setting.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.