Jump to content

Custom Install DVD?


Prawker
 Share

6 posts in this topic

Recommended Posts

I'm assuming this is probably an old question, but is it possible to make my own custom OS X86 install DVD? I usually fool around with OS X alot and every now and then i wind up messing something up and its a pain in the ass to have to re edit all my kext's for my hardware, then install all of my apps again, is there a way to make a custom install DVD with all the kext's pre-edited to my hardware, and possibly install all of my base applications (Like Firefox and Adium and such)?

 

If there is already a how to would anyone mind posting a few links for me?

 

Thanks in advanced! :)

Link to comment
Share on other sites

Thx for the speedy reply but im not looking to clone. i dont have a spare hard drive to use anyways. im looking to make a bootable install DVD just like the JaS DVD or somthing, but i want to modify the kext's so that all my hardware works out of the box, that way i wont have to edit them after installing like i always do.

Link to comment
Share on other sites

Well now im stumped, User2, i followed the instructions Ramjet posted on that link you gave me, when i booted the iso, all seemed normal, but when i went to select my packages to see if the one i added shows up, i saw a naked check box, just a box, no title and no destricption, figuring i did somthing wrong i checked it anyways and continued with the installation, but after i booted it up, i still had no sound, if you don;t mind, can you proof read my OSInstall.dist for any errors? the parts that i added will be in red.

 

 

 

 

MacOSX_Title

 

 

<script>

 

function checkSupportedMachine(machineType){

var badMachines = ['iMac','PowerBook1,1','PowerBook2,1', 'AAPL,Gossamer', 'AAPL,PowerMac G3', 'AAPL,PowerBook1998', 'AAPL,PowerBook1999'];

 

try{

var cpuFreq = system.sysctl('hw.cpufrequency');

} catch(e) {

system.log('checkSupportedMachine threw exception ' + e);

}

 

if(machineType){

var length = badMachines.length;

 

// Fail if any of the compatible values match the list of badMachines

for( var j = 0; j < length; j++ ){

if(machineType == badMachines[j]){

return false;

}

 

}

 

}

 

// if we can't find it, assume it's supported

return true;

}

 

function checkSupportedBootRom(machineType){

var machinesNeedingROMUpdate = new Array();

machinesNeedingROMUpdate['PowerMac2,1'] = 'f2';

machinesNeedingROMUpdate['PowerMac2,2'] = '$0003.30f3';

 

try{

var bootROM = system.ioregistry.matchingName('boot-rom','IODeviceTree')[0]['BootROM-version'];

 

// Fail if any of the compatible values match the machine/ROM pairs that need updating

for( k in machinesNeedingROMUpdate ){

if((machineType == k) && (bootROM == machinesNeedingROMUpdate[k])){

return false;

}

}

} catch(e) {

system.log('checkSupportedBootRom threw exception ' + e);

}

 

// if we can't find it, assume it's supported

return true;

}

 

function installCheckScript(){

 

try{

var machineType = system.ioregistry.fromPath('IODeviceTree:/')['compatible'];

 

for(var i = 0;i < machineType.length; i++){

if(!checkSupportedMachine(machineType)){

my.result.message = system.localizedStringWithFormat('IC_Machine_message');

my.result.type = 'Fatal';

return false;

}

 

if(!checkSupportedBootRom(machineType)){

my.result.message = system.localizedStringWithFormat('IC_Firmware_message');

my.result.type = 'Fatal';

return false;

}

}

}catch (e){

system.log('installCheckScript threw exception ' + e);

}

 

return true;

}

 

function volCheckScript(){

var target = my.target;

var destSystemVersion = target['systemVersion'];

 

if(target.mountpoint == '/'){

my.result.message = system.localizedString('VC_Boot_message');

my.result.type = 'Fatal';

 

return false;

}

 

if(destSystemVersion){

 

//Fail if system on disk is less than 10.2

if(-1 == system.numericalCompare(destSystemVersion['ProductVersion'],'10.2')){

my.result.message = system.localizedString('VC_Upgrade_message');

my.result.type = 'MustNotUpgrade';

return false;

}

 

//Fail if system on disk is greater than what is being installed

if(-1 == system.numericalCompare(system.version['ProductVersion'],destSystemVersion['ProductVersion'])){

my.result.message = system.localizedString('VC_Newer_message');

my.result.type = 'MustNotUpgrade';

 

return false;

}

 

//If the Essential OS bits are not selected, then we can't really install anyways

if(!choices['EssentialSystemSoftwareGroup'].selected){

my.result.message = system.localizedString('VC_Newer_message');

my.result.type = 'MustNotUpgrade';

 

return false;

}

 

//Fail if system on disk is greater than what is being installed

if(destSystemVersion.isServer){

my.result.message = system.localizedString('VC_ServerVersion_message');

my.result.type = 'MustNotUpgrade';

return false;

}

}

 

return true;

}

 

 

//This function checks if a language is already installed on disk.

//This function could potentially be expensive, but the buffer cache

//usually means it isn't.

function language_installed(langKey){

var installed = false;

 

//If we are erasing, then nothing will be installed

//on the disk

if(my.target.ignoreContents){

return installed;

}

 

var constructedPath = my.target.mountpoint + '/System/Library/PrivateFrameworks/SetupAssistant.framework/Versions/A/Resources/';

 

constructedPath += langKey + ".lproj";

 

if(system.files.fileExistsAtPath(constructedPath)){

installed = true;

}else{

installed = false;

}

 

return installed;

}

 

function language_running(langKey){

var appleLanguages = system.defaults['AppleLanguages'];

 

 

if(!appleLanguages || (appleLanguages.length == 0))

return ((langKey == 'English') || (langKey == 'en'))

 

return (langKey == appleLanguages[0]);

}

 

//Global Language Required Cache, this speeds up the many calls to this function

gLanguageRequired = {

};

 

//Function returns true if the langKey is required, it uses a cache so that the logic doesn't

//have to be run hundreds of times

function language_required(langKey){

 

if(! (gLanguageRequired[langKey])){

var required = false;

 

//If the exact same package is on disk, then this language is not required

if(my.choice.packages.length && !my.target.ignoreContents){

var thisPackage = my.choice.packages[0];

var receipt = my.target.receiptForIdentifier(thisPackage.identifier);

 

if(receipt){

//system.log('package = ' + thisPackage.identifier + ':' + thisPackage.version);

//system.log('receipt = ' + receipt.identifier + ':' + receipt.version);

if(0 == system.numericalCompare(thisPackage.version,receipt.version)){

required = false;

}

}

}

 

if(language_installed(langKey) || language_running(langKey)){

required = true;

}

 

gLanguageRequired[langKey] = required;

}

 

return gLanguageRequired[langKey];

}

 

function language_enabled(langKey){

var enabled = !(language_required(langKey));

 

if(false == enabled){

my.choice.tooltip = system.localizedString('TT_Language_Required_message');

}

 

return enabled;

}

 

function language_selected(langKey){

var selected = my.choice.selected || language_required(langKey);

 

return selected;

}

 

function upgrade_allowed(){

var argv = upgrade_allowed.arguments;

var upgradable = true;

var upgradeAction = my.choice.packageUpgradeAction;

 

if(argv.length > 0) {

upgradeAction = eval('choices.' + argv[0] + '.packageUpgradeAction');

}

 

if((upgradeAction == 'downgrade') || (upgradeAction == 'mixed')){

my.choice.tooltip = system.localizedString('TT_Newer_Package_Installed_message');

upgradable = false;

}

 

return upgradable;

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

file:../AdditionalFonts.pkg

file:../AdditionalSpeechVoices.pkg

file:../AddressBook.pkg

file:../AsianLanguagesSupport.pkg

file:../BaseSystem.pkg

file:../BrotherPrinterDrivers.pkg

file:../BrazilianPortuguese.pkg

file:../BSD.pkg

file:../CanonPrinterDrivers.pkg

file:../Danish.pkg

file:../Dutch.pkg

file:../ElectronicsForImagingPrinterDrivers.pkg

file:../EpsonPrinterDrivers.pkg

file:../Essentials.pkg

file:../Finnish.pkg

file:../French.pkg

file:../German.pkg

file:../GimpPrintPrinterDrivers.pkg

file:../HewlettPackardPrinterDrivers.pkg

file:../iCal.pkg

file:../Automator.pkg

file:../AdditionalEssentials.pkg

file:../iChat.pkg

file:../Italian.pkg

file:../iTunes.pkg

file:../Japanese.pkg

file:../Java.pkg

file:../Korean.pkg

file:../LexmarkPrinterDrivers.pkg

file:../Mail.pkg

file:../MediaFiles.pkg

file:../MigrationAssistant.pkg

file:../Norwegian.pkg

file:../Russian.pkg

file:../OSInstall.mpkg

file:../RicohPrinterDrivers.pkg

file:../Safari.pkg

file:../OxfordDictionaries.pkg

file:../SimplifiedChinese.pkg

file:../Spanish.pkg

file:../Swedish.pkg

file:../TraditionalChinese.pkg

file:../X11User.pkg

file:../XeroxPrinterDrivers.pkg

 

file:../MacOSXUpd10.4.8Intel.pkg

 

 

 

 

 

 

 

../NvidiaNV40.pkg

../AtiX1000.pkg

../ALC888.pkg

 

 

 

 

 

<script>function hwbeModelCheck() {

 

try {

var modelProp = system.sysctl('hw.model');

}

catch(e) {

system.log('hwbeInstallCheck threw exception ' + e);

}

 

var machineCount = hwbeSupportedMachines.length;

 

for ( var i = 0; i < machineCount; i++ ) {

if ( modelProp == hwbeSupportedMachines ) {

return true;

}

}

 

return false;

 

}

 

function hwbeInstallCheck() {

if ( !hwbeModelCheck() ) {

my.result.message = system.localizedStringWithFormat('hwbe_machine_message');

my.result.type = 'Fatal';

return false;

}

 

return installCheckScript();

 

}

<script>

var hwbeSupportedMachines = ['iMac4,1'];

 

 

Link to comment
Share on other sites

 Share

×
×
  • Create New...