Mailing Lists: Apple Mailing Lists
Image of Mac OS face in stamp
Re: about how to change the value in the plist?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: about how to change the value in the plist?



In reality, if you are going to modify the Info.plist of your driver,
there are a few things you need to do. Below are things I have
considered and have implemented in an existing driver. The driver
requires configuration parameters when it loads because it is a
IOBlockStorageDriver filter.

The problem you are seeing is due to the kernel extension cache not
being rebuilt. The check for when the cache needs to be rebuilt is
very lame. More on this later.

You can take any of these steps:
* delete the kernel extension cache yourself so it rebuilds next time
the machine reboots.
* touch the /System/Library/Extensions directory to cause the system to
rebuild the kernel extension cache on the next reboot.
* rebuild the kext cache yourself. (takes 20 secs to 1 min in some cases)

The overall use of your product should determine which method you
choose.

Beyond that, there are pitfalls to any of the strategies above.
One is that if a user sets their clock ahead or behind, it is
possible for the kext cache to not rebuild because the check for
the rebuild (in /etc/rc) is whether
/System/Library/Extensions is newer than
/System/Library/Extensions.mkext
The rc script does not consider the case when /System/Library/Extensions
has a timestamp in the future, or if both of them are set in the
future, which could cause the user to end up with an inconsistent
Info.plist vs kextcache state.
Another way this problem can happen is if the the kext installer
upgrades the Driver.kext/Contents/* files, but doesn't change the
date on the Driver.kext directory itself or /System/Library/Extensions.

--Steve


On Tue, Aug 05, 2003 at 11:28:24AM -0700, Garth Cummings wrote:
> Hi Vivian,
>
> On Tuesday, August 5, 2003, at 03:25 AM, ?$B2&=JNb-vivian wrote:
>
> >Hi:
> > I have one question as follow:
> > I wrote one ethernet adapter driver. Now I want to change the default
> >item
> >value in the plist that I have filled in.Iuse setProperty( ) , then I
> >saw
> >the value is changed by getProperty( ). But it is not changed when I
> >look up
> >the item in the plist from *.kext. Does there any way to change the
> >value in
> >the plist when I open the source code I can see that it is really
> >modified?
> >
> > Thanks for your help from vivian
>
> That doesn't work. plists are not intended to be modified on disk. What
> property are you trying to modify, and why? Maybe we can find a better
> way to do this.
>
> Thanks,
> --gc
> _______________________________________________
> darwin-drivers mailing list | email@hidden
> Help/Unsubscribe/Archives:
> http://www.lists.apple.com/mailman/listinfo/darwin-drivers
> Do not post admin requests to the list. They will be ignored.
_______________________________________________
darwin-drivers mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/darwin-drivers
Do not post admin requests to the list. They will be ignored.

References: 
 >about how to change the value in the plist? (From: 王淑伶-vivian <email@hidden>)
 >Re: about how to change the value in the plist? (From: Garth Cummings <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2011 Apple Inc. All rights reserved.