+
+int infile, outfile;
+
+struct mach_header mh;
+void * cmds;
+
+boolean_t swap_ends;
+
+static unsigned long swap(
+ unsigned long x
+)
+{
+ if (swap_ends)
+ return OSSwapInt32(x);
+ else
+ return x;
+}
+
+int
+main(int argc, char *argv[])
+{
+ kern_return_t result;
+ vm_address_t data;
+ int nc, ncmds;
+ char * cp;
+
+ if (argc == 2) {
+ infile = open(argv[1], O_RDONLY);
+ if (infile < 0)
+ goto usage;
+ outfile = fileno(stdout);
+ }
+ else if (argc == 3) {
+ infile = open(argv[1], O_RDONLY);
+ if (infile < 0)
+ goto usage;
+ outfile = open(argv[2], O_WRONLY|O_CREAT|O_TRUNC, 0644);
+ if (outfile < 0)
+ goto usage;
+ }
+ else {
+usage:
+ fprintf(stderr, "usage: machOconv inputfile [outputfile]\n");
+ exit(1);
+ }
+
+ nc = read(infile, &mh, sizeof (mh));
+ if (nc < 0) {
+ perror("read mach header");
+ exit(1);
+ }
+ if (nc < (int)sizeof (mh)) {
+ fprintf(stderr, "read mach header: premature EOF %d\n", nc);
+ exit(1);
+ }
+ if (mh.magic == MH_MAGIC)
+ swap_ends = FALSE;
+ else if (mh.magic == MH_CIGAM)
+ swap_ends = TRUE;
+ else {
+ fprintf(stderr, "bad magic number %lx\n", (unsigned long)mh.magic);
+ exit(1);
+ }
+
+ cmds = calloc(swap(mh.sizeofcmds), sizeof (char));
+ if (cmds == 0) {
+ fprintf(stderr, "alloc load commands: no memory\n");
+ exit(1);
+ }
+ nc = read(infile, cmds, swap(mh.sizeofcmds));
+ if (nc < 0) {
+ perror("read load commands");
+ exit(1);
+ }
+ if (nc < (int)swap(mh.sizeofcmds)) {
+ fprintf(stderr, "read load commands: premature EOF %d\n", nc);
+ exit(1);
+ }
+
+ for ( ncmds = swap(mh.ncmds), cp = cmds;
+ ncmds > 0; ncmds--) {
+ boolean_t isDATA;
+ unsigned vmsize;
+
+#define lcp ((struct load_command *)cp)
+ switch(swap(lcp->cmd)) {
+
+ case LC_SEGMENT:
+#define scp ((struct segment_command *)cp)
+ isDATA = (strcmp(scp->segname, "__DATA") == 0);
+ if (isDATA)
+ vmsize = swap(scp->filesize);
+ else
+ vmsize = swap(scp->vmsize);
+ result = vm_allocate(mach_task_self(), &data, vmsize, TRUE);
+ if (result != KERN_SUCCESS) {
+ mach_error("vm_allocate segment data", result);
+ exit(1);
+ }
+
+ lseek(infile, swap(scp->fileoff), L_SET);
+ nc = read(infile, (void *)data, swap(scp->filesize));
+ if (nc < 0) {
+ perror("read segment data");
+ exit(1);
+ }
+ if (nc < (int)swap(scp->filesize)) {
+ fprintf(stderr, "read segment data: premature EOF %d\n", nc);
+ exit(1);
+ }
+
+ nc = write(outfile, (void *)data, vmsize);
+ if (nc < (int)vmsize) {
+ perror("write segment data");
+ exit(1);
+ }
+
+ vm_deallocate(mach_task_self(), data, vmsize);
+ break;
+ }
+
+ cp += swap(lcp->cmdsize);
+ }
+
+ exit(0);
+}
Index: trunk/package/Distribution
===================================================================
--- trunk/package/Distribution (revision 0)
+++ trunk/package/Distribution (revision 1)
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Chameleon_title
+
+
Index: trunk/package/fdisk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/package/fdisk
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: trunk/package/buildpkg
===================================================================
--- trunk/package/buildpkg (revision 0)
+++ trunk/package/buildpkg (revision 1)
@@ -0,0 +1,292 @@
+#!/bin/bash
+
+# $1 Path to store built package
+
+packagesidentity="org.chameleon"
+
+packagename="Chameleon"
+
+pkgroot="${0%/*}"
+
+#version=$( grep I386BOOT_CHAMELEONVERSION sym/i386/vers.h | awk '{ print $3 }' | tr -d '\"' )
+version=$( cat version )
+stage=${version##*-}
+revision=$( grep I386BOOT_CHAMELEONREVISION sym/i386/vers.h | awk '{ print $3 }' | tr -d '\"' )
+builddate=$( grep I386BOOT_BUILDDATE sym/i386/vers.h | awk '{ print $3,$4 }' | tr -d '\"' )
+timestamp=$( date -j -f "%Y-%m-%d %H:%M:%S" "${builddate}" "+%s" )
+
+distributioncount=0
+xmlindent=0
+
+indent[0]="\t"
+indent[1]="\t\t"
+indent[2]="\t\t\t"
+indent[3]="\t\t\t\t"
+
+main ()
+{
+
+# clean up the destination path
+
+ rm -R -f "${1}"
+
+ echo "Building $packagename Install Package v${version%%-*} $stage r$revision $builddate"
+
+ outline[$((outlinecount++))]="${indent[$xmlindent]}"
+
+# build core package
+
+ mkdir -p ${1}/Core/Root/usr/sbin
+ mkdir -p ${1}/Core/Root/usr/local/bin
+ mkdir -p ${1}/Core/Root/usr/standalone/i386
+ cp -f ${1%/*}/i386/boot ${1}/Core/Root/usr/standalone/i386
+ cp -f ${1%/*}/i386/boot0 ${1}/Core/Root/usr/standalone/i386
+ cp -f ${1%/*}/i386/boot1f32 ${1}/Core/Root/usr/standalone/i386
+ cp -f ${1%/*}/i386/boot1h ${1}/Core/Root/usr/standalone/i386
+ cp -f ${1%/*}/i386/boot1he ${1}/Core/Root/usr/standalone/i386
+ cp -f ${1%/*}/i386/boot1hp ${1}/Core/Root/usr/standalone/i386
+ cp -f ${1%/*}/i386/cdboot ${1}/Core/Root/usr/standalone/i386
+ cp -f ${1%/*}/i386/chain0 ${1}/Core/Root/usr/standalone/i386
+ fixperms "${1}/Core/Root/"
+ cp -f ${pkgroot}/fdisk ${1}/Core/Root/usr/sbin
+ local coresize=$( du -hkc "${1}/Core/Root" | tail -n1 | awk {'print $1'} )
+ buildpackage "${1}/Core" "/" "0" "start_visible=\"false\" start_selected=\"true\""
+
+# build standard package
+
+ mkdir -p ${1}/Standard/Root
+ mkdir -p ${1}/Standard/Scripts/Tools
+ cp -f ${pkgroot}/Scripts/Standard/* ${1}/Standard/Scripts
+ ditto --arch i386 `which SetFile` ${1}/Standard/Scripts/Tools/SetFile
+ buildpackage "${1}/Standard" "/" "${coresize}" "start_enabled=\"true\" start_selected=\"upgrade_allowed()\" selected=\"exclusive(choices['EnhancedHFS']) && exclusive(choices['EnhancedFAT'])\""
+
+# build efi fat32 package
+
+ mkdir -p ${1}/EnhancedFAT/Root
+ mkdir -p ${1}/EnhancedFAT/Scripts/Tools
+ cp -f ${pkgroot}/Scripts/FAT/* ${1}/EnhancedFAT/Scripts
+ ditto --arch i386 `which SetFile` ${1}/EnhancedFAT/Scripts/Tools/SetFile
+ buildpackage "${1}/EnhancedFAT" "/" "${coresize}" "start_visible=\"systemHasGPT()\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['EnhancedHFS'])\""
+
+# build efi hfs package
+
+ mkdir -p ${1}/EnhancedHFS/Root
+ mkdir -p ${1}/EnhancedHFS/Scripts/Tools
+ cp -f ${pkgroot}/Scripts/HFS/* ${1}/EnhancedHFS/Scripts
+ ditto --arch i386 `which SetFile` ${1}/EnhancedHFS/Scripts/Tools/SetFile
+ buildpackage "${1}/EnhancedHFS" "/" "${coresize}" "start_visible=\"systemHasGPT()\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['EnhancedFAT'])\""
+
+# build options packages
+
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+ ((xmlindent++))
+ packagesidentity="org.chameleon"
+ options=($( find "${pkgroot}/Scripts/Options" -type d -depth 1 -not -name '.svn' ))
+ for (( i = 0 ; i < ${#options[@]} ; i++ ))
+ do
+ mkdir -p "${1}/${options[$i]##*/}/Root"
+ mkdir -p "${1}/${options[$i]##*/}/Scripts"
+
+ ditto --noextattr --noqtn "${options[$i]}/postinstall" "${1}/${options[$i]##*/}/Scripts/postinstall"
+
+ buildpackage "${1}/${options[$i]##*/}" "/" "" "start_selected=\"false\""
+ done
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+
+# build theme packages
+
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+ ((xmlindent++))
+ packagesidentity="org.chameleon.theme"
+ artwork="${1%/*}"
+ themes=($( find "${artwork%/*}/artwork/themes" -type d -depth 1 -not -name '.svn' ))
+ for (( i = 0 ; i < ${#themes[@]} ; i++ ))
+ do
+ theme=$( echo ${themes[$i]##*/} | awk 'BEGIN{OFS=FS=""}{$1=toupper($1);print}' )
+ mkdir -p "${1}/${theme}/Root/"
+ ditto --noextattr --noqtn "${themes[$i]}" "${1}/${themes[$i]##*/}/Root/${theme}"
+ find "${1}/${themes[$i]##*/}" -name '.DS_Store' -or -name '.svn' -exec rm -R {} \+
+ find "${1}/${themes[$i]##*/}" -type f -exec chmod 644 {} \+
+
+ buildpackage "${1}/${theme}" "/.Chameleon/Extra/Themes" ""
+ rm -R -f "${1}/${i##*/}"
+ done
+
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+
+ ((xmlindent++))
+
+# build kext packages
+
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+ ((xmlindent++))
+ packagesidentity="org.chameleon"
+ kexts=($( find "${pkgroot}/Kexts" -type d -name '*.kext' -depth 1 ))
+ for (( i = 0 ; i < ${#kexts[@]} ; i++ ))
+ do
+ filename="${kexts[$i]##*/}"
+ mkdir -p "${1}/${filename%.kext}/Root/"
+ ditto --noextattr --noqtn --arch i386 "${kexts[$i]}" "${1}/${filename%.kext}/Root/${filename}"
+ find "${1}/${filename%.kext}" -name '.DS_Store' -or -name '.svn' -exec rm -R -f {} \; 2>/dev/null
+ fixperms "${1}/${filename%.kext}/Root/"
+ chown 501:20 "${1}/${filename%.kext}/Root/"
+ buildpackage "${1}/${filename%.kext}" "/.Chameleon/Extra/Extensions" ""
+ rm -R -f "${1}/${filename%.kext}"
+ done
+
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+
+# build post install package
+
+ mkdir -p ${1}/Post/Root
+ mkdir -p ${1}/Post/Scripts
+ cp -f ${pkgroot}/Scripts/Post/* ${1}/Post/Scripts
+ buildpackage "${1}/Post" "/" "" "start_visible=\"false\" start_selected=\"true\""
+ outline[$((outlinecount++))]="${indent[$xmlindent]}"
+
+# build meta package
+
+ makedistribution "${1}" "${2}" "${3}" "${4}" "${5}"
+
+# clean up
+
+ rm -R -f "${1}"
+
+}
+
+fixperms ()
+{
+ # $1 path
+ find "${1}" -type f -exec chmod 644 {} \;
+ find "${1}" -type d -exec chmod 755 {} \;
+ chown -R 0:0 "${1}"
+}
+
+buildpackage ()
+{
+# $1 Path to package to build containing Root and or Scripts
+# $2 Install Location
+# $3 Size
+# $4 Options
+
+if [ -d "${1}/Root" ] && [ "${1}/Scripts" ]; then
+
+ local packagename="${1##*/}"
+ local identifier=$( echo ${packagesidentity}.${packagename//_/.} | tr [:upper:] [:lower:] )
+ find "${1}" -name '.DS_Store' -delete
+ local filecount=$( find "${1}/Root" | wc -l )
+ if [ "${3}" ]; then
+ local installedsize="${3}"
+ else
+ local installedsize=$( du -hkc "${1}/Root" | tail -n1 | awk {'print $1'} )
+ fi
+ local header="\n\n"
+ header+="\t\n"
+ rm -R -f "${1}/Temp"
+
+ [ -d "${1}/Temp" ] || mkdir -m 777 "${1}/Temp"
+ [ -d "${1}/Root" ] && mkbom "${1}/Root" "${1}/Temp/Bom"
+
+ if [ -d "${1}/Scripts" ]; then
+ header+="\t\n"
+ for script in $( find "${1}/Scripts" -type f \( -name 'pre*' -or -name 'post*' \) )
+ do
+ header+="\t\t<${script##*/} file=\"./${script##*/}\"/>\n"
+ done
+ header+="\t\n"
+ chown -R 0:0 "${1}/Scripts"
+ pushd "${1}/Scripts" >/dev/null
+ find . -print | cpio -o -z -H cpio > "../Temp/Scripts"
+ popd >/dev/null
+ fi
+
+ header+=""
+ echo -e "${header}" > "${1}/Temp/PackageInfo"
+ pushd "${1}/Root" >/dev/null
+ find . -print | cpio -o -z -H cpio > "../Temp/Payload"
+ popd >/dev/null
+ pushd "${1}/Temp" >/dev/null
+
+ xar -c -f "${1%/*}/${packagename// /}.pkg" --compression none .
+
+ popd >/dev/null
+
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+
+ if [ "${4}" ]; then
+ local choiceoptions="${indent[$xmlindent]}${4}\n"
+ fi
+ choices[$((choicescount++))]="\n\t#${packagename// /}.pkg\n\n"
+
+ rm -R -f "${1}"
+fi
+}
+
+makedistribution ()
+{
+ rm -f "${1%/*}/${packagename// /}"*.pkg
+
+ find "${1}" -type f -name '*.pkg' -depth 1 | while read component
+ do
+ mkdir -p "${1}/${packagename}/${component##*/}"
+ pushd "${1}/${packagename}/${component##*/}" >/dev/null
+ xar -x -f "${1%}/${component##*/}"
+ popd >/dev/null
+ done
+
+ ditto --noextattr --noqtn "${pkgroot}/Distribution" "${1}/${packagename}/Distribution"
+ ditto --noextattr --noqtn "${pkgroot}/Resources" "${1}/${packagename}/Resources"
+
+ find "${1}/${packagename}/Resources" -type d -name '.svn' -exec rm -R -f {} \; 2>/dev/null
+
+ for (( i=0; i < ${#outline[*]} ; i++));
+ do
+ echo -e "${outline[$i]}" >> "${1}/${packagename}/Distribution"
+ done
+
+ for (( i=0; i < ${#choices[*]} ; i++));
+ do
+ echo -e "${choices[$i]}" >> "${1}/${packagename}/Distribution"
+ done
+
+ echo "" >> "${1}/${packagename}/Distribution"
+
+ perl -i -p -e "s/%CHAMELEONVERSION%/${version%%-*}/g" `find "${1}/${packagename}/Resources" -type f`
+ perl -i -p -e "s/%CHAMELEONREVISION%/${revision}/g" `find "${1}/${packagename}/Resources" -type f`
+
+ stage=${stage/RC/Release Candidate }
+ stage=${stage/FINAL/2.0 Final}
+ perl -i -p -e "s/%CHAMELEONSTAGE%/${stage}/g" `find "${1}/${packagename}/Resources" -type f`
+
+ find "${1}/${packagename}" -name '.DS_Store' -delete
+ pushd "${1}/${packagename}" >/dev/null
+ xar -c -f "${1%/*}/${packagename// /}-${version}-r${revision}.pkg" --compression none .
+ popd >/dev/null
+
+ md5=$( md5 "${1%/*}/${packagename// /}-${version}-r${revision}.pkg" | awk {'print $4'} )
+ echo "MD5 (${packagename// /}-${version}-r${revision}.pkg) = ${md5}" > "${1%/*}/${packagename// /}-${version}-r${revision}.pkg.md5"
+}
+
+main "${1}" "${2}" "${3}" "${4}" "${5}"
+
Index: trunk/package/smbios.plist
===================================================================
--- trunk/package/smbios.plist (revision 0)
+++ trunk/package/smbios.plist (revision 1)
@@ -0,0 +1,48 @@
+
+
+
+
+ SMbiosversion
+ MP31.88Z.00C1.B00.0802091544
+ SMmanufacter
+ Apple Inc.
+ SMproductname
+ MacPro3,1
+ SMsystemversion
+ 1.0
+ SMserial
+ W87234JHYA4
+ SMexternalclock
+ 333
+ SMmaximalclock
+ 3000
+ SMmemtype
+ 19
+ SMmemspeed
+ 800
+ SMmemmanufacter_1
+ 0xAD00000000000000
+ SMmemserial_1
+ 0x00001020
+ SMmempart_1
+ 0x48594D503131325336344350362D59352020
+ SMmemmanufacter_2
+ 0xAD00000000000000
+ SMmemserial_2
+ 0x00003021
+ SMmempart_2
+ 0x48594D503131325336344350362D59352020
+ SMmemmanufacter_3
+ 0xAD00000000000000
+ SMmemserial_3
+ 0x00003021
+ SMmempart_3
+ 0x48594D503131325336344350362D59352020
+ SMmemmanufacter_4
+ 0xAD00000000000000
+ SMmemserial_4
+ 0x00003021
+ SMmempart_4
+ 0x48594D503131325336344350362D59352020
+
+
Index: trunk/package/Scripts/HFS/postinstall
===================================================================
--- trunk/package/Scripts/HFS/postinstall (revision 0)
+++ trunk/package/Scripts/HFS/postinstall (revision 1)
@@ -0,0 +1,252 @@
+#!/bin/bash
+
+diskloader="/usr/standalone/i386/boot0"
+partitionloader="/usr/standalone/i386/boot1h"
+filesystemloader="/usr/standalone/i386/boot"
+bootervolumename="EFI"
+booterextensions="Extra/Extensions"
+
+bootresources="${0%/*}"
+
+diskmicrocodetype[1]="GRUB,47525542"
+diskmicrocodetype[2]="LILO,4c494c4f"
+
+start ()
+{
+# $1 volume
+
+osxvolume="${@}"
+
+if [ -z "${osxvolume}" ]; then
+ echo
+ echo "Cannot find the volume. Exiting."
+ exit
+fi
+
+bootdev=$( df "${osxvolume}" | sed -n '2p' | awk '{print $1}' )
+
+if [ "${bootdev}" = "${bootdev#*disk*s}" ]; then
+ echo
+ echo "ERROR Volume does not use slices."
+ echo "Volume may be stored on a RAID array."
+ echo
+ exit
+fi
+
+partitiontable=$( dd 2>/dev/null if=${bootdev%s*} count=1 skip=1 | dd 2>/dev/null count=8 bs=1 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+if [ "${partitiontable:0:16}" == "4546492050415254" ]; then
+ partitiontable=$( dd 2>/dev/null if=${bootdev%s*} count=1 | dd 2>/dev/null count=64 bs=1 skip=446 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+ if [ "${partitiontable:8:2}" == "ee" ]; then
+ if [ "${partitiontable:40:2}" == "00" ] && [ "${partitiontable:72:2}" == "00" ] && [ "${partitiontable:104:2}" == "00" ]; then
+ partitiontable="GPT"
+ else
+ partitiontable="GPT/MBR"
+ fi
+ fi
+else
+ echo
+ echo "ERROR Volume is not on a GPT partitioned disc."
+ echo
+ exit
+fi
+
+echo "${partitiontable} found."
+
+echo "OS X Volume is ${osxvolume}"
+echo "OX X Volume device is ${bootdev}"
+
+bootvolume="/Volumes/$bootervolumename"
+bootdev=${bootdev%s*}s1
+bootrdev=${bootdev/disk/rdisk}
+bootdisk=${bootdev%s*}
+bootrdisk=${bootdisk/disk/rdisk}
+bootslice=${bootdev#*disk*s}
+
+echo "EFI Volume device is ${bootdev}"
+echo "EFI Volume raw device is ${bootrdev}"
+echo "EFI Volume slice is ${bootslice}"
+echo "Disk device is ${bootdisk}"
+echo "Disk raw device is ${bootrdisk}"
+echo "Disk loader is ${diskloader}"
+echo "Partition loader is ${partitionloader}"
+echo "Filesystem loader is ${filesystemloader}"
+
+}
+
+checkdiskmicrocodetype ()
+{
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+diskmicrocodetypecounter=0
+while [ ${diskmicrocodetypecounter} -lt ${#diskmicrocodetype[@]} ]; do
+ diskmicrocodetypecounter=$(( ${diskmicrocodetypecounter} + 1 ))
+ diskmicrocodetypeid=${diskmicrocodetype[${diskmicrocodetypecounter}]#*,}
+ if [ ! "${diskmicrocode}" = "${diskmicrocode/${diskmicrocodetypeid}/}" ]; then
+ echo "${diskmicrocodetype[${diskmicrocodetypecounter}]%,*} found."
+ fi
+done
+}
+
+checkdiskmicrocode ()
+{
+# 1 action ( check or set )
+
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+diskmicrocodemd5=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | md5 )
+
+if [ $( echo "${diskmicrocode}" | awk -F0 '{print NF-1}' ) = 874 ]; then
+ if [ "${1}" = "set" ]; then
+ echo "No disk microcode found. Updating."
+ diskupdate=true
+ else
+ echo "No disk microcode found."
+ fi
+else
+ if [ ${1} = set ]; then
+ echo "Disk microcode found. Preserving."
+ else
+ echo "Disk microcode found."
+ fi
+ echo "Disk microcode MD5 is ${diskmicrocodemd5}"
+fi
+}
+
+checkdisksignature ()
+{
+disksignature=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=4 bs=1 skip=440 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+if [ $( echo "${disksignature}" | awk -F0 '{print NF-1}' ) = 8 ]; then
+ echo "No disk signature found."
+else
+ echo "Disk signature found."
+ echo "Disk signature is 0x${disksignature}"
+fi
+}
+
+checkpartitionbootcode ()
+{
+# 1 action ( check or set )
+
+partitionbootcode=$( dd if=${bootrdev} count=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+partitionbootcodeextended=$( dd if=${bootrdev} count=1 skip=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+if [ $( echo "${partitionbootcode}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ if [ "${1}" = "set" ]; then
+ echo "No partition bootcode found. Updating."
+ else
+ echo "No partition bootcode found."
+ fi
+else
+ if [ "${1}" = "set" ]; then
+ echo "Partition bootcode found. Overwriting."
+ else
+ echo "Partition bootcode found."
+ fi
+ if [ $( echo "${partitionbootcodeextended}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=1 | md5 )
+ else
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=2 | md5 )
+ echo "Partition bootcode is dual sector."
+ fi
+ echo "Partition bootcode MD5 is ${partitionbootcodemd5}"
+fi
+}
+
+checkpartitionactive ()
+{
+partitionactive=$( fdisk -d ${bootrdisk} | grep -n "*" | awk -F: '{print $1}')
+
+if [ -n "${partitionactive}" ]; then
+ echo "Partition flagged active is ${partitionactive}"
+else
+ echo "No partition flagged active."
+fi
+
+}
+
+start ${3}
+
+if [ "$( df | grep ${bootdev} )" ]; then
+ umount -f ${bootdev}
+fi
+
+if ! [ "$( fstyp ${bootdev} | grep hfs )" ]; then
+ echo "${bootdev} isn't a HFS partition"
+ echo "Executing command: newfs_hfs -v ${bootervolumename} ${bootdev}"
+ newfs_hfs -v "${bootervolumename}" "${bootdev}"
+else
+ echo "${bootdev} is already a HFS partition (skipping)"
+fi
+
+diskupdate=false
+checkdiskmicrocodetype
+checkdiskmicrocode set
+checkdisksignature
+checkpartitionbootcode set
+checkpartitionactive
+
+if ${diskupdate}; then
+ echo "Executing command: fdisk -u -f ${diskloader} -y ${bootdisk}"
+ fdisk -u -f "${osxvolume}/${diskloader}" -y ${bootdisk}
+fi
+
+echo "Executing command: dd if=${partitionloader} of=${bootrdev}"
+dd if="${osxvolume}/${partitionloader}" of=${bootrdev}
+
+# If table is GPT make the first partition active (BadAxe compatibility).
+[ "${partitiontable}" = "GPT" ] && bootslice=1
+if [[ "${partitiontable}" = "GPT" ]]; then
+ fdisk -e ${bootdisk} <<-MAKEACTIVE
+ print
+ flag ${bootslice}
+ write
+ y
+ quit
+ MAKEACTIVE
+fi
+
+checkdiskmicrocode check
+checkdisksignature
+checkpartitionbootcode check
+checkpartitionactive
+
+[ -d "${bootvolume}" ] || mkdir -p "${bootvolume}"
+echo "Executing command: mount_hfs ${bootdev} ${bootvolume}"
+mount_hfs "${bootdev}" "${bootvolume}"
+
+echo "Executing command: cp ${osxvolume}${filesystemloader} ${bootvolume}/boot"
+cp "${osxvolume}${filesystemloader}" "${bootvolume}/boot"
+
+if ! [ -d "${bootvolume}/Extra/Extensions" ]; then
+ echo "Executing command: mkdir -p ${bootvolume}/Extra/Extensions"
+ mkdir -p "${bootvolume}/Extra/Extensions"
+fi
+# unpack any existing Extensions.mkext already on the booter volume
+if [ -e "${bootvolume}/Extra/Extensions.mkext" ]; then
+ echo "Executing command: mkextunpack -d ${bootvolume}/Extra/Extensions ${bootvolume}/Extra/Extensions.mkext"
+ mkextunpack -d "${bootvolume}/Extra/Extensions" "${bootvolume}/Extra/Extensions.mkext"
+ echo "Executing command: rm -R -f ${bootvolume}/Extra/Extensions.mkext"
+ rm -R -f "${bootvolume}/Extra/Extensions.mkext"
+fi
+
+# copy existing /Extra
+if [ -d "${2}/Extra" ]; then
+ [ -d "${bootvolume}/Extra/Extensions" ] || mkdir -p "${bootvolume}/Extra/Extensions"
+ echo "Executing command: find ${2}/Extra -name '*.plist' -depth 1 -exec cp -f {} ${bootvolume}/Extra \;"
+ find "${2}/Extra" -name '*.plist' -depth 1 -exec cp -f {} "${bootvolume}/Extra/" \;
+ if [ -f "${2}/Extra/Extensions.mkext" ]; then
+ echo "Executing command: mkextunpack -d ${2}/Extra/Extensions ${2}/Extra/Extensions.mkext"
+ mkextunpack -d "${bootvolume}/Extra/Extensions" "${2}/Extra/Extensions.mkext"
+ fi
+ if [ -d "${2}/Extra/Extensions" ]; then
+ echo "Executing command: find ${2}/Extra/Extensions -name '*.kext' -depth 1 -exec cp -R {} ${bootvolume}/Extra/Extensions \;"
+ find "${2}/Extra/Extensions" -name '*.kext' -depth 1 -exec cp -R {} "${bootvolume}/Extra/Extensions" \;
+ fi
+fi
+
+# setup link for extras
+[ -h "${2}/.Chameleon" ] && unlink "${2}/.Chameleon"
+echo "Executing command: ln -s /Volumes/${bootervolumename} ${2}/.Chameleon"
+ln -s "/Volumes/${bootervolumename}" "${2}/.Chameleon"
+
+exit
Index: trunk/package/Scripts/Standard/postinstall
===================================================================
--- trunk/package/Scripts/Standard/postinstall (revision 0)
+++ trunk/package/Scripts/Standard/postinstall (revision 1)
@@ -0,0 +1,220 @@
+#!/bin/bash
+
+
+diskloader="boot0"
+partitionloader="boot1h"
+filesystemloader="boot"
+
+diskmicrocodetype[1]="GRUB,47525542"
+diskmicrocodetype[2]="LILO,4c494c4f"
+
+start ()
+{
+# 1 volume
+
+bootvolume="${@}"
+bootresources="${0%/*}"
+
+if [ -z "${bootvolume}" ]; then
+ echo
+ echo "Cannot find the volume. Exiting."
+ echo
+ exit
+fi
+
+bootdev=$( df "${bootvolume}" | sed -n '2p' | awk '{print $1}' )
+bootrdev=${bootdev/disk/rdisk}
+
+if [ "${bootdev}" = "${bootdev#*disk*s}" ]; then
+ echo
+ echo "ERROR Volume does not use slices."
+ echo
+ exit
+fi
+
+bootdisk=${bootdev%s*}
+bootrdisk=${bootdisk/disk/rdisk}
+bootslice=${bootdev#*disk*s}
+
+echo "Volume is ${bootvolume}"
+echo "Volume device is ${bootdev}"
+echo "Volume raw device is ${bootrdev}"
+echo "Volume slice is ${bootslice}"
+echo "Disk device is ${bootdisk}"
+echo "Disk raw device is ${bootrdisk}"
+echo "Disk loader is ${diskloader}"
+echo "Partition loader is ${partitionloader}"
+echo "Filesystem loader is ${filesystemloader}"
+echo "Boot Resources is ${bootresources}"
+
+}
+
+checkdiskmicrocodetype ()
+{
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+diskmicrocodetypecounter=0
+while [ ${diskmicrocodetypecounter} -lt ${#diskmicrocodetype[@]} ]; do
+ diskmicrocodetypecounter=$(( ${diskmicrocodetypecounter} + 1 ))
+ diskmicrocodetypeid=${diskmicrocodetype[${diskmicrocodetypecounter}]#*,}
+ if [ ! "${diskmicrocode}" = "${diskmicrocode/${diskmicrocodetypeid}/}" ]; then
+ echo "${diskmicrocodetype[${diskmicrocodetypecounter}]%,*} found."
+ fi
+done
+}
+
+checkdiskmicrocode ()
+{
+# 1 action ( check or set )
+
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+diskmicrocodemd5=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | md5 )
+
+if [ $( echo "${diskmicrocode}" | awk -F0 '{print NF-1}' ) = 874 ]; then
+ if [ "${1}" = "set" ]; then
+ echo "No disk microcode found. Updating."
+ diskupdate=true
+ else
+ echo "No disk microcode found."
+ fi
+else
+ if [ ${1} = set ]; then
+ echo "Disk microcode found. Preserving."
+ else
+ echo "Disk microcode found."
+ fi
+ echo "Disk microcode MD5 is ${diskmicrocodemd5}"
+fi
+}
+
+checkdisksignature ()
+{
+disksignature=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=4 bs=1 skip=440 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+if [ $( echo "${disksignature}" | awk -F0 '{print NF-1}' ) = 8 ]; then
+ echo "No disk signature found."
+else
+ echo "Disk signature found."
+ echo "Disk signature is 0x${disksignature}"
+fi
+}
+
+checkpartitionbootcode ()
+{
+# 1 action ( check or set )
+
+partitionbootcode=$( dd if=${bootrdev} count=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+partitionbootcodeextended=$( dd if=${bootrdev} count=1 skip=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+if [ $( echo "${partitionbootcode}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ if [ "${1}" = "set" ]; then
+ echo "No partition bootcode found. Updating."
+ else
+ echo "No partition bootcode found."
+ fi
+else
+ if [ "${1}" = "set" ]; then
+ echo "Partition bootcode found. Overwriting."
+ else
+ echo "Partition bootcode found."
+ fi
+ if [ $( echo "${partitionbootcodeextended}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=1 | md5 )
+ else
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=2 | md5 )
+ echo "Partition bootcode is dual sector."
+ fi
+ echo "Partition bootcode MD5 is ${partitionbootcodemd5}"
+fi
+}
+
+checkpartitionactive ()
+{
+partitionactive=$( fdisk -d ${bootrdisk} | grep -n "*" | awk -F: '{print $1}')
+
+if [ -n "${partitionactive}" ]; then
+ echo "Partition flagged active is ${partitionactive}"
+else
+ echo "No partition flagged active."
+fi
+
+}
+
+start ${3}
+
+#partitiontable=$( diskutil list ${bootdisk} | sed -n '3p' | awk '{print $2}' )
+#[ "${partitiontable}" = "GUID_partition_scheme" ] && echo "GPT found."
+#[ "${partitiontable}" = "FDisk_partition_scheme" ] && echo "MBR found."
+#[ "${partitiontable}" = "Apple_partition_scheme" ] && echo "APT found." && exit
+
+partitiontable=$( dd 2>/dev/null if=${bootdisk} count=1 skip=1 | dd 2>/dev/null count=8 bs=1 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+if [ "${partitiontable:0:16}" == "4546492050415254" ]; then
+ partitiontable=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=64 bs=1 skip=446 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+ if [ "${partitiontable:8:2}" == "ee" ]; then
+ if [ "${partitiontable:40:2}" == "00" ] && [ "${partitiontable:72:2}" == "00" ] && [ "${partitiontable:104:2}" == "00" ]; then
+ partitiontable="GPT"
+ else
+ partitiontable="GPT/MBR"
+ fi
+ fi
+else
+ partitiontable="MBR"
+fi
+
+echo "${partitiontable} found."
+
+diskupdate=false
+
+checkdiskmicrocodetype
+checkdiskmicrocode set
+checkdisksignature
+checkpartitionbootcode set
+checkpartitionactive
+
+if ${diskupdate}; then
+ echo "Executing command: fdisk -u -f /usr/standalone/i386/${diskloader} -y ${bootdisk}"
+ fdisk -u -f "${bootvolume}/usr/standalone/i386/${diskloader}" -y ${bootdisk}
+fi
+
+echo "Executing command: dd if=/usr/standalone/i386/${partitionloader} of=${bootrdev}"
+dd if="${bootvolume}/usr/standalone/i386/${partitionloader}" of=${bootrdev}
+
+echo "Executing command: cp /usr/standalone/i386/${filesystemloader} ${bootvolume}"
+cp "${bootvolume}/usr/standalone/i386/${filesystemloader}" "${bootvolume}"
+
+echo "Executing command: ${bootresources}/Tools/SetFile -a V ${bootvolume}/${filesystemloader}"
+"${bootresources}/Tools/SetFile" -a V "${bootvolume}/${filesystemloader}"
+
+# If table is GPT make the first partition active (BadAxe compatibility).
+[ "${partitiontable}" = "GPT" ] && bootslice=1
+fdisk -e ${bootdisk} <<-MAKEACTIVE
+print
+flag ${bootslice}
+write
+y
+quit
+MAKEACTIVE
+
+checkdiskmicrocode check
+checkdisksignature
+checkpartitionbootcode check
+checkpartitionactive
+
+if ! [ -d "${bootvolume}/Extra/Extensions" ]; then
+ echo "Executing command: mkdir -p ${bootvolume}/Extra/Extensions"
+ mkdir -p "${bootvolume}/Extra/Extensions"
+fi
+# unpack any existing Extensions.mkext already on the booter volume
+if [ -f "${2}/Extra/Extensions.mkext" ]; then
+ echo "Executing command: mkextunpack -d ${2}/Extra/Extensions ${2}/Extra/Extensions.mkext"
+ mkextunpack -d "${2}/Extra/Extensions" "${2}/Extra/Extensions.mkext"
+ echo "Executing command: rm -R -f ${2}/Extra/Extensions.mkext"
+ rm -R -f "${2}/Extra/Extensions.mkext"
+fi
+
+# setup link for extras
+[ -h "${2}/.Chameleon" ] && unlink "${2}/.Chameleon"
+echo "Executing command: ln -s . ${2}/.Chameleon"
+ln -s "." "${2}/.Chameleon"
+
+exit
Index: trunk/package/Scripts/Post/postinstall
===================================================================
--- trunk/package/Scripts/Post/postinstall (revision 0)
+++ trunk/package/Scripts/Post/postinstall (revision 1)
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+temp="/tmp/Chameleon"
+
+# source com.apple.boot.plist
+if ! [ -f "${2}/.Chameleon/Extra/com.apple.Boot.plist" ]; then
+ if [ -f "${2}/Library/Preferences/SystemConfiguration/com.apple.Boot.plist" ]; then
+ cp -f "${2}/Library/Preferences/SystemConfiguration/com.apple.Boot.plist" "${2}/.Chameleon/Extra"
+ fi
+fi
+
+# fix kext permissions
+find "${2}/.Chameleon/Extra/Extensions" -type f -exec chmod 644 {} \;
+find "${2}/.Chameleon/Extra/Extensions" -type d -exec chmod 755 {} \;
+chown -R 0:0 "${2}/.Chameleon/Extra/Extensions"
+
+# build mkext for extras
+[ -d "${temp}" ] && rm -R -f "${temp}"
+mkdir -p "${temp}/Extensions"
+ditto --noextattr --noqtn --arch i386 "${2}/.Chameleon/Extra/Extensions" "${temp}/Extensions"
+find "${temp}" -type f -exec chmod 644 {} \;
+find "${temp}" -type d -exec chmod 755 {} \;
+chown -R 0:0 "${temp}"
+kextcache -m "${temp}/Extensions.mkext" "${temp}/Extensions"
+cp -f "${temp}/Extensions.mkext" "${2}/.Chameleon/Extra"
+rm -R -f "${temp}"
+
+# remove link for extras install
+unlink "${2}/.Chameleon"
+
+# umount efi partition
+if [ -d /Volumes/EFI ]; then
+ umount -f /Volumes/EFI
+ rm -R -f /Volumes/EFI
+fi
+
+exit 0
\ No newline at end of file
Index: trunk/package/Scripts/FAT/postinstall
===================================================================
--- trunk/package/Scripts/FAT/postinstall (revision 0)
+++ trunk/package/Scripts/FAT/postinstall (revision 1)
@@ -0,0 +1,265 @@
+#!/bin/bash
+
+diskloader="/usr/standalone/i386/boot0"
+partitionloader="/usr/standalone/i386/boot1f32"
+filesystemloader="/usr/standalone/i386/boot"
+bootervolumename="EFI"
+booterextensions="Extra/Extensions"
+
+bootresources="${0%/*}"
+
+diskmicrocodetype[1]="GRUB,47525542"
+diskmicrocodetype[2]="LILO,4c494c4f"
+
+start ()
+{
+# $1 volume
+
+osxvolume="${@}"
+
+if [ -z "${osxvolume}" ]; then
+ echo
+ echo "Cannot find the volume. Exiting."
+ exit
+fi
+
+bootdev=$( df "${osxvolume}" | sed -n '2p' | awk '{print $1}' )
+
+if [ "${bootdev}" = "${bootdev#*disk*s}" ]; then
+ echo
+ echo "ERROR Volume does not use slices."
+ echo "Volume may be stored on a RAID array."
+ echo
+ exit
+fi
+
+bootuuid=$( diskutil info "$bootdev" | grep Volume\ UUID | awk {'print $3'} )
+partitiontable=$( diskutil list ${bootdev%s*} | sed -n '3p' | awk '{print $2}' )
+
+if [ ${partitiontable} != "GUID_partition_scheme" ]; then
+ echo
+ echo "ERROR Volume is not on a GPT partitioned disc."
+ echo
+ exit
+fi
+
+echo "GPT found."
+
+echo "OS X Volume is ${osxvolume}"
+echo "OX X Volume device is ${bootdev}"
+echo "OS X Volume UUID is ${bootuuid}"
+
+
+bootvolume="/Volumes/$bootervolumename"
+bootdev=${bootdev%s*}s1
+bootrdev=${bootdev/disk/rdisk}
+bootdisk=${bootdev%s*}
+bootrdisk=${bootdisk/disk/rdisk}
+bootslice=${bootdev#*disk*s}
+
+echo "EFI Volume device is ${bootdev}"
+echo "EFI Volume raw device is ${bootrdev}"
+echo "EFI Volume slice is ${bootslice}"
+echo "Disk device is ${bootdisk}"
+echo "Disk raw device is ${bootrdisk}"
+echo "Disk loader is ${diskloader}"
+echo "Partition loader is ${partitionloader}"
+echo "Filesystem loader is ${filesystemloader}"
+
+}
+
+checkdiskmicrocodetype ()
+{
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+diskmicrocodetypecounter=0
+while [ ${diskmicrocodetypecounter} -lt ${#diskmicrocodetype[@]} ]; do
+ diskmicrocodetypecounter=$(( ${diskmicrocodetypecounter} + 1 ))
+ diskmicrocodetypeid=${diskmicrocodetype[${diskmicrocodetypecounter}]#*,}
+ if [ ! "${diskmicrocode}" = "${diskmicrocode/${diskmicrocodetypeid}/}" ]; then
+ echo "${diskmicrocodetype[${diskmicrocodetypecounter}]%,*} found."
+ fi
+done
+}
+
+checkdiskmicrocode ()
+{
+# 1 action ( check or set )
+
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+diskmicrocodemd5=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | md5 )
+
+if [ $( echo "${diskmicrocode}" | awk -F0 '{print NF-1}' ) = 874 ]; then
+ if [ "${1}" = "set" ]; then
+ echo "No disk microcode found. Updating."
+ diskupdate=true
+ else
+ echo "No disk microcode found."
+ fi
+else
+ if [ ${1} = set ]; then
+ echo "Disk microcode found. Preserving."
+ else
+ echo "Disk microcode found."
+ fi
+ echo "Disk microcode MD5 is ${diskmicrocodemd5}"
+fi
+}
+
+checkdisksignature ()
+{
+disksignature=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=4 bs=1 skip=440 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+if [ $( echo "${disksignature}" | awk -F0 '{print NF-1}' ) = 8 ]; then
+ echo "No disk signature found."
+else
+ echo "Disk signature found."
+ echo "Disk signature is 0x${disksignature}"
+fi
+}
+
+checkpartitionbootcode ()
+{
+# 1 action ( check or set )
+
+partitionbootcode=$( dd if=${bootrdev} count=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+partitionbootcodeextended=$( dd if=${bootrdev} count=1 skip=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+if [ $( echo "${partitionbootcode}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ if [ "${1}" = "set" ]; then
+ echo "No partition bootcode found. Updating."
+ else
+ echo "No partition bootcode found."
+ fi
+else
+ if [ "${1}" = "set" ]; then
+ echo "Partition bootcode found. Overwriting."
+ else
+ echo "Partition bootcode found."
+ fi
+ if [ $( echo "${partitionbootcodeextended}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=1 | md5 )
+ else
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=2 | md5 )
+ echo "Partition bootcode is dual sector."
+ fi
+ echo "Partition bootcode MD5 is ${partitionbootcodemd5}"
+fi
+}
+
+checkpartitionactive ()
+{
+partitionactive=$( fdisk -d ${bootrdisk} | grep -n "*" | awk -F: '{print $1}')
+
+if [ -n "${partitionactive}" ]; then
+ echo "Partition flagged active is ${partitionactive}"
+else
+ echo "No partition flagged active."
+fi
+
+}
+
+start ${3}
+
+if [ "$( df | grep ${bootdev} )" ]; then
+ umount -f ${bootdev}
+fi
+
+#if [[ `dd if=/dev/disk${1}s1 count=8 bs=1 skip=82 | uuencode -m -|head -n 2|tail -n 1` != "RkFUMzIgICA=" ]]; then
+# echo "${bootdev} isn't a FAT32 partition"
+# newfs_msdos -v "${bootervolumename}" "${bootdev}"
+#fi
+
+if ! [ "$( fstyp ${bootdev} | grep msdos )" ]; then
+ echo "${bootdev} isn't a FAT32 partition"
+ echo "Executing command: newfs_msdos -F 32 ${bootdev}"
+ newfs_msdos -F 32 "${bootdev}"
+else
+ echo "${bootdev} is already a FAT32 partition (skipping)"
+fi
+
+diskupdate=false
+checkdiskmicrocodetype
+checkdiskmicrocode set
+checkdisksignature
+checkpartitionbootcode set
+checkpartitionactive
+
+if ${diskupdate}; then
+ echo "Executing command: fdisk -u -f ${diskloader} -y ${bootdisk}"
+ fdisk -u -f "${osxvolume}/${diskloader}" -y ${bootdisk}
+fi
+
+#echo "Executing command: dd if=${partitionloader} of=${bootrdev}"
+#dd if="${osxvolume}/${partitionloader}" of=${bootrdev}
+
+echo "Stage 1"
+
+echo "Executing command: dd if=${bootrdev} count=1 bs=512 of=/tmp/origbs"
+dd if=${bootrdev} count=1 bs=512 of=/tmp/origbs
+
+echo "Executing command: cp ${osxvolume}/${partitionloader} /tmp/newbs"
+cp "${osxvolume}/${partitionloader}" /tmp/newbs
+
+echo "Executing command: dd if=/tmp/origbs of=/tmp/newbs skip=3 seek=3 bs=1 count=87 conv=notrunc"
+dd if=/tmp/origbs of=/tmp/newbs skip=3 seek=3 bs=1 count=87 conv=notrunc
+
+echo "Executing command: dd of=${bootrdev} count=1 bs=512 if=/tmp/newbs"
+dd if=/tmp/newbs of=${bootrdev} count=1 bs=512
+
+# If table is MBR make the correct slice active. If table is GPT make the first partition active (BadAxe compatibility).
+[ "${partitiontable}" = "GUID_partition_scheme" ] && bootslice=1
+if [[ "${partitiontable}" = "FDisk_partition_scheme" || "${partitiontable}" = "GUID_partition_scheme" ]]; then
+ fdisk -e ${bootdisk} <<-MAKEACTIVE
+ print
+ flag ${bootslice}
+ write
+ y
+ quit
+ MAKEACTIVE
+fi
+
+checkdiskmicrocode check
+checkdisksignature
+checkpartitionbootcode check
+checkpartitionactive
+
+[ -d "${bootvolume}" ] || mkdir -p "${bootvolume}"
+echo "Executing command: mount_hfs ${bootdev} ${bootvolume}"
+mount_msdos -u 0 -g 0 "${bootdev}" "${bootvolume}"
+
+echo "Executing command: cp ${osxvolume}${filesystemloader} ${bootvolume}/boot"
+cp "${osxvolume}${filesystemloader}" "${bootvolume}/boot"
+
+if ! [ -d "${bootvolume}/Extra/Extensions" ]; then
+ echo "Executing command: mkdir -p ${bootvolume}/Extra/Extensions"
+ mkdir -p "${bootvolume}/Extra/Extensions"
+fi
+# unpack any existing Extensions.mkext already on the booter volume
+if [ -e "${bootvolume}/Extra/Extensions.mkext" ]; then
+ echo "Executing command: mkextunpack -d ${bootvolume}/Extra/Extensions ${bootvolume}/Extra/Extensions.mkext"
+ mkextunpack -d "${bootvolume}/Extra/Extensions" "${bootvolume}/Extra/Extensions.mkext"
+ echo "Executing command: rm -R -f ${bootvolume}/Extra/Extensions.mkext"
+ rm -R -f "${bootvolume}/Extra/Extensions.mkext"
+fi
+
+# copy existing /Extra
+if [ -d "${2}/Extra" ]; then
+ [ -d "${bootvolume}/Extra/Extensions" ] || mkdir -p "${bootvolume}/Extra/Extensions"
+ echo "Executing command: find ${2}/Extra -name '*.plist' -depth 1 -exec cp -f {} ${bootvolume}/Extra \;"
+ find "${2}/Extra" -name '*.plist' -depth 1 -exec cp -f {} "${bootvolume}/Extra/" \;
+ if [ -f "${2}/Extra/Extensions.mkext" ]; then
+ echo "Executing command: mkextunpack -d ${2}/Extra/Extensions ${2}/Extra/Extensions.mkext"
+ mkextunpack -d "${bootvolume}/Extra/Extensions" "${2}/Extra/Extensions.mkext"
+ fi
+ if [ -d "${2}/Extra/Extensions" ]; then
+ echo "Executing command: find ${2}/Extra/Extensions -name '*.kext' -depth 1 -exec cp -R {} ${bootvolume}/Extra/Extensions \;"
+ find "${2}/Extra/Extensions" -name '*.kext' -depth 1 -exec cp -R {} "${bootvolume}/Extra/Extensions" \;
+ fi
+fi
+
+# setup link for extras
+echo "Executing command: ln -s /Volumes/${bootervolumename} ${2}/.Chameleon"
+ln -s "/Volumes/${bootervolumename}" "${2}/.Chameleon"
+
+exit
Index: trunk/package/Scripts/Options/ForceHPET/postinstall
===================================================================
--- trunk/package/Scripts/Options/ForceHPET/postinstall (revision 0)
+++ trunk/package/Scripts/Options/ForceHPET/postinstall (revision 1)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="ForceHPET"
+string="y"
+
+main ()
+{
+
+ bootplist="${3}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp -f "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=y to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Index: trunk/package/Scripts/Options/EHCIacquire/postinstall
===================================================================
--- trunk/package/Scripts/Options/EHCIacquire/postinstall (revision 0)
+++ trunk/package/Scripts/Options/EHCIacquire/postinstall (revision 1)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="EHCIacquire"
+string="y"
+
+main ()
+{
+
+ bootplist="${3}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=${string} to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Index: trunk/package/Scripts/Options/GUI/postinstall
===================================================================
--- trunk/package/Scripts/Options/GUI/postinstall (revision 0)
+++ trunk/package/Scripts/Options/GUI/postinstall (revision 1)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="GUI"
+string="n"
+
+main ()
+{
+
+ bootplist="${3}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=${string} to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Index: trunk/package/Scripts/Options/EthernetBuiltIn/postinstall
===================================================================
--- trunk/package/Scripts/Options/EthernetBuiltIn/postinstall (revision 0)
+++ trunk/package/Scripts/Options/EthernetBuiltIn/postinstall (revision 1)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="EthernetBuiltIn"
+string="y"
+
+main ()
+{
+
+ bootplist="${3}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp -f "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=y to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Index: trunk/package/Scripts/Options/ForceWake/postinstall
===================================================================
--- trunk/package/Scripts/Options/ForceWake/postinstall (revision 0)
+++ trunk/package/Scripts/Options/ForceWake/postinstall (revision 1)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="ForceWake"
+string="y"
+
+main ()
+{
+
+ bootplist="${3}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp -f "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=y to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Index: trunk/package/Scripts/Options/GraphicsEnabler/postinstall
===================================================================
--- trunk/package/Scripts/Options/GraphicsEnabler/postinstall (revision 0)
+++ trunk/package/Scripts/Options/GraphicsEnabler/postinstall (revision 1)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="GraphicsEnabler"
+string="y"
+
+main ()
+{
+
+ bootplist="${3}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp -f "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=y to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Index: trunk/package/Scripts/Options/UHCIreset/postinstall
===================================================================
--- trunk/package/Scripts/Options/UHCIreset/postinstall (revision 0)
+++ trunk/package/Scripts/Options/UHCIreset/postinstall (revision 1)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="UHCIreset"
+string="y"
+
+main ()
+{
+
+ bootplist="${3}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=y to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Index: trunk/package/Resources/background.tiff
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/package/Resources/background.tiff
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: trunk/package/Resources/French.lproj/Description.html
===================================================================
--- trunk/package/Resources/French.lproj/Description.html (revision 0)
+++ trunk/package/Resources/French.lproj/Description.html (revision 1)
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+Chameleon est une conbinaison de différent composants de boot loader.
+Il est basé sur la "fake EFI" implémentation de David Elliott ajouté au projet Apple's boot-132.
+
+Chameleon à été amélioré avec les fonctions clé suivantes:
+
+Les nouvelles fonctionnalités de Chameleon 2.0
+
+- Interface graphique entierement customisable pour apporter un peu de couleur au Darwin Bootloader.
+- Booter un DVD Retail en chargeant directement une image RAMDISK sans l'aide de programmes tierce.
+- Hibernation: Appréciez l'affichage d'un apercu d'écran durant le démarrage après mise en veille.
+- SMBIOS override : pour modifier les valeur d'usines du SMBIOS.
+- DSDT override : Utilisation d'un DSDT modifié pouvant résoudre quelques problemes .
+
+- Device Property Injection via device-properties string dans boot.plist.
+- Hybrid boot0 / boot1h pour disque dur partionnés en MBR et GPT .
+- Détection du FSB automatique , mème pour les CPU AMD récents.
+- Support du Apple Software RAID .
+
+Pour des informations plus détaillées , visitez : http://chameleon.osx86.hu
+
+
Index: trunk/package/Resources/French.lproj/Localizable.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/package/Resources/French.lproj/Localizable.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: trunk/package/Resources/French.lproj/License.rtf
===================================================================
--- trunk/package/Resources/French.lproj/License.rtf (revision 0)
+++ trunk/package/Resources/French.lproj/License.rtf (revision 1)
@@ -0,0 +1,13 @@
+{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
+{\fonttbl\f0\fnil\fcharset0 LucidaGrande;}
+{\colortbl;\red255\green255\blue255;}
+\vieww9000\viewh8400\viewkind0
+\pard\ql\qnatural
+
+\f0\b\fs20 \cf0 FRAN\'c7AIS\
+\pard\qj
+\cf0 \
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
+
+\b0 \cf0 EA0401\
+Rev. 4/1/09}
\ No newline at end of file
Index: trunk/package/Resources/Spanish.lproj/Description.html
===================================================================
--- trunk/package/Resources/Spanish.lproj/Description.html (revision 0)
+++ trunk/package/Resources/Spanish.lproj/Description.html (revision 1)
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+Camaleón es la combinación de varios boot loader componentes.
+Esta basado en la implementación EFI falsa de David Elliott agregada al proyecto boot-132 de Apple.
+Camaleón esta extendido con las siguientes caracteristicas:
+
+Adicionales en Camaleón 2.0
+
+- GUI totalmente personalizado para brindarle algo de color al Dawin Bootloader.
+- Booting DVDs con simplemente cargar una imagen ramdisk sin la ayuda de programas adicionales.
+- Hibernación. Disfrute reanudar su MAC OS X con una imagen de muestra.
+- SMBIOS anulado para modificar la fabrica SMBIOS valores.
+- DSDT anulado para usar un DSDT modificado y arreglado capaz de resolver varios inconvenientes.
+
+- Injeccion Propiedades del Dispositivo por la cuerda Propiedades del Dispositivo.
+- Hibrido boot0 / boot1h para discos MBR y GPT divididos.
+- Codigo de detección FSB automatico para CPUs AMD recientes..
+- Ayuda RAID para software Apple.
+
+Para información mas detallada, visitar : http://chameleon.osx86.hu
+
+
Index: trunk/package/Resources/Spanish.lproj/Localizable.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/package/Resources/Spanish.lproj/Localizable.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: trunk/package/Resources/Spanish.lproj/Welcome.rtfd/TXT.rtf
===================================================================
--- trunk/package/Resources/Spanish.lproj/Welcome.rtfd/TXT.rtf (revision 0)
+++ trunk/package/Resources/Spanish.lproj/Welcome.rtfd/TXT.rtf (revision 1)
@@ -0,0 +1,32 @@
+{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
+{\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;\red65\green78\blue255;}
+\margl1440\margr1440\vieww13160\viewh11700\viewkind0
+\pard\ri0\qc
+
+\f0\fs38 \cf0 \
+
+\f1\b\fs50 Chamale\'f3n
+\f0 \
+
+\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%
+\fs50 \
+\
+\cf2 %CHAMELEONSTAGE%\cf0 \
+\
+\
+\
+\
+\pard\ri0\ql\qnatural
+
+\fs26 \cf0 Programadores: Crazor, Dense, fassl, fxtentacle, iNDi, Kabyl, kaitek, mackerintel, mercurysquad, munky, Turbo & zef\
+\
+\
+Gracias's a : bumby, cosmo1t, dfe, Galaxy, kalyway, sckevyn & XyZ
+\b0\fs30 \
+\pard\tx360\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
+\cf0 \
+\
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
+
+\fs26 \cf0 Copyright \'a9 2009 }
\ No newline at end of file
Index: trunk/package/Resources/Spanish.lproj/License.rtf
===================================================================
--- trunk/package/Resources/Spanish.lproj/License.rtf (revision 0)
+++ trunk/package/Resources/Spanish.lproj/License.rtf (revision 1)
@@ -0,0 +1,11 @@
+{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
+{\fonttbl\f0\fnil\fcharset0 LucidaGrande;}
+{\colortbl;\red255\green255\blue255;}
+\vieww22060\viewh18360\viewkind0
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
+
+\f0\b\fs20 \cf0 ESPA\'d1OL\
+
+\b0 \
+EA0401\
+Rev. 4/1/09}
\ No newline at end of file
Index: trunk/package/Resources/English.lproj/Description.html
===================================================================
--- trunk/package/Resources/English.lproj/Description.html (revision 0)
+++ trunk/package/Resources/English.lproj/Description.html (revision 1)
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+Chameleon is combination of various boot loader components.
It is based on David Elliott's fake EFI implementation added to Apple's boot-132 project.
Chameleon is extended with the following key features:
+
+New features in Chameleon 2.0
+
+ - Fully customizable GUI to bring some color to the Darwin Bootloader.
+ - Booting retail DVDs by directly loading a ramdisk image without help of additional programs.
+ - Hibernation. Enjoy resuming your Mac OS X with a preview image.
+ - SMBIOS override to modify the factory SMBIOS values.
+ - DSDT override to use a modified fixed DSDT which can solve several issues.
+
+ - Device Property Injection via device-properties string.
+ - hybrid boot0 / boot1h for MBR and GPT partitioned disks.
+ - automatic FSB detection code even for recent AMD CPUs.
+ - Apple Software RAID support.
+
+For detailed information, visit : http://chameleon.osx86.hu
+
+
Index: trunk/package/Resources/English.lproj/Localizable.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/package/Resources/English.lproj/Localizable.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: trunk/package/Resources/English.lproj/Welcome.rtfd/TXT.rtf
===================================================================
--- trunk/package/Resources/English.lproj/Welcome.rtfd/TXT.rtf (revision 0)
+++ trunk/package/Resources/English.lproj/Welcome.rtfd/TXT.rtf (revision 1)
@@ -0,0 +1,28 @@
+{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf460
+{\fonttbl\f0\fnil\fcharset0 LucidaGrande;}
+{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red65\green78\blue255;}
+\margl1440\margr1440\vieww11660\viewh12980\viewkind0
+\pard\ri0\qc
+
+\f0\b\fs72 \cf2 Chameleon
+\fs50 \cf0 \
+
+\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%
+\fs50 \
+\
+\cf3 %CHAMELEONSTAGE%\cf0 \
+\pard\ri0\ql\qnatural
+
+\fs26 \cf0 \
+\
+\
+Developers: Crazor, Dense, fassl, fxtentacle, iNDi, Kabyl, kaitek, mackerintel, mercurysquad, munky, Turbo & zef\
+\
+\
+Thanks to : bumby, cosmo1t, dfe, Galaxy, kalyway, netkas, sckevyn & XyZ\
+\pard\tx360\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
+
+\b0\fs30 \cf0 \
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
+
+\fs26 \cf0 Copyright \'a9 2009 }
\ No newline at end of file
Index: trunk/package/Resources/English.lproj/License.rtf
===================================================================
--- trunk/package/Resources/English.lproj/License.rtf (revision 0)
+++ trunk/package/Resources/English.lproj/License.rtf (revision 1)
@@ -0,0 +1,11 @@
+{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
+{\fonttbl\f0\fnil\fcharset0 LucidaGrande;}
+{\colortbl;\red255\green255\blue255;}
+\vieww22060\viewh18360\viewkind0
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
+
+\f0\b\fs20 \cf0 ENGLISH\
+
+\b0 \
+EA0401\
+Rev. 4/1/09}
\ No newline at end of file
Index: trunk/package/Resources/German.lproj/Description.html
===================================================================
--- trunk/package/Resources/German.lproj/Description.html (revision 0)
+++ trunk/package/Resources/German.lproj/Description.html (revision 1)
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+Chameleon ist eine Kombination verschiedener Bootloader Komponenten.
Als Basis diente David Elliott's fake EFI Implementierung die zu Apple's boot-132 Projekt hinzugefügt wurde.
Chameleon wurde mit folgenden Hauptmerkmalen erweitert:
+
+Neue Funktionen in Chameleon 2.0
+
+ - Vollständig anpassbare GUI um etwas Farbe in den Darwin Bootloader zu bringen.
+ - Starten von retail DVDs durch direktes Laden eines RAM-Disk Images, ohne zusätzliche Programme zu benötigen .
+ - Ruhezustand. Genießt Mac OS X mit einem Vorschau-Bild aufzuwecken.
+ - SMBIOS Override um vorgegebene SMBIOS Werte anzupassen.
+ - DSDT Override um eine angepasste DSDT, die verschiedene Probleme beheben kann, zu laden.
+
+ - Device Property Injection über device-properties string.
+ - hybrider boot0 / boot1h für MBR und GPT partitionierte Festplatten.
+ - Code zur automatischen FSB Erkennung, selbst für AMD CPUs.
+ - Apple Software RAID Unterstützung.
+
+Für weitere Informationen besuche: http://chameleon.osx86.hu
+
+
\ No newline at end of file
Index: trunk/package/Resources/German.lproj/Localizable.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/package/Resources/German.lproj/Localizable.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: trunk/package/Resources/German.lproj/License.rtf
===================================================================
--- trunk/package/Resources/German.lproj/License.rtf (revision 0)
+++ trunk/package/Resources/German.lproj/License.rtf (revision 1)
@@ -0,0 +1,13 @@
+{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
+{\fonttbl\f0\fnil\fcharset0 LucidaGrande;}
+{\colortbl;\red255\green255\blue255;}
+\vieww9000\viewh8400\viewkind0
+\deftab720
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\ql\qnatural
+
+\f0\b\fs20 \cf0 DEUTSCH\
+\
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
+
+\b0 \cf0 EA0401\
+Rev. 4/1/09}
\ No newline at end of file
Index: trunk/package/Kexts/Disabler.kext/Contents/MacOS/Disabler
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/package/Kexts/Disabler.kext/Contents/MacOS/Disabler
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: trunk/package/Kexts/Disabler.kext/Contents/Info.plist
===================================================================
--- trunk/package/Kexts/Disabler.kext/Contents/Info.plist (revision 0)
+++ trunk/package/Kexts/Disabler.kext/Contents/Info.plist (revision 1)
@@ -0,0 +1,47 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ Disabler
+ CFBundleGetInfoString
+ Kernel Extension Disabler 1.0.1, Copyright © 2008 by Kabyl
+ CFBundleIdentifier
+ net.osrom.kext.Disabler
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ Kernel Extension Disabler
+ CFBundlePackageType
+ KEXT
+ CFBundleVersion
+ 1.0.1
+ IOKitPersonalities
+
+ IntelCPUPMDisabler
+
+ CFBundleIdentifier
+ net.osrom.kext.Disabler
+ IOClass
+ Disabler
+ IOMatchCategory
+ AppleIntelCPUPowerManagement
+ IOProbeScore
+ 1000
+ IOProviderClass
+ IOResources
+ IOResourceMatch
+ IOKit
+
+
+ OSBundleLibraries
+
+ com.apple.kernel.iokit
+ 1.1
+
+ OSBundleRequired
+ Root
+
+
Index: trunk/package/Kexts/JMicronATAInjector.kext/Contents/Info.plist
===================================================================
--- trunk/package/Kexts/JMicronATAInjector.kext/Contents/Info.plist (revision 0)
+++ trunk/package/Kexts/JMicronATAInjector.kext/Contents/Info.plist (revision 1)
@@ -0,0 +1,53 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleIdentifier
+ org.chameleon.plist.JMicronATAInjector
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ JMicron ATA Injector
+ CFBundlePackageType
+ KEXT
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1.0.0
+ IOKitPersonalities
+
+ JMicronATA Driver
+
+ CFBundleIdentifier
+ com.jmicron.JMicronATA
+ Hardware Vendor
+ JMicron
+ IOClass
+ JMicronATA
+ IOProviderClass
+ JMicronATAChannel
+
+ JMicronATA PCI
+
+ CFBundleIdentifier
+ com.jmicron.JMicronATA
+ Hardware Vendor
+ JMicron
+ IOClass
+ JMicronATAPCIRoot
+ IOPCIClassMatch
+ 0x01010000&0xffff0000
+ IOPCIPrimaryMatch
+ 0x2368197b 0x2360197b&0xfff0ffff
+ IOProbeScore
+ 12000
+ IOProviderClass
+ IOPCIDevice
+
+
+ OSBundleRequired
+ Local-Root
+
+
Index: trunk/package/Kexts/AHCIPortInjector.kext/Contents/Info.plist
===================================================================
--- trunk/package/Kexts/AHCIPortInjector.kext/Contents/Info.plist (revision 0)
+++ trunk/package/Kexts/AHCIPortInjector.kext/Contents/Info.plist (revision 1)
@@ -0,0 +1,382 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleIdentifier
+ org.chameleon.plist.AHCIPortInjector
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ AHCI Chipsets Injector
+ CFBundlePackageType
+ KEXT
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1.0.0
+ IOKitPersonalities
+
+ GenericAHCI
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ AHCI Standard Controller
+ IOClass
+ AppleAHCI
+ IOPCIClassMatch
+ 0x01060100&0xffffff00
+ IOProbeScore
+ 800
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Unknown
+
+ JMicronAHCI
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ JMB36x AHCI
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x2360197b&0xfff0ffff
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ JMicron
+
+ ICH6 ESB2 AHCI
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ESB2 AHCI
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x26818086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH7MAHCI
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH7-M AHCI
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x27c58086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH7MRAID
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH7-M RAID
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x27c68086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH7RAHCI
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH7-R AHCI
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x27c18086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH7RRAID
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH7-R RAID
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x27c38086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH8AHCI
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH8 AHCI
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x28248086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH8MAHCI
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH8-M AHCI
+ IOClass
+ AppleICH8AHCI
+ IOPCIPrimaryMatch
+ 0x28298086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH8MRAID
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH8-M RAID
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x282a8086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH8RAHCI
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH8-R AHCI
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x28218086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH8RRAID
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH8-R RAID
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x28228086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH9AHCI
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH9 AHCI
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x29238086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH9MAHCI
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH9-M AHCI
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x29298086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH9MRAID
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH9-M RAID
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x292c8086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH9RAHCI
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH9-R AHCI
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x29228086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH9RRAID
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH9-R RAID
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x29258086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH10AHCI
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH10 AHCI
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x3A028086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH10RAID
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH10 RAID
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x3A058086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH10RAHCI
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH10-R AHCI
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x3A228086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+ ICH10RRAID
+
+ CFBundleIdentifier
+ com.apple.driver.AppleAHCIPort
+ Chipset Name
+ ICH10-R RAID
+ IOClass
+ AppleAHCI
+ IOPCIPrimaryMatch
+ 0x3A258086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Vendor Name
+ Intel
+
+
+ OSBundleRequired
+ Local-Root
+
+
Index: trunk/package/Kexts/ATAPortInjector.kext/Contents/Info.plist
===================================================================
--- trunk/package/Kexts/ATAPortInjector.kext/Contents/Info.plist (revision 0)
+++ trunk/package/Kexts/ATAPortInjector.kext/Contents/Info.plist (revision 1)
@@ -0,0 +1,596 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleIdentifier
+ org.chameleon.plist.ATAPortInjector
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ATA Chipsets Injector
+ CFBundlePackageType
+ KEXT
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1.0.0
+ IOKitPersonalities
+
+ ESB2 ATA/100
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ESB2 ATA/100
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x269e8086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x3f061d
+
+ ESB2 Serial ATA
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ESB2 SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x26808086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH ATA Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x24118086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x1f061d
+
+ ICH0 ATA Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH0
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x24218086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x07061d
+
+ ICH2 ATA/100 Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH2 ATA/100
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x244A8086 0x244B8086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH2 ATA/66 Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH2 ATA/66
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x24418086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x1f061d
+
+ ICH3 ATA/100 Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH3 ATA/100
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x248A8086 0x248B8086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH3 ATA/66 Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH3 ATA/66
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIClassMatch
+ 0x01010000&0xffff0000
+ IOPCIPrimaryMatch
+ 0x24818086 0x24008086&0xff00ffff
+ IOProbeScore
+ 1800
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x1f061d
+
+ ICH4 ATA/100 Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH4 ATA/100
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x24CB8086 0x24CA8086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH5 ATA/100 Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH5 ATA/100
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x24DB8086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH5 Serial ATA Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH5 SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x24D18086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH6 ATA/100 Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH6 ATA/100
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x266f8086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH6 Serial ATA Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH6 SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIClassMatch
+ 0x01010000&0xffff0000
+ IOPCIPrimaryMatch
+ 0x26528086 0x26518086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH6-M Serial ATA Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH6-M SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIClassMatch
+ 0x01010000&0xffff0000
+ IOPCIPrimaryMatch
+ 0x26538086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH7 ATA/100
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH7 ATA/100
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x27df8086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH7 Serial ATA
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH7 SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x27c08086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH7-M Serial ATA
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH7-M SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x27c48086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH8 2 Port Serial ATA
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH8 2 Port SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x28258086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ PCS Port Map
+ kgGTAZICkwKSBJMEkgiTCA==
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH8 ATA/100
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH8 ATA/100
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x28508086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH8 Serial ATA
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH8 SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x28208086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ PCS Port Map
+ kgGTAZICkwKSBJMEkgiTCA==
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH8-M Serial ATA
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH8-M SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x28288086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ PCS Port Map
+ kgGTAZICkwKSBJMEkgiTCA==
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH9 2 Port Serial ATA
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH9 2PTS SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x29218086 0x29268086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ PCS Port Map
+ kgGTAZICkwKSBJMEkgiTCA==
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH9 Serial ATA
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH9 SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x29208086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ PCS Port Map
+ kgGTAZICkwKSBJMEkgiTCA==
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH9-M Serial ATA
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH9-M SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x29288086 0x292d8086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ PCS Port Map
+ kgGTAZICkwKSBJMEkgiTCA==
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH10 2 Port Serial ATA
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH10 2PTS SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x3a068086 0x3a268086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ PCS Port Map
+ kgGTAZICkwKSBJMEkgiTCA==
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ ICH10 Serial ATA
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ ICH10 SATA
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x3a008086 0x3a208086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ PCS Port Map
+ kgGTAZICkwKSBJMEkgiTCA==
+ Serial ATA
+
+ Supported Transfer Modes
+ 0x3f061d
+
+ PIIX ATA Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ PIIX
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x12308086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Shared Channel Timings
+
+ Supported Transfer Modes
+ 0x00061d
+
+ PIIX3 ATA Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ PIIX3
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x70108086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x00061d
+
+ PIIX4 ATA Controller
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ Controller Name
+ PIIX4
+ IOClass
+ AppleIntelPIIXATARoot
+ IOPCIPrimaryMatch
+ 0x71118086
+ IOProbeScore
+ 2000
+ IOProviderClass
+ IOPCIDevice
+ Supported Transfer Modes
+ 0x07061d
+
+ Parallel ATA Channel Driver
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ IOClass
+ AppleIntelPIIXPATA
+ IOProbeScore
+ 800
+ IOProviderClass
+ AppleIntelPIIXATAChannel
+ Serial ATA
+
+
+ Serial ATA Channel Driver
+
+ CFBundleIdentifier
+ com.apple.driver.AppleIntelPIIXATA
+ IOClass
+ AppleIntelICHxSATA
+ IOProbeScore
+ 1000
+ IOProviderClass
+ AppleIntelPIIXATAChannel
+ Serial ATA
+
+
+
+ OSBundleRequired
+ Local-Root
+
+
Index: trunk/package/Kexts/IOAHCIBlockStorageInjector.kext/Contents/Info.plist
===================================================================
--- trunk/package/Kexts/IOAHCIBlockStorageInjector.kext/Contents/Info.plist (revision 0)
+++ trunk/package/Kexts/IOAHCIBlockStorageInjector.kext/Contents/Info.plist (revision 1)
@@ -0,0 +1,47 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleIdentifier
+ org.chameleon.plist.IOAHCIBlockStorageInjector
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ IOAHCIBlockStorage Fix
+ CFBundlePackageType
+ KEXT
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1.1.1
+ IOKitPersonalities
+
+ AppleAHCIDiskDriver
+
+ CFBundleIdentifier
+ com.apple.iokit.IOAHCIBlockStorage
+ IOClass
+ AppleAHCIDiskDriver
+ IOProviderClass
+ IOAHCIDevice
+ IOProbeScore
+ 1000
+ Physical Interconnect
+ SATA
+ Physical Interconnect Location
+ Internal
+ Protocol Characteristics
+
+ Physical Interconnect
+ SATA
+ Physical Interconnect Location
+ Internal
+
+
+
+ OSBundleRequired
+ Local-Root
+
+
Index: trunk/Makefile
===================================================================
--- trunk/Makefile (revision 0)
+++ trunk/Makefile (revision 1)
@@ -0,0 +1,129 @@
+export USE_APPLE_PB_SUPPORT = all
+
+# Makefile for kernel booter
+
+# CFLAGS = -O $(MORECPP) -arch i386 -g
+DEFINES=
+CONFIG = hd
+LIBDIR = libsa
+INC = -I. -I$(LIBDIR)
+ifneq "" "$(wildcard /bin/mkdirs)"
+ MKDIRS = /bin/mkdirs
+else
+ MKDIRS = /bin/mkdir -p
+endif
+AS = as
+LD = ld
+PAX = /bin/pax
+
+OBJROOT = `pwd`/obj
+SYMROOT = `pwd`/sym
+DSTROOT = `pwd`/dst
+SRCROOT = /tmp
+DOCROOT = `pwd`/doc
+IMGROOT = `pwd`/sym/cache
+IMGSKELROOT = `pwd`/imgskel
+CDBOOT = ${IMGROOT}/usr/standalone/i386/cdboot
+
+THEME = default
+
+VERSION = `cat version`
+REVISION = `cat revision`
+PRODUCT = Chameleon-$(VERSION)-r$(REVISION)
+CDLABEL = ${PRODUCT}
+ISOIMAGE = ${SYMROOT}/${CDLABEL}.iso
+
+EXCLUDE = --exclude=.svn --exclude=.DS_Store --exclude=sym --exclude=obj \
+ --exclude=package --exclude=archive --exclude=User_Guide_src --exclude=*.sh
+
+ARCHLESS_RC_CFLAGS=`echo $(RC_CFLAGS) | sed 's/-arch [a-z0-9]*//g'`
+
+VPATH = $(OBJROOT):$(SYMROOT)
+
+GENERIC_SUBDIRS =
+
+#
+# Currently builds for i386
+#
+
+all embedtheme tags debug install installhdrs: $(SYMROOT) $(OBJROOT)
+ @if [ -e ".svn" ]; then svnversion -n | tr -d [:alpha:] > revision; fi
+ @if [ -z "$(RC_ARCHS)" ]; then \
+ RC_ARCHS="i386"; \
+ fi; \
+ SUBDIRS="$(GENERIC_SUBDIRS) $$RC_ARCHS"; \
+ for i in $$SUBDIRS; \
+ do \
+ if [ -d $$i ]; then \
+ echo ================= make $@ for $$i =================; \
+ ( OBJROOT=$(OBJROOT)/$${i}; \
+ SYMROOT=$(SYMROOT)/$${i}; \
+ DSTROOT=$(DSTROOT); \
+ XCFLAGS=$(ARCHLESS_RC_CFLAGS); \
+ GENSUBDIRS="$(GENERIC_SUBDIRS)"; \
+ for x in $$GENSUBDIRS; \
+ do \
+ if [ "$$x" == "$$i" ]; then \
+ XCFLAGS="$(RC_CFLAGS)"; \
+ break; \
+ fi \
+ done; \
+ echo "$$OBJROOT $$SYMROOT $$DSTROOT"; \
+ cd $$i; ${MAKE} \
+ "OBJROOT=$$OBJROOT" \
+ "SYMROOT=$$SYMROOT" \
+ "DSTROOT=$$DSTROOT" \
+ "SRCROOT=$$SRCROOT" \
+ "RC_ARCHS=$$RC_ARCHS" \
+ "TARGET=$$i" \
+ "RC_KANJI=$(RC_KANJI)" \
+ "JAPANESE=$(JAPANESE)" \
+ "RC_CFLAGS=$$XCFLAGS" $@ \
+ ) || exit $$?; \
+ else \
+ echo "========= nothing to build for $$i ========="; \
+ fi; \
+ done
+
+image:
+ @if [ -e "$(SYMROOT)" ]; then \
+ rm -r -f ${IMGROOT}; \
+ mkdir -p ${IMGROOT}/usr/standalone/i386; \
+ if [ -e "$(IMGSKELROOT)" ]; then \
+ cp -R -f "${IMGSKELROOT}"/* "${IMGROOT}"; \
+ fi; \
+ cp -f ${SYMROOT}/i386/cdboot ${CDBOOT}; \
+ cp -f ${SYMROOT}/i386/boot ${IMGROOT}/usr/standalone/i386; \
+ cp -f ${SYMROOT}/i386/boot0 ${IMGROOT}/usr/standalone/i386; \
+ cp -f ${SYMROOT}/i386/boot1h ${IMGROOT}/usr/standalone/i386; \
+ cp -f ${SYMROOT}/i386/boot1f32 ${IMGROOT}/usr/standalone/i386;\
+ $(shell hdiutil makehybrid -iso -joliet -hfs -hfs-volume-name \
+ ${CDLABEL} -eltorito-boot ${CDBOOT} -no-emul-boot -ov -o \
+ "${ISOIMAGE}" ${IMGROOT} -quiet) \
+ fi;
+
+pkg installer: embedtheme
+ @if [ -e "$(SYMROOT)" ]; then \
+ sudo `pwd`/package/buildpkg `pwd`/sym/package; \
+ fi;
+
+release: $(SYMROOT)
+ @if [ -e ".svn" ]; then svnversion -n | tr -d [:alpha:] > revision; fi
+ @if [ -e "$(SYMROOT)" ]; then \
+ sudo `pwd`/package/buildpkg `pwd`/sym/package; \
+ fi;
+ @tar -czf $(SYMROOT)/$(PRODUCT)-src.tar.gz ${EXCLUDE} .
+ @tar -cjf $(SYMROOT)/$(PRODUCT)-src.tar.bz2 ${EXCLUDE} .
+
+clean:
+ rm -rf sym obj dst
+
+#distclean: clean
+# @rm -f $(SYMROOT)/$(PRODUCT)-src.*
+# @rm -f $(SYMROOT)/$(PRODUCT).pkg
+
+installsrc:
+ gnutar cf - . | (cd ${SRCROOT}; gnutar xpf -)
+
+$(SYMROOT) $(OBJROOT) $(DSTROOT):
+ @$(MKDIRS) $@