Chameleon Applications

Chameleon Applications Commit Details

Date:2011-05-19 14:48:01 (12 years 10 months ago)
Author:ErmaC
Commit:269
Parents: 268
Message:Add Chameleon-Snow prefPanel (Azimutz)
Changes:
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CHANGES
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Info.plist
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Windows.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/disk.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/footer.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/MacOS/Chameleon
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/chamsmall.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/version
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Chameleon.icns
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Chameleon.strings
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/plug.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cham.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Chameleon.strings
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cdBootCreator.sh
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/chip.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Chameleon.nib
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/wrench.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Chameleon.strings
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/MacOSX.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/InfoPlist.strings
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Chameleon.strings
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Localizable.strings
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Chameleon.nib
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/extractAcpi.sh
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Chameleon.strings
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Linux.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/gfxutil
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Chameleon.tiff
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CDROM.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Localizable.strings
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/MacOS
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/getDevProp.sh
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/advanced.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Chameleon.nib
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Chameleon.nib
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/flag.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CREDITS
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/README
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Chameleon.nib
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/background.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/syringe.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Localizable.strings
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Localizable.strings
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/name.png
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/TODO
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj
A/branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Localizable.strings

File differences

branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Info.plist
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDisplayName</key>
<string></string>
<key>CFBundleExecutable</key>
<string>Chameleon</string>
<key>CFBundleIconFile</key>
<string>Chameleon.icns</string>
<key>CFBundleIdentifier</key>
<string>com.chameleon.Chameleon</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Chameleon</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>2.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>2.0.0 RC5</string>
<key>NSMainNibFile</key>
<string>Chameleon</string>
<key>NSPrefPaneIconFile</key>
<string>Chameleon.tiff</string>
<key>NSPrefPaneIconLabel</key>
<string>Chameleon</string>
<key>NSPrincipalClass</key>
<string>ChameleonPrefPane</string>
</dict>
</plist>
branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/getDevProp.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/sh
# getDevProp.sh
# smbios-cham
#
# Created by ronan & thomas on 12/08/09.
# Copyright 2009 org.darwinx86.app. All rights reserved.
# adapted for Chameleon control panel use by Rekursor
#
# Directories
cdir=`dirname $0`
tmpDir=/tmp/Chameleon
dmpdir=${tmpDir}/devprop
# Create a dump directory
if [[ ! -d $dmpdir ]];then
mkdir -p $dmpdir
fi
if [[ ! -d $tmpDir ]];then
mkdir -p $tmpDir
fi
# Dump Device properties
ioreg -lw0 -p IODeviceTree -n efi -r -x |grep device-properties | sed 's/.*<//;s/>.*//;' | cat > $dmpdir/chameleon-devprop.hex
$cdir/gfxutil -s -n -i hex -o xml $dmpdir/chameleon-devprop.hex $dmpdir/chameleon-devprop.plist
# Splash the result up !!
open $dmpdir/chameleon-devprop.plist
if [[ ! -d $dmpdir ]];then
rm -r $dmpdir
fi
if [[ ! -d $tmpDir ]];then
rm -r $tmpDir
fi
#end
#echo $?
branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CREDITS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Initial Conception & Design:
---------------------------
Rekursor
Crew Members
----------
Rekursor, DieBuche
Contributors & Testers:
---------------------
BlackOSX, MasterChief, digital_dreamer, smith@@, scrax, quinielascom
Chameleon also reuses:
---------------------
Courtesy of Ronan (Lizard):
Existing scripts and gfxutil tool from Lizard available at:
http://code.google.com/p/lizard-app/
branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cdBootCreator.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/bin/sh
# Copyright 2009 org.darwinx86.app. All rights reserved.
# Directories
extra=/tmp/isodir
mydir=`dirname $0`
tempDir=/tmp
finaldir=~/Desktop
isodir=/tmp/newiso
extradir=/tmp/newiso/Extra
preDir=/tmp/newiso/Extra/Preboot/
prebootDir=/tmp/newiso/Extra/Preboot/Extra
backDir=~/Desktop/Lizard
bkpdir=~/Desktop/Lizard/Previous-dmg
echo "Starting script..."
#errors
if ([ ! -f $extra/Extensions.mkext ] && [ ! -d $extra/Extensions ]);then
echo "- Error: no Extensions.mkext or Extensions folder. One of them is required"
echo " ------------------------"
exit
fi
if [ ! -f $extra/com.apple.Boot.plist ];then
echo "- Error: no com.apple.boot.plist found. File required"
echo " ------------------------"
exit
fi
if [ ! -f $extra/cdboot ];then
echo "- Error: no cdboot found. File required"
echo " ------------------------"
exit
fi
# Create a work directory
echo " - temps folders created"
echo " - Checking files"
#copy Extra files to temp directory
if [ -f $extra/cdboot ];then
cp -R $extra/cdboot $isodir
fi
if [ -f $extra/dsdt.aml ];then
cp -R $extra/dsdt.aml $prebootDir
fi
if [ -f $extra/DSDT.aml ];then
cp -R $extra/DSDT.aml $prebootDir
fi
if [ -f $extra/NVIDIA.ROM ];then
cp -R $extra/NVIDIA.ROM $prebootDir
fi
if [ -f $extra/smbios.plist ];then
cp -R $extra/smbios.plist $prebootDir
fi
if [ -f $extra/Extensions.mkext ];then
cp -R $extra/Extensions.mkext $prebootDir
fi
if [ -d $extra/Extensions ];then
cp -Rp $extra/Extensions $prebootDir
fi
if [ -f $extra/com.apple.Boot.plist ];then
cp -R $extra/com.apple.Boot.plist $prebootDir
fi
if [ -f $tempDir/com.apple.Boot.plist ];then
cp -R $tempDir/com.apple.Boot.plist $extradir
fi
echo "- Files copied in temp folder"
# ramdisk creator
hdiutil create -srcfolder $preDir/ -layout GPTSPUD -fs HFS+ -format UDRW -volname Preboot $extradir/Preboot.dmg
rm -R $preDir
echo " - ram disk created"
# boot cd creator
hdiutil makehybrid -o BootCD.iso $isodir/ -iso -hfs -joliet -eltorito-boot $isodir/cdboot -no-emul-boot -hfs-volume-name "Boot CD" -joliet-volume-name "Boot CD"
echo " - hybrid image created"
# Create output and backup directories
if [ -f $finaldir/BootCD.iso ];then
if [ ! -d $bkpdir ];then
mkdir $backDir
mkdir $bkpdir
echo " - backup folder created"
fi
mv -f $finaldir/BootCD.iso $bkpdir/BootCd-$(date +"%d-%y-%Hh%M").iso
echo " - previous ISO moved into backup folder"
fi
mv BootCD.iso $finaldir
echo " - ISO moved on desktop"
# cleanup
echo " - Perform cleaning"
echo " - ISO created succefully"
echo " ------------------------"
exit 0
branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
- Added About Dialog, made the displayed version numbers all rely on the info.plist file
- Fixed refresh and on checked associated button state, made sure the string is disabled if value is 0
- Fixed crash when using swap hd 0<->2
- Added a new option type (OptionFileString) that features an open dialog box to open files
- Added few Combo boxes to simplify text inputs
- Added Missing ForceHPET option and Theme options
- Added a new SMBIOS panel only opening a file (in construction)
- Added new EFI Injection panel
- Added PciRoot, GUI boot options
- Added scrax to credits: thx for testing the Chameleon PrefPane!
- Create a makebin script (to enhance) that creates zip archives and sets a version
in the bin dir
- Fixed default value to Yes not included in the boot config would not be checked
by default in interface
- Added RestartFix boot option
- Added forceBootConfigPath to the tabview panel for quicker setup, so now no
need to edit the preferences file manually.
- Added SystemId
- Added full bootOptions loading into the interface with no custom code needed,
all loading features are implemented in base class PreferencesControllerBase,
with the automatic parser engine.
- Implemented the bootOption automatic and generic parsing engine.
Now any option is parsed from bootFile automatically (incl. defaults)
thanks to the underlying engine based on a dynamically constructed
id to desc map and also to the group panel registration init process
- Fixed dmg archives would appear in dynamic partition listing
- Added FREEZE (lock) features, see README.
- Refined cosmetics for the GUI
- Added images icon on the first column of each partition entries
- Added APSL and README for instructions
- Added swap disk (01 and 02) fixes
- Added Rename and Hide display from bootConfig
- Fixed 10.5 and 10.6 would crash because of memory references erased
- Added more bootConfig paths and an option to force it
(i.e:if not found automatically)
- Added new paths for bootConfig search now looking in this order:
"/",
"/Extra/",
"/Volumes/EFI/Extra/",
"/Volumes/Cham/Extra/",
"/Volumes/BootLoaders/Extra/",
"/Library/Preferences/SystemConfiguration/",
- Change the restart by replacing the internal reboot shell cmd by an applescript
eq. to the AppleMenu/Restart command
- Fixed nib file loading and initialization problem, possibly fixes the lock pb as well?
- Added Apple_Free filter to filter these free partitions
branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/extractAcpi.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#/bin/sh
set -e
set -u
ACPI_DIR="${HOME}/Desktop/ACPI"
ioreg=
if [[ $# -eq 1 && -f "$1" ]]; then
ioreg="$(grep ' "ACPI Tables" =' "$1")"
else
ioreg="$(ioreg -lw0 | grep ' "ACPI Tables" =')"
fi
ioreg=${ioreg#*\{}
ioreg=${ioreg%\}*}
declare -a tables
ioreg="${ioreg//,/ }"
tables=($ioreg)
echo "Number of ACPI tables: ${#tables[@]}"
re='"([^"]+)"=<([^>]+)>'
dumped=0
for t in "${tables[@]}"; do
#echo Table: $t
if [[ $t =~ $re ]]; then
[[ $dumped = 0 ]] && mkdir -p ${ACPI_DIR}
((++dumped))
echo
echo "Dumping table: ${BASH_REMATCH[1]}"
#echo "Content: ${BASH_REMATCH[2]}"
echo "${BASH_REMATCH[2]}" | xxd -r -p > "${ACPI_DIR}/${BASH_REMATCH[1]}".aml
echo "AML code dumped to \"${ACPI_DIR}/${BASH_REMATCH[1]}.aml\""
type -p iasl &>/dev/null && iasl -d "${ACPI_DIR}/${BASH_REMATCH[1]}".aml \
&& echo "DSL code decompiled to \"${ACPI_DIR}/${BASH_REMATCH[1]}.dsl\""
echo
fi
done
#if [[ $dumped -gt 0 ]]; then
# zip -r ACPI.zip ACPI && echo "Zipped your ACPI tables in file \"ACPI.zip\""
#fi
branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/version
1
2.0-RC4
branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
-----------------------------------
Chameleon System Preferences panel
by rekursor 1/17/2010
-----------------------------------
How to Install:
Double click on the panel file to install the resource
Configuration:
The persistent configuration file is a all users level preferences property list
located in In /Library/Preferences/com.chameleon.prefPane.plist.
The swap disk fix option might be use if your disk order from chameleon is different
from what diskutil list returns.
Ideally we should not need this fix, but as for now, I don't know another way to do it
In /Library/Preferences/com.chameleon.prefPane.plist:
you can insert a 'forceBootConfigPath' key with your com.apple.Boot,plist file path:
So if automatic detection does not work, then force your com.apple.Boot.plist path here.
Freeze Partitions (lock the partition list and prevent autodetection to happen)
You can also decide to freeze the partitions to prevent automatic detection,
if disk order is not matching after the boot or if you don't want the list to change
each time that a usb key is inserted, then use this feature.
For it to work, you will need first to click on:
Settings/Boot Selector Fixes/Inject Parts In Freeze File
Then all your automatically detected current partitions are injected in the pref. file,
all you need to do is to manually edit them to change their disk id/partition id
(2 first parameters in the pref. file under the partitionList key)
Troubleshooting
If the panel sees your com.apple.boot.plist in the status box, but the boot selection
seem to have no effect, it might be that you have more than one bootConfig file
and that the chameleon booter does not load the one that the panel selected,
see upper to force the bootConfig to match the one loaded by the chameleon booter.
branches/iFabio/Chameleon/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/TODO
1
2
3
4
5
6
7
8
9
10
Future version (codename: Gandalf) Plans
----------------------------------------
Implement most if not all of the Chameleon bootConfig parameters in the table view of the current prefpane : let the Magic happening !
Current versions todo list
--------------------------
- Add WebView in About Panel for nicer Kredits.
- Don't filter out soft-raids, which only have a disk identifier & no partition number
- Try to investigate if there is a better way to get the partition list
(currently done with diskutil list) probably with Chameleon booter RC6.

Archive Download the corresponding diff file

Revision: 269