Chameleon

Chameleon Commit Details

Date:2011-10-25 23:29:10 (12 years 5 months ago)
Author:ErmaC
Commit:1663
Parents: 1662
Message:Merge latest changes from main trunk code, update the language for blackosx's branch
Changes:
M/branches/ErmaC/Modules/package/Resources/hr.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/nl.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/pl.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Scripts/Main/preinstall
M/branches/ErmaC/Trunk/package/Resources/ru.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/pt-BR.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Scripts/Sub/InstallLog.sh
M/branches/ErmaC/Modules/package/Resources/ru.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/en.lproj/Welcome.rtfd/TXT.rtf
M/branches/ErmaC/Trunk/package/Resources/id.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Scripts/Main/ESPpostinstall
M/branches/ErmaC/Trunk/package/Resources/el.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/zh_TW.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/id.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/en.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/ar.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/Japanese.lproj/Description.html
M/branches/ErmaC/Modules/package/Resources/el.lproj/Localizable.strings
M/branches/ErmaC/Trunk/i386/libsaio/ati.c
M/branches/ErmaC/Modules/package/Resources/zh_CN.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/mk.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/es.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/en.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/ar.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/buildpkg.sh
M/branches/ErmaC/Modules/package/Resources/pt-PT.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/mk.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/es.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/it.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Scripts/Main/postinstall
M/branches/ErmaC/Trunk/package/Scripts/Main/preinstall
M/branches/ErmaC/Modules/package/Resources/it.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/pt-BR.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Scripts/Main/postinstall
M/branches/ErmaC/Trunk/package/Resources/sr.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/Japanese.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Scripts/Main/ESPpostinstall
M/branches/ErmaC/Trunk/package/Resources/bg.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/de.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/OptionalSettings/General.txt
M/branches/ErmaC/Modules/package/Resources/sr.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/zh_TW.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/Japanese.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/he.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/bg.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/de.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Scripts/Sub/InstallLog.sh
M/branches/ErmaC/Trunk/package/Scripts/Main/Standardpostinstall
M/branches/ErmaC/Trunk/package/Resources/zh_CN.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/he.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/buildpkg.sh
M/branches/ErmaC/Trunk/package/Resources/pt-PT.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Scripts/Main/Standardpostinstall
M/branches/ErmaC/Trunk/package/Resources/fr.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/Japanese.lproj/Description.html
M/branches/ErmaC/Trunk/package/Resources/hr.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/nl.lproj/Localizable.strings
M/branches/ErmaC/Trunk/package/Resources/pl.lproj/Localizable.strings
M/branches/ErmaC/Modules/package/Resources/fr.lproj/Localizable.strings

File differences

branches/ErmaC/Trunk/i386/libsaio/ati.c
318318
319319
320320
321
322
323
321324
322325
323326
......
409412
410413
411414
412
415
413416
414417
415418
......
504507
505508
506509
510
507511
508512
509513
......
577581
578582
579583
584
585
580586
581
587
582588
589
583590
584
585591
586592
593
587594
595
588596
589597
590598
591599
592600
593601
602
603
594604
595605
596606
......
598608
599609
600610
601
602
603
604
611
605612
613
614
606615
607616
608
617
609618
610619
611620
......
690699
691700
692701
702
703
693704
694705
695706
696707
697708
698
709
699710
700
711
701712
702
703
704
713
714
715
716
705717
706
718
707719
708720
709721
......
13141326
13151327
13161328
1317
1329
1330
13181331
13191332
13201333
{ 0x94C3,0x2247148C, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 LE",kNull},
{ 0x94C3,0x3000148C, CHIP_FAMILY_RV610,"ATI Radeon HD 2350 Series",kNull},
{ 0x94C3,0x30001642, CHIP_FAMILY_RV610,"ATI Radeon HD 3410",kNull},
{ 0x94C3,0x37161642, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 PRO",kNull},
{ 0x94C3,0x3000174B, CHIP_FAMILY_RV610,"ATI Radeon HD 2350 Series",kNull},
{ 0x94C3,0xE370174B, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 PRO",kNull},
{ 0x94C3,0xE400174B, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 PRO",kNull},
{ 0x9598,0xB3831002, CHIP_FAMILY_RV635,"ATI All-in-Wonder HD",kNull},
{ 0x9598,0x30001043, CHIP_FAMILY_RV635,"HD3730",kNull},
{ 0x9598,0x30001043, CHIP_FAMILY_RV635,"ATI Radeon HD 3730",kNull},
{ 0x9598,0x30011043, CHIP_FAMILY_RV635,"ATI Radeon HD 4570",kNull},
{ 0x9598,0x3000148C, CHIP_FAMILY_RV635,"ATI Radeon HD 3730",kNull},
{ 0x68C0,0x392717AA, CHIP_FAMILY_REDWOOD,"ATI Mobility Radeon HD 5730",kNull},
{ 0x68C1,0x033E1025, CHIP_FAMILY_REDWOOD,"ATI Mobility Radeon HD 5650",kNull},
{ 0x68C1,0x9071104D,CHIP_FAMILY_REDWOOD,"ATI Mobility Radeon HD 5650",kEulemur},
{ 0x68C8,0x2306103C, CHIP_FAMILY_REDWOOD,"ATI FirePro V4800 (FireGL)",kNull},
{ 0x6739,0x24411462, CHIP_FAMILY_BARTS,"AMD Radeon HD 6850",kDuckweed},
{ 0x6739,0x31101682, CHIP_FAMILY_BARTS,"AMD Radeon HD 6850",kDuckweed},
{ 0x6739,0xE177174B, CHIP_FAMILY_BARTS,"AMD Radeon HD 6850",kDuckweed},
{ 0x6740,0x1657103C, CHIP_FAMILY_TURKS,"AMD Radeon HD 6770M",kNull},
{ 0x6740,0x165A103C, CHIP_FAMILY_TURKS,"AMD Radeon HD 6770M",kNull},
{ 0x6741,0x04891025, CHIP_FAMILY_TURKS,"AMD Radeon HD 6650M",kNull}, // ErmaC no tested
{ 0x6741,0x050E1025, CHIP_FAMILY_TURKS,"AMD Radeon HD 6650M",kNull},
{ 0x6741,0x05131025, CHIP_FAMILY_TURKS,"AMD Radeon HD 6650M",kNull},
{ 0x6741,0x1646103C, CHIP_FAMILY_TURKS,"AMD Radeon HD 6750M",kNull},
{ 0x6741,0x9080104D, CHIP_FAMILY_TURKS,"AMD Radeon HD 6630M",kNull},
{ 0x6758,0x67581002, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670",kBulrushes},
{ 0x6758,0x22051458, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670",kBulrushes},
{ 0x6758,0xE194174B, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670",kBulrushes},
{ 0x6758,0x31811682, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670",kBulrushes},
{ 0x6758,0x31831682, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670",kBulrushes},
{ 0x6759,0xE193174B, CHIP_FAMILY_TURKS,"AMD Radeon HD 6570",kNull},
{ 0x6760,0x04CC1028, CHIP_FAMILY_RV730,"AMD Radeon HD 6490M",kNull},
{ 0x6760,0x1CB21043, CHIP_FAMILY_RV730,"AMD Radeon HD 6470M",kNull},
{ 0x6760,0x167D103C, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6470M",kNull}, // ErmaC no tested
{ 0x6760,0x1656103C, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6490M",kNull}, // ErmaC no tested
{ 0x6760,0x04CC1028, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6490M",kNull},
{ 0x6760,0x1CB21043, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6470M",kNull},
{ 0x6779,0x64501092, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6450",kBulrushes},
{ 0x6779,0xE164174B, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6450",kBulrushes},
{ 0x6779,0xE164174B, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6450",kBulrushes},
/* standard/default models */
{ 0x9400,0x00000000, CHIP_FAMILY_R600,"ATI Radeon HD 2900 XT",kNull},
{ 0x6718,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6970 Series",kNull},
{ 0x6719,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6950 Series",kNull},
{ 0x6720,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6900M Series",kNull},
{ 0x6738,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6870 Series",kDuckweed},
{ 0x6739,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6850 Series",kDuckweed},
{ 0x673E,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6790 Series",kNull},
{ 0x6740,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6700M Series",kNull},
{ 0x6741,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6600/6700M Series",kNull},
{ 0x6741,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6600M/6700M Series",kNull},
{ 0x6758,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670 Series",kNull},
{ 0x6758,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670 Series",kBulrushes},
{ 0x6759,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6500 Series",kNull},
{ 0x6760,0x00000000, CHIP_FAMILY_RV730,"AMD Radeon HD 6470M",kNull},
{ 0x6760,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6400M Series",kNull},
{ 0x6761,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6430M Series",kNull},
{ 0x6770,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6400 Series",kNull},
{ 0x6779,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6450 Series",kNull},
{ 0x6779,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6450 Series",kBulrushes},
{ 0x0000,0x00000000, CHIP_FAMILY_UNKNOW,NULL,kNull}
};
if (!card->info->device_id || !card->info->cfg_name)
{
printf("Unsupported card!\n");
verbose("Unsupported ATI card! Device ID: [%04x:%04x] Subsystem ID: [%08x] \n",
pci_dev->vendor_id, pci_dev->device_id, pci_dev->subsys_id);
return false;
}
branches/ErmaC/Trunk/package/OptionalSettings/General.txt
3434
3535
3636
37
37
UHCIreset:UHCIreset=Yes
UseMemDetect:UseMemDetect=No
UseKernelCache:UseKernelCache=Yes
Wake:Wake=Yes
Wake:Wake=Yes
branches/ErmaC/Trunk/package/Scripts/Main/ESPpostinstall
3636
3737
3838
39
39
40
41
42
43
44
45
46
47
4048
4149
4250
stage1LoaderFAT="boot1f32"
stage2Loader="boot"
targetVolumeChosenByUser=$3
# If target volume root of current system then replace
# / with volume name.
if [ "$3" == "/" ]
then
targetVolumeChosenByUser="/Volumes/"$( ls -1F /Volumes | sed -n 's:@$::p' )
else
targetVolumeChosenByUser="$3"
fi
targetDeviceChosenByUser=$( df "${targetVolumeChosenByUser}" | sed -n '2p' | awk '{print $1}' )
targetVolume="/Volumes/EFI"
branches/ErmaC/Trunk/package/Scripts/Main/postinstall
33
44
55
6
7
86
97
108
......
1816
1917
2018
21
19
20
2221
2322
24
23
2524
2625
2726
......
3130
3231
3332
34
35
36
37
38
39
40
41
42
43
44
33
34
35
4536
4637
4738
4839
4940
5041
42
5143
5244
5345
......
5648
5749
5850
59
51
6052
6153
6254
......
6658
6759
6860
69
61
7062
7163
7264
......
8678
8779
8880
89
81
82
83
9084
9185
92
86
9387
9488
9589
......
137131
138132
139133
140
134
141135
142136
143
144137
145138
146
147
148
149
150
139
151140
152141
153
142
154143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
155212
156213
157214
......
166223
167224
168225
169
226
170227
171228
172
229
230
173231
174232
175233
176234
177235
178
236
179237
180238
181
239
182240
183241
242
243
244
245
246
247
248
249
250
251
252
253
184254
185255
186256
......
232302
233303
234304
235
305
echo "==============================================="
echo "Post Post-Install Script"
echo "*********************************"
echo "-----------------------------------------------"
echo ""
#echo "DEBUG: $ 1 = Full path to the installation package the installer app is processing: " $1
#echo "DEBUG: $ 2 = Full path to the installation destination: " $2
exit 1
fi
# clean up what would otherwise turn into "//" paths
# If target volume root of current system then replace
# / with volume name.
if [ "$3" == "/" ]
then
dest_vol=""
dest_vol="/Volumes/"$( ls -1F /Volumes | sed -n 's:@$::p' )
else
dest_vol="$3"
fi
export MYLOCATION="${MYLOCATION%/*}"
scriptDir=$MYLOCATION
# Has install log already been generated?
if [ ! -f "${dest_vol}"/.ChameleonLogFlag ]; then
# Write some information to the Install Log
versionNumber=`cat "${scriptDir}"/Resources/version`
revisionNumber=`cat "${scriptDir}"/Resources/revision`
"$scriptDir"InstallLog.sh "${dest_vol}" "Installer version: ${versionNumber} ${revisionNumber}"
"$scriptDir"InstallLog.sh "${dest_vol}" "Running Post postinstall script"
"$scriptDir"InstallLog.sh "${dest_vol}" "Target volume = ${dest_vol}"
else
"$scriptDir"InstallLog.sh "${dest_vol}" "Running Post postinstall script"
fi
# Write some information to the Install Log
"$scriptDir"InstallLog.sh "${dest_vol}" "Running Post postinstall script"
"$scriptDir"InstallLog.sh "${dest_vol}" "Target volume = ${dest_vol}"
# set temporary directory
chamTemp="$dest_vol/usr/local/chamTemp"
# Check for stopped installation due to Chameleon
# already existing on the same disk.
# TO DO - This check can be removed as it's no longer used!!
if [ ! -f "$dest_vol"/.ChameleonExists ]; then
# ---------------------------------------------
if [ -e "${chamTemp}"/Extra/modules ]; then
ls "${chamTemp}"/Extra/modules | while read FILE
do
"$scriptDir"InstallLog.sh "${dest_vol}" "Installed module:$FILE"
"$scriptDir"InstallLog.sh "${dest_vol}" "Added module: $FILE"
done
fi
if [ -e "${chamTemp}"/Extra/Themes ]; then
ls "${chamTemp}"/Extra/Themes | while read FILE
do
"$scriptDir"InstallLog.sh "${dest_vol}" "Installed Theme:$FILE"
"$scriptDir"InstallLog.sh "${dest_vol}" "Added Theme: $FILE"
done
fi
mkdir "$chamTemp"/Extra
fi
# Create template for org.chameleon.Boot.plist"
tempOCBP="$chamTemp"/Extra/org.chameleon.Boot.plist
# Create template for org.chameleon.Boot.plist"
tempOCBP="$chamTemp"/Extra/org.chameleon.Boot.plist
cp "$4"/Library/Preferences/SystemConfiguration/com.apple.Boot.plist "$tempOCBP"
# Read list of all boot options the user added.
arrayCount=0
kernelFlagCount=0
fi
if [ $kernelFlagCount -gt 0 ]; then
# Add kernel flags
# Add any kernel flags together in to one string.
for (( i=0 ; i < $kernelFlagCount ; i++ ))
do
# Add any kernel flags together in to one string.
kernelFlagString="${kernelFlagString} ${kernelflag[i]}"
done
sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP"
if [ ${returnValue}=1 ]; then # key already exists.
sudo /usr/libexec/plistbuddy -c "Delete :Kernel\ Flags" "$tempOCBP"
sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP"
fi
# We add the final string in the next section.
fi
fi
# ---------------------------------------------
# Merge /Extra folders?
# ---------------------------------------------
# Does the user want to upgrade an existing /Extra folder?
# If so, then merge their existing one in to the temp one
if [ -e "$chamTemp/install_type_upgrade" ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "User selected to do an upgrade install."
# first move the new org.chameleon.Boot.plist out of tmp
# Extra folder so we can merge that separately.
mv "$tempOCBP" "$chamTemp/holding.plist"
# Check for an existing /Extra folder
# and merge existing /Extra with temp one.
if [ -e "$dest_vol"/.ChameleonEFI ]; then
if [ -e "/Volumes/EFI/Extra" ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "Merging existing /Volumes/EFI/Extra folder."
ditto --noextattr --noqtn /Volumes/EFI/Extra "$chamTemp"/Extra
fi
else
if [ -e "$dest_vol/Extra" ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "Merging existing ${dest_vol}/Extra folder."
ditto --noextattr --noqtn "${dest_vol}"/Extra "$chamTemp"/Extra
fi
fi
# Check existing plist name for old naming convention
# and change to new convention.
if [ -e "$chamTemp"/Extra/com.apple.Boot.plist ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "Renaming existing com.apple.Boot.plist to org.chameleon.Boot.plist."
mv "$chamTemp"/Extra/com.apple.Boot.plist "$tempOCBP"
fi
# Before merging org.chameleon.Boot.plist, copy any
# existing kernel flags, then delete the entry.
currentFlags=$( sudo /usr/libexec/plistbuddy -c "Print :Kernel\ Flags" "$tempOCBP" )
sudo /usr/libexec/plistbuddy -c "Delete :Kernel\ Flags" "$tempOCBP"
# Merge new org.chameleon.Boot.plist (holding.plist)
# with their currently existing one.
"$scriptDir"InstallLog.sh "${dest_vol}" "Merging new options into org.chameleon.Boot.plist.
NOTE: Please check the new merged org.chameleon.Boot.plist as
NOTE: any existing keys will NOT have been updated.
NOTE: For example: If you already had Wait=No as a boot option
NOTE: and chose Wait=Yes from the list, this will NOT be changed."
sudo /usr/libexec/plistbuddy -c "Merge $chamTemp/holding.plist" "$tempOCBP"
# Combine new kernel flags with old ones.
kernelFlagString="${kernelFlagString} $currentFlags"
# Write complete kernel flag entry back.
sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP"
if [ ${returnValue}=1 ]; then # key already exists.
sudo /usr/libexec/plistbuddy -c "Delete :Kernel\ Flags" "$tempOCBP"
sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP"
fi
elif [ -e "$chamTemp/install_type_new" ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "User selected to make a new install."
# Add kernel flags (if any)
if [ $kernelFlagCount -gt 0 ]; then
sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP"
if [ ${returnValue}=1 ]; then # key already exists.
sudo /usr/libexec/plistbuddy -c "Delete :Kernel\ Flags" "$tempOCBP"
sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP"
fi
fi
fi
# ---------------------------------------------
# Copy temp Extra folder to target destination
# ---------------------------------------------
# If we've made a temporary Extra folder to use then
# Does an /Extra folder already exist?
if [ -e "$dest_vol"/Extra ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "Found existing $dest_vol/Extra folder. Renaming it $dest_vol/Extra-OLD-$( date "+%H-%M-%S" )"
"$scriptDir"InstallLog.sh "${dest_vol}" "Moving $dest_vol/Extra folder to $dest_vol/Extra-OLD-$( date "+%H-%M-%S" )"
mv "$dest_vol/Extra" "$dest_vol/Extra_OLD-"$( date "+%H-%M-%S" )
fi
"$scriptDir"InstallLog.sh "${dest_vol}" "Writing folder: $dest_vol/Extra"
"$scriptDir"InstallLog.sh "${dest_vol}" "Writing new Extra folder to: $dest_vol/"
echo "Copying $chamTemp/Extra TO $dest_vol"
cp -R "$chamTemp"/Extra "$dest_vol"
else
# The EFI system partition install option was chosen
# Does a /Volumes/Extra folder already exist?
if [ -e "/Volumes/EFI/Extra" ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "Found existing /Volumes/EFI/Extra folder. Renaming it Extra-OLD-$( date "+%H-%M-%S" )"
"$scriptDir"InstallLog.sh "${dest_vol}" "Moving /Volumes/EFI/Extra folder to /Volumes/EFI/Extra-OLD-$( date "+%H-%M-%S" )"
mv "/Volumes/EFI/Extra" "/Volumes/EFI/Extra_OLD-"$( date "+%H-%M-%S" )
fi
"$scriptDir"InstallLog.sh "${dest_vol}" "Writing folder: /Volumes/EFI/Extra"
"$scriptDir"InstallLog.sh "${dest_vol}" "Writing new Extra folder to: /Volumes/EFI/"
cp -R "$chamTemp"/Extra "/Volumes/EFI"
fi
else
if [ ! -f "$dest_vol"/.ChameleonEFI ]; then
if [ -e "$dest_vol"/Extra ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "No elements selected for adding to an Extra folder,
so leaving existing $dest_vol/Extra folder untouched."
fi
else
if [ -e "/Volumes/EFI/Extra" ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "No elements selected for adding to an Extra folder,
so leaving existing /Volumes/EFI/Extra folder untouched."
fi
fi
fi
# Unmount ALL mounted volumes named EFI
echo "END - Post Post-Install Script"
echo "*********************************"
echo "-----------------------------------------------"
echo ""
echo ""
branches/ErmaC/Trunk/package/Scripts/Main/Standardpostinstall
3737
3838
3939
40
40
41
42
43
44
45
46
47
48
49
4150
4251
4352
......
192201
193202
194203
204
195205
196206
197207
stage1LoaderFAT="boot1f32"
stage2Loader="boot"
targetVolume=$3
# If target volume root of current system then replace
# / with volume name.
if [ "$3" == "/" ]
then
targetVolume="/Volumes/"$( ls -1F /Volumes | sed -n 's:@$::p' )
else
targetVolume="$3"
fi
targetDevice=$( df "${targetVolume}" | sed -n '2p' | awk '{print $1}' )
targetDeviceRaw=${targetDevice/disk/rdisk}
targetDisk=${targetDevice%s*}
"$scriptDir"InstallLog.sh "${targetVolume}" "LineBreak"
"$scriptDir"InstallLog.sh "${targetVolume}" "Standard script complete"
"$scriptDir"InstallLog.sh "${targetVolume}" "LineBreak"
echo "==============================================="
echo "END - Standard Post-Install Script"
branches/ErmaC/Trunk/package/Scripts/Main/preinstall
2020
2121
2222
23
2423
24
25
26
27
28
29
30
31
32
2533
2634
2735
export MYLOCATION="${MYLOCATION%/*}"
scriptDir=$MYLOCATION
targetVolume=$3
# If target volume root of current system then replace
# / with volume name.
if [ "$3" == "/" ]
then
targetVolume="/Volumes/"$( ls -1F /Volumes | sed -n 's:@$::p' )
else
targetVolume="$3"
fi
logName="Chameleon_Installer_Log.txt"
logFile="${targetVolume}"/$logName
branches/ErmaC/Trunk/package/Scripts/Sub/InstallLog.sh
11
22
3
4
5
3
4
5
66
77
88
......
1414
1515
1616
17
18
17
18
1919
20
20
2121
2222
2323
#!/bin/bash
echo "==============================================="
echo "InstallLog: Create/Append installation log"
echo "**********************************************"
#echo "==============================================="
#echo "InstallLog: Create/Append installation log"
#echo "**********************************************"
# Writes to the Chameleon_Installer_Log.txt file created
# by the preinstall script at the start of installation.
if [ "$#" -eq 2 ]; then
logLocation="$1"
verboseText="$2"
echo "DEBUG: passed argument = ${logLocation}"
echo "DEBUG: passed argument = ${verboseText}"
#echo "DEBUG: passed argument = ${logLocation}"
#echo "DEBUG: passed argument = ${verboseText}"
else
echo "Error - wrong number of values passed"
echo "InstallLog: Error - wrong number of values passed"
exit 9
fi
branches/ErmaC/Trunk/package/Resources/en.lproj/Welcome.rtfd/TXT.rtf
2626
2727
2828
29
29
3030
3131
3232
\b0\fs30 \cf0 \
\pard\ri0\ql\qnatural
\b\fs26 \cf0 Packages credits to : %PKGDEV%
\b\fs26 \cf0 Packages : %PKGDEV%
\b0\fs30 \
\pard\tx360\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
\cf0 \
branches/ErmaC/Trunk/package/Resources/Japanese.lproj/Description.html
11
22
33
4
4
55
66
7
8
79
8
10
11
12
13
14
15
16
17
18
19
920
1021
1122
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2844
2945
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<meta name="Generator" content="Cocoa HTML Writer">
<meta name="CocoaVersion" content="1038.36">
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Lucida Grande;}
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px 'Lucida Grande'}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px 'Lucida Grande'; min-height: 12.0px}
p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px 'Lucida Grande'; color: #0000ee; min-height: 12.0px}
p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px 'Lucida Grande'; color: #0418ee}
p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px 'Lucida Grande'; color: #0000ee}
span.s1 {color: #0000ee}
span.s2 {text-decoration: underline ; color: #0418ee}
span.s3 {text-decoration: underline ; color: #0000ee}
span.s4 {text-decoration: underline}
span.s5 {color: #000000}
</style>
</head>
<body>
<p class="p1">Chameleon is combination of various boot loader components.<br />It is based on David Elliott's fake EFI implementation added to Apple's boot-132 project.<br />Chameleon is extended with the following key features:</p>
<br />
<p class="p1">New features in Chameleon 2.0</p>
<br>
<p class="p1"> - Fully customizable GUI to bring some color to the Darwin Bootloader.</p>
<p class="p1"> - Booting retail DVDs by directly loading a ramdisk image without help of additional programs.</p>
<p class="p1"> - Hibernation. Enjoy resuming your Mac OS X with a preview image.</p>
<p class="p1"> - SMBIOS override to modify the factory SMBIOS values.</p>
<p class="p1"> - DSDT override to use a modified fixed DSDT which can solve several issues.</p>
<br>
<p class="p1"> - Device Property Injection via device-properties string.</p>
<p class="p1"> - hybrid boot0 / boot1h for MBR and GPT partitioned disks.</p>
<p class="p1"> - automatic FSB detection code even for recent AMD CPUs.</p>
<p class="p1"> - Apple Software RAID support.</p>
<br />
<p class="p1">For detailed information, visit : <a href="http://chameleon.osx86.hu">http://chameleon.osx86.hu</a></p>
<p class="p1">Chameleon is a boot loader built using a combination of components which evolved from the development of David Elliott's fake EFI implementation added to Apple's boot-132 project.</p>
<p class="p2"><br></p>
<p class="p1">Chameleon v2 is extended with many features. For example:</p>
<p class="p2"><br></p>
<p class="p1">- Fully customizable GUI to bring some color to the Darwin Bootloader.</p>
<p class="p1">- Load a ramdisk to directly boot retail DVDs without additional programs.</p>
<p class="p1">- Hibernation. Enjoy resuming your Mac OS X with a preview image.</p>
<p class="p1">- SMBIOS override to modify the factory SMBIOS values.</p>
<p class="p1">- DSDT override to use a modified fixed DSDT which can solve several issues.</p>
<p class="p1">- Device Property Injection via device-properties string.</p>
<p class="p1">- hybrid boot0 / boot1h for MBR and GPT partitioned disks.</p>
<p class="p1">- Automatic FSB detection code even for recent AMD CPUs.</p>
<p class="p1">- Apple Software RAID support.</p>
<p class="p1">- Module support</p>
<p class="p1">- Memory detection adapted from memtest86: <a href="http://www.memtest.org">http://www.memtest.org</a></p>
<p class="p3"><br></p>
<p class="p3"><br></p>
<p class="p1">The code is released under version 2 of the Gnu Public License.</p>
<p class="p4"><a href="http://forge.voodooprojects.org/p/chameleon/">http://forge.voodooprojects.org/p/chameleon</a></p>
<p class="p2"><br></p>
<p class="p1">FAQ's: <a href="http://forum.voodooprojects.org/index.php/topic,754.0.html">http://forum.voodooprojects.org/index.php/topic,754.0.html</a></p>
</body>
</html>
branches/ErmaC/Trunk/package/buildpkg.sh
8888
8989
9090
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
91116
92117
93118
buildpackage "${1}/Core" "/" "0" "start_visible=\"false\" start_selected=\"true\"" >/dev/null 2>&1
# End build core package
# build install type
echo "================= Chameleon ================="
outline[$((outlinecount++))]="${indent[$xmlindent]}<line choice=\"InstallType\">"
choices[$((choicescount++))]="\t<choice\n\t\tid=\"InstallType\"\n\t\ttitle=\"InstallType_title\"\n\t\tdescription=\"InstallType_description\">\n\t</choice>\n"
((xmlindent++))
packagesidentity="org.chameleon.type"
# build new install package
mkdir -p ${1}/New/Root
echo "" > "${1}/New/Root/install_type_new"
echo "[BUILD] New "
buildpackage "${1}/New" "/$chamTemp" "" "start_enabled=\"true\" selected=\"exclusive(choices['Upgrade'])\"" >/dev/null 2>&1
# End build new install package
# build upgrade package
mkdir -p ${1}/Upgrade/Root
echo "" > "${1}/Upgrade/Root/install_type_upgrade"
echo "[BUILD] Upgrade "
buildpackage "${1}/Upgrade" "/$chamTemp" "" "start_selected=\"false\" selected=\"exclusive(choices['New'])\"" >/dev/null 2>&1
# End build upgrade package
((xmlindent--))
outline[$((outlinecount++))]="${indent[$xmlindent]}</line>"
# End build install type
# build Chameleon package
echo "================= Chameleon ================="
outline[$((outlinecount++))]="${indent[$xmlindent]}<line choice=\"Chameleon\">"
branches/ErmaC/Modules/package/Scripts/Main/ESPpostinstall
3636
3737
3838
39
39
40
41
42
43
44
45
46
47
4048
4149
4250
stage1LoaderFAT="boot1f32"
stage2Loader="boot"
targetVolumeChosenByUser=$3
# If target volume root of current system then replace
# / with volume name.
if [ "$3" == "/" ]
then
targetVolumeChosenByUser="/Volumes/"$( ls -1F /Volumes | sed -n 's:@$::p' )
else
targetVolumeChosenByUser="$3"
fi
targetDeviceChosenByUser=$( df "${targetVolumeChosenByUser}" | sed -n '2p' | awk '{print $1}' )
targetVolume="/Volumes/EFI"
branches/ErmaC/Modules/package/Scripts/Main/postinstall
33
44
55
6
7
86
97
108
......
1816
1917
2018
21
19
20
2221
2322
24
23
2524
2625
2726
......
3130
3231
3332
34
35
36
37
38
39
40
41
42
43
44
33
34
35
4536
4637
4738
4839
4940
5041
42
5143
5244
5345
......
5648
5749
5850
59
51
6052
6153
6254
......
6658
6759
6860
69
61
7062
7163
7264
......
8678
8779
8880
89
81
82
83
9084
9185
92
86
9387
9488
9589
......
137131
138132
139133
140
134
141135
142136
143
144137
145138
146
147
148
149
150
139
151140
152141
153
142
154143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
155212
156213
157214
......
166223
167224
168225
169
226
170227
171228
172
229
230
173231
174232
175233
176234
177235
178
236
179237
180238
181
239
182240
183241
242
243
244
245
246
247
248
249
250
251
252
253
184254
185255
186256
......
232302
233303
234304
235
305
echo "==============================================="
echo "Post Post-Install Script"
echo "*********************************"
echo "-----------------------------------------------"
echo ""
#echo "DEBUG: $ 1 = Full path to the installation package the installer app is processing: " $1
#echo "DEBUG: $ 2 = Full path to the installation destination: " $2
exit 1
fi
# clean up what would otherwise turn into "//" paths
# If target volume root of current system then replace
# / with volume name.
if [ "$3" == "/" ]
then
dest_vol=""
dest_vol="/Volumes/"$( ls -1F /Volumes | sed -n 's:@$::p' )
else
dest_vol="$3"
fi
export MYLOCATION="${MYLOCATION%/*}"
scriptDir=$MYLOCATION
# Has install log already been generated?
if [ ! -f "${dest_vol}"/.ChameleonLogFlag ]; then
# Write some information to the Install Log
versionNumber=`cat "${scriptDir}"/Resources/version`
revisionNumber=`cat "${scriptDir}"/Resources/revision`
"$scriptDir"InstallLog.sh "${dest_vol}" "Installer version: ${versionNumber} ${revisionNumber}"
"$scriptDir"InstallLog.sh "${dest_vol}" "Running Post postinstall script"
"$scriptDir"InstallLog.sh "${dest_vol}" "Target volume = ${dest_vol}"
else
"$scriptDir"InstallLog.sh "${dest_vol}" "Running Post postinstall script"
fi
# Write some information to the Install Log
"$scriptDir"InstallLog.sh "${dest_vol}" "Running Post postinstall script"
"$scriptDir"InstallLog.sh "${dest_vol}" "Target volume = ${dest_vol}"
# set temporary directory
chamTemp="$dest_vol/usr/local/chamTemp"
# Check for stopped installation due to Chameleon
# already existing on the same disk.
# TO DO - This check can be removed as it's no longer used!!
if [ ! -f "$dest_vol"/.ChameleonExists ]; then
# ---------------------------------------------
if [ -e "${chamTemp}"/Extra/modules ]; then
ls "${chamTemp}"/Extra/modules | while read FILE
do
"$scriptDir"InstallLog.sh "${dest_vol}" "Installed module:$FILE"
"$scriptDir"InstallLog.sh "${dest_vol}" "Added module: $FILE"
done
fi
if [ -e "${chamTemp}"/Extra/Themes ]; then
ls "${chamTemp}"/Extra/Themes | while read FILE
do
"$scriptDir"InstallLog.sh "${dest_vol}" "Installed Theme:$FILE"
"$scriptDir"InstallLog.sh "${dest_vol}" "Added Theme: $FILE"
done
fi
mkdir "$chamTemp"/Extra
fi
# Create template for org.chameleon.Boot.plist"
tempOCBP="$chamTemp"/Extra/org.chameleon.Boot.plist
# Create template for org.chameleon.Boot.plist"
tempOCBP="$chamTemp"/Extra/org.chameleon.Boot.plist
cp "$4"/Library/Preferences/SystemConfiguration/com.apple.Boot.plist "$tempOCBP"
# Read list of all boot options the user added.
arrayCount=0
kernelFlagCount=0
fi
if [ $kernelFlagCount -gt 0 ]; then
# Add kernel flags
# Add any kernel flags together in to one string.
for (( i=0 ; i < $kernelFlagCount ; i++ ))
do
# Add any kernel flags together in to one string.
kernelFlagString="${kernelFlagString} ${kernelflag[i]}"
done
sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP"
if [ ${returnValue}=1 ]; then # key already exists.
sudo /usr/libexec/plistbuddy -c "Delete :Kernel\ Flags" "$tempOCBP"
sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP"
fi
# We add the final string in the next section.
fi
fi
# ---------------------------------------------
# Merge /Extra folders?
# ---------------------------------------------
# Does the user want to upgrade an existing /Extra folder?
# If so, then merge their existing one in to the temp one
if [ -e "$chamTemp/install_type_upgrade" ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "User selected to do an upgrade install."
# first move the new org.chameleon.Boot.plist out of tmp
# Extra folder so we can merge that separately.
mv "$tempOCBP" "$chamTemp/holding.plist"
# Check for an existing /Extra folder
# and merge existing /Extra with temp one.
if [ -e "$dest_vol"/.ChameleonEFI ]; then
if [ -e "/Volumes/EFI/Extra" ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "Merging existing /Volumes/EFI/Extra folder."
ditto --noextattr --noqtn /Volumes/EFI/Extra "$chamTemp"/Extra
fi
else
if [ -e "$dest_vol/Extra" ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "Merging existing ${dest_vol}/Extra folder."
ditto --noextattr --noqtn "${dest_vol}"/Extra "$chamTemp"/Extra
fi
fi
# Check existing plist name for old naming convention
# and change to new convention.
if [ -e "$chamTemp"/Extra/com.apple.Boot.plist ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "Renaming existing com.apple.Boot.plist to org.chameleon.Boot.plist."
mv "$chamTemp"/Extra/com.apple.Boot.plist "$tempOCBP"
fi
# Before merging org.chameleon.Boot.plist, copy any
# existing kernel flags, then delete the entry.
currentFlags=$( sudo /usr/libexec/plistbuddy -c "Print :Kernel\ Flags" "$tempOCBP" )
sudo /usr/libexec/plistbuddy -c "Delete :Kernel\ Flags" "$tempOCBP"
# Merge new org.chameleon.Boot.plist (holding.plist)
# with their currently existing one.
"$scriptDir"InstallLog.sh "${dest_vol}" "Merging new options into org.chameleon.Boot.plist.
NOTE: Please check the new merged org.chameleon.Boot.plist as
NOTE: any existing keys will NOT have been updated.
NOTE: For example: If you already had Wait=No as a boot option
NOTE: and chose Wait=Yes from the list, this will NOT be changed."
sudo /usr/libexec/plistbuddy -c "Merge $chamTemp/holding.plist" "$tempOCBP"
# Combine new kernel flags with old ones.
kernelFlagString="${kernelFlagString} $currentFlags"
# Write complete kernel flag entry back.
sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP"
if [ ${returnValue}=1 ]; then # key already exists.
sudo /usr/libexec/plistbuddy -c "Delete :Kernel\ Flags" "$tempOCBP"
sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP"
fi
elif [ -e "$chamTemp/install_type_new" ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "User selected to make a new install."
# Add kernel flags (if any)
if [ $kernelFlagCount -gt 0 ]; then
sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP"
if [ ${returnValue}=1 ]; then # key already exists.
sudo /usr/libexec/plistbuddy -c "Delete :Kernel\ Flags" "$tempOCBP"
sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP"
fi
fi
fi
# ---------------------------------------------
# Copy temp Extra folder to target destination
# ---------------------------------------------
# If we've made a temporary Extra folder to use then
# Does an /Extra folder already exist?
if [ -e "$dest_vol"/Extra ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "Found existing $dest_vol/Extra folder. Renaming it $dest_vol/Extra-OLD-$( date "+%H-%M-%S" )"
"$scriptDir"InstallLog.sh "${dest_vol}" "Moving $dest_vol/Extra folder to $dest_vol/Extra-OLD-$( date "+%H-%M-%S" )"
mv "$dest_vol/Extra" "$dest_vol/Extra_OLD-"$( date "+%H-%M-%S" )
fi
"$scriptDir"InstallLog.sh "${dest_vol}" "Writing folder: $dest_vol/Extra"
"$scriptDir"InstallLog.sh "${dest_vol}" "Writing new Extra folder to: $dest_vol/"
echo "Copying $chamTemp/Extra TO $dest_vol"
cp -R "$chamTemp"/Extra "$dest_vol"
else
# The EFI system partition install option was chosen
# Does a /Volumes/Extra folder already exist?
if [ -e "/Volumes/EFI/Extra" ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "Found existing /Volumes/EFI/Extra folder. Renaming it Extra-OLD-$( date "+%H-%M-%S" )"
"$scriptDir"InstallLog.sh "${dest_vol}" "Moving /Volumes/EFI/Extra folder to /Volumes/EFI/Extra-OLD-$( date "+%H-%M-%S" )"
mv "/Volumes/EFI/Extra" "/Volumes/EFI/Extra_OLD-"$( date "+%H-%M-%S" )
fi
"$scriptDir"InstallLog.sh "${dest_vol}" "Writing folder: /Volumes/EFI/Extra"
"$scriptDir"InstallLog.sh "${dest_vol}" "Writing new Extra folder to: /Volumes/EFI/"
cp -R "$chamTemp"/Extra "/Volumes/EFI"
fi
else
if [ ! -f "$dest_vol"/.ChameleonEFI ]; then
if [ -e "$dest_vol"/Extra ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "No elements selected for adding to an Extra folder,
so leaving existing $dest_vol/Extra folder untouched."
fi
else
if [ -e "/Volumes/EFI/Extra" ]; then
"$scriptDir"InstallLog.sh "${dest_vol}" "No elements selected for adding to an Extra folder,
so leaving existing /Volumes/EFI/Extra folder untouched."
fi
fi
fi
# Unmount ALL mounted volumes named EFI
echo "END - Post Post-Install Script"
echo "*********************************"
echo "-----------------------------------------------"
echo ""
echo ""
branches/ErmaC/Modules/package/Scripts/Main/Standardpostinstall
3737
3838
3939
40
40
41
42
43
44
45
46
47
48
49
4150
4251
4352
......
192201
193202
194203
204
195205
196206
197207
stage1LoaderFAT="boot1f32"
stage2Loader="boot"
targetVolume=$3
# If target volume root of current system then replace
# / with volume name.
if [ "$3" == "/" ]
then
targetVolume="/Volumes/"$( ls -1F /Volumes | sed -n 's:@$::p' )
else
targetVolume="$3"
fi
targetDevice=$( df "${targetVolume}" | sed -n '2p' | awk '{print $1}' )
targetDeviceRaw=${targetDevice/disk/rdisk}
targetDisk=${targetDevice%s*}
"$scriptDir"InstallLog.sh "${targetVolume}" "LineBreak"
"$scriptDir"InstallLog.sh "${targetVolume}" "Standard script complete"
"$scriptDir"InstallLog.sh "${targetVolume}" "LineBreak"
echo "==============================================="
echo "END - Standard Post-Install Script"
branches/ErmaC/Modules/package/Scripts/Main/preinstall
2020
2121
2222
23
2423
24
25
26
27
28
29
30
31
32
2533
2634
2735
export MYLOCATION="${MYLOCATION%/*}"
scriptDir=$MYLOCATION
targetVolume=$3
# If target volume root of current system then replace
# / with volume name.
if [ "$3" == "/" ]
then
targetVolume="/Volumes/"$( ls -1F /Volumes | sed -n 's:@$::p' )
else
targetVolume="$3"
fi
logName="Chameleon_Installer_Log.txt"
logFile="${targetVolume}"/$logName
branches/ErmaC/Modules/package/Scripts/Sub/InstallLog.sh
11
22
3
4
5
3
4
5
66
77
88
......
1414
1515
1616
17
18
17
18
1919
20
20
2121
2222
2323
#!/bin/bash
echo "==============================================="
echo "InstallLog: Create/Append installation log"
echo "**********************************************"
#echo "==============================================="
#echo "InstallLog: Create/Append installation log"
#echo "**********************************************"
# Writes to the Chameleon_Installer_Log.txt file created
# by the preinstall script at the start of installation.
if [ "$#" -eq 2 ]; then
logLocation="$1"
verboseText="$2"
echo "DEBUG: passed argument = ${logLocation}"
echo "DEBUG: passed argument = ${verboseText}"
#echo "DEBUG: passed argument = ${logLocation}"
#echo "DEBUG: passed argument = ${verboseText}"
else
echo "Error - wrong number of values passed"
echo "InstallLog: Error - wrong number of values passed"
exit 9
fi
branches/ErmaC/Modules/package/Resources/Japanese.lproj/Description.html
11
22
33
4
4
55
66
7
8
79
8
10
11
12
13
14
15
16
17
18
19
920
1021
1122
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2844
2945
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<meta name="Generator" content="Cocoa HTML Writer">
<meta name="CocoaVersion" content="1038.36">
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Lucida Grande;}
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px 'Lucida Grande'}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px 'Lucida Grande'; min-height: 12.0px}
p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px 'Lucida Grande'; color: #0000ee; min-height: 12.0px}
p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px 'Lucida Grande'; color: #0418ee}
p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px 'Lucida Grande'; color: #0000ee}
span.s1 {color: #0000ee}
span.s2 {text-decoration: underline ; color: #0418ee}
span.s3 {text-decoration: underline ; color: #0000ee}
span.s4 {text-decoration: underline}
span.s5 {color: #000000}
</style>
</head>
<body>
<p class="p1">Chameleon is combination of various boot loader components.<br />It is based on David Elliott's fake EFI implementation added to Apple's boot-132 project.<br />Chameleon is extended with the following key features:</p>
<br />
<p class="p1">New features in Chameleon 2.0</p>
<br>
<p class="p1"> - Fully customizable GUI to bring some color to the Darwin Bootloader.</p>
<p class="p1"> - Booting retail DVDs by directly loading a ramdisk image without help of additional programs.</p>
<p class="p1"> - Hibernation. Enjoy resuming your Mac OS X with a preview image.</p>
<p class="p1"> - SMBIOS override to modify the factory SMBIOS values.</p>
<p class="p1"> - DSDT override to use a modified fixed DSDT which can solve several issues.</p>
<br>
<p class="p1"> - Device Property Injection via device-properties string.</p>
<p class="p1"> - hybrid boot0 / boot1h for MBR and GPT partitioned disks.</p>
<p class="p1"> - automatic FSB detection code even for recent AMD CPUs.</p>
<p class="p1"> - Apple Software RAID support.</p>
<br />
<p class="p1">For detailed information, visit : <a href="http://chameleon.osx86.hu">http://chameleon.osx86.hu</a></p>
<p class="p1">Chameleon is a boot loader built using a combination of components which evolved from the development of David Elliott's fake EFI implementation added to Apple's boot-132 project.</p>
<p class="p2"><br></p>
<p class="p1">Chameleon v2 is extended with many features. For example:</p>
<p class="p2"><br></p>
<p class="p1">- Fully customizable GUI to bring some color to the Darwin Bootloader.</p>
<p class="p1">- Load a ramdisk to directly boot retail DVDs without additional programs.</p>
<p class="p1">- Hibernation. Enjoy resuming your Mac OS X with a preview image.</p>
<p class="p1">- SMBIOS override to modify the factory SMBIOS values.</p>
<p class="p1">- DSDT override to use a modified fixed DSDT which can solve several issues.</p>
<p class="p1">- Device Property Injection via device-properties string.</p>
<p class="p1">- hybrid boot0 / boot1h for MBR and GPT partitioned disks.</p>
<p class="p1">- Automatic FSB detection code even for recent AMD CPUs.</p>
<p class="p1">- Apple Software RAID support.</p>
<p class="p1">- Module support</p>
<p class="p1">- Memory detection adapted from memtest86: <a href="http://www.memtest.org">http://www.memtest.org</a></p>
<p class="p3"><br></p>
<p class="p3"><br></p>
<p class="p1">The code is released under version 2 of the Gnu Public License.</p>
<p class="p4"><a href="http://forge.voodooprojects.org/p/chameleon/">http://forge.voodooprojects.org/p/chameleon</a></p>
<p class="p2"><br></p>
<p class="p1">FAQ's: <a href="http://forum.voodooprojects.org/index.php/topic,754.0.html">http://forum.voodooprojects.org/index.php/topic,754.0.html</a></p>
</body>
</html>
branches/ErmaC/Modules/package/buildpkg.sh
8888
8989
9090
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
91116
92117
93118
buildpackage "${1}/Core" "/" "0" "start_visible=\"false\" start_selected=\"true\"" >/dev/null 2>&1
# End build core package
# build install type
echo "================= Chameleon ================="
outline[$((outlinecount++))]="${indent[$xmlindent]}<line choice=\"InstallType\">"
choices[$((choicescount++))]="\t<choice\n\t\tid=\"InstallType\"\n\t\ttitle=\"InstallType_title\"\n\t\tdescription=\"InstallType_description\">\n\t</choice>\n"
((xmlindent++))
packagesidentity="org.chameleon.type"
# build new install package
mkdir -p ${1}/New/Root
echo "" > "${1}/New/Root/install_type_new"
echo "[BUILD] New "
buildpackage "${1}/New" "/$chamTemp" "" "start_enabled=\"true\" selected=\"exclusive(choices['Upgrade'])\"" >/dev/null 2>&1
# End build new install package
# build upgrade package
mkdir -p ${1}/Upgrade/Root
echo "" > "${1}/Upgrade/Root/install_type_upgrade"
echo "[BUILD] Upgrade "
buildpackage "${1}/Upgrade" "/$chamTemp" "" "start_selected=\"false\" selected=\"exclusive(choices['New'])\"" >/dev/null 2>&1
# End build upgrade package
((xmlindent--))
outline[$((outlinecount++))]="${indent[$xmlindent]}</line>"
# End build install type
# build Chameleon package
echo "================= Chameleon ================="
outline[$((outlinecount++))]="${indent[$xmlindent]}<line choice=\"Chameleon\">"

Archive Download the corresponding diff file

Revision: 1663