PDA

View Full Version : Changing iPod AFP Icon




nylock10
Mar 21, 2008, 11:01 AM
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:
http://img99.imageshack.us/img99/6677/picture4gv4.png



bstreiff
Mar 21, 2008, 12:40 PM
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:
<?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.

YuriVoorhak
Mar 21, 2008, 01:48 PM
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:
<?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

nylock10
Mar 21, 2008, 02:34 PM
Changing the defulat Mac icon in Core Servers worked great, thanks.

http://img296.imageshack.us/img296/5137/picture2sn7.pnghttp://img357.imageshack.us/img357/3396/picture3do4.png

I even grabbed a picture of my iPod's home screen and added it to the iPod icon :D

doteyes9
Mar 21, 2008, 03:38 PM
Since when do iPod's have SMS?:p

bstreiff
Mar 21, 2008, 03:42 PM
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).

nylock10
Mar 21, 2008, 10:10 PM
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).

bstreiff
Mar 22, 2008, 01:13 AM
I'm hoping I won't have an unidentified computer on my network anytime soon lol

Well, pre-10.5 machines show up as the generic ACD; the model-broadcast wasn't added until Leopard.

Sunnzy
May 12, 2008, 12:04 PM
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:
<?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.

bstreiff
May 12, 2008, 01:02 PM
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.

Czo
Dec 30, 2008, 04:13 PM
I have made a small package, which adds the corresponding iPhone, iPhone 3G, and iPod Touch 1st gen icons to the system. It adds only these icons, whithout the need of changing the default Mac icon from the Cinema Display.

Tested with Mac OS X 10.5.6 on intel based iMac and PowerMac G4.

http://czo.hu/index.php?page=stuff&spage=iphoneicons

http://homokozo.czo.hu/iphoneicons/iphoneicons.png