Index: trunk/artwork/themes/default/device_befs.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: trunk/artwork/themes/default/device_befs.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: trunk/artwork/themes/default/device_freebsd_o.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: trunk/artwork/themes/default/device_freebsd_o.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: trunk/artwork/themes/default/device_openbsd.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: trunk/artwork/themes/default/device_openbsd.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: trunk/artwork/themes/default/device_freebsd.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: trunk/artwork/themes/default/device_freebsd.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: trunk/artwork/themes/default/device_befs_o.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: trunk/artwork/themes/default/device_befs_o.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: trunk/artwork/themes/default/device_openbsd_o.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: trunk/artwork/themes/default/device_openbsd_o.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: trunk/i386/libsaio/acpi_patcher.c =================================================================== --- trunk/i386/libsaio/acpi_patcher.c (revision 1345) +++ trunk/i386/libsaio/acpi_patcher.c (revision 1346) @@ -86,7 +86,7 @@ } return NULL; } -/** The folowing ACPI Table search algo. should be reused anywhere needed:*/ +/* The folowing ACPI Table search algo. should be reused anywhere needed:*/ int search_and_get_acpi_fd(const char * filename, const char ** outDirspec) { int fd = 0; @@ -185,7 +185,7 @@ acpi_cpu_name[acpi_cpu_count] = malloc(4); memcpy(acpi_cpu_name[acpi_cpu_count], dsdt+offset, 4); i = offset + 5; - + if (acpi_cpu_count == 0) acpi_cpu_p_blk = dsdt[i] | (dsdt[i+1] << 8); @@ -214,7 +214,7 @@ 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x79, 0x00 }; - + char resource_template_register_systemio[] = { 0x11, 0x14, 0x0A, 0x11, 0x82, 0x0C, 0x00, 0x01, @@ -247,12 +247,12 @@ bool c2_enabled = false; bool c3_enabled = false; bool c4_enabled = false; - bool cst_using_sustemio = false; + bool cst_using_sustemio = false; getBoolForKey(kEnableC2State, &c2_enabled, &bootInfo->chameleonConfig); getBoolForKey(kEnableC3State, &c3_enabled, &bootInfo->chameleonConfig); getBoolForKey(kEnableC4State, &c4_enabled, &bootInfo->chameleonConfig); - getBoolForKey(kCSTUsingSystemIO, &cst_using_sustemio, &bootInfo->chameleonConfig); + getBoolForKey(kCSTUsingSystemIO, &cst_using_sustemio, &bootInfo->chameleonConfig); c2_enabled = c2_enabled | (fadt->C2_Latency < 100); c3_enabled = c3_enabled | (fadt->C3_Latency < 1000); @@ -565,8 +565,8 @@ case CPU_MODEL_NEHALEM_EX: // Intel Xeon X75xx, Xeon X65xx, Xeon E75xx, Xeon E65xx case CPU_MODEL_WESTMERE: // Intel Core i7, Xeon X56xx, Xeon E56xx, Xeon W36xx LGA1366 (32nm) 6 Core case CPU_MODEL_WESTMERE_EX: // Intel Xeon E7 - case CPU_MODEL_SANDY: // Intel Core i3, i5, i7 LGA1155 (32nm) - case CPU_MODEL_SANDY_XEON: // Intel Xeon E3 + case CPU_MODEL_SANDY: // Intel Core i3, i5, i7 LGA1155 (32nm) + case CPU_MODEL_SANDY_XEON: // Intel Xeon E3 { maximum.Control = rdmsr64(MSR_IA32_PERF_STATUS) & 0xff; // Seems it always contains maximum multiplier value (with turbo, that's we need)... minimum.Control = (rdmsr64(MSR_PLATFORM_INFO) >> 40) & 0xff; Index: trunk/i386/libsaio/aml_generator.c =================================================================== --- trunk/i386/libsaio/aml_generator.c (revision 1345) +++ trunk/i386/libsaio/aml_generator.c (revision 1346) @@ -21,12 +21,12 @@ case AML_CHUNK_DWORD: case AML_CHUNK_QWORD: case AML_CHUNK_ALIAS: - verbose("aml_add_to_parent: node doesn't support child nodes!\n"); + verbose("aml_add_to_parent: Node doesn't support child nodes!\n"); return false; case AML_CHUNK_NAME: if (parent->First) { - verbose("aml_add_to_parent: name node supports only one child node!\n"); + verbose("aml_add_to_parent: Name node supports only one child node!\n"); return false; } break; @@ -495,4 +495,4 @@ } return offset; -} \ No newline at end of file +} Index: trunk/i386/libsaio/fdisk.h =================================================================== --- trunk/i386/libsaio/fdisk.h (revision 1345) +++ trunk/i386/libsaio/fdisk.h (revision 1346) @@ -35,25 +35,25 @@ #ifndef __LIBSAIO_FDISK_H #define __LIBSAIO_FDISK_H -#define DISK_BLK0 0 /* blkno of boot block */ -#define DISK_BLK0SZ 512 /* size of boot block */ -#define DISK_BOOTSZ 446 /* size of boot code in boot block */ -#define DISK_SIGNATURE 0xAA55 /* signature of the boot record */ -#define FDISK_NPART 4 /* number of entries in fdisk table */ -#define FDISK_ACTIVE 0x80 /* indicator of active partition */ -#define FDISK_NEXTNAME 0xA7 /* indicator of NeXT partition */ -#define FDISK_DOS12 0x01 /* 12-bit fat < 10MB dos partition */ -#define FDISK_DOS16S 0x04 /* 16-bit fat < 32MB dos partition */ -#define FDISK_DOSEXT 0x05 /* extended dos partition */ -#define FDISK_DOS16B 0x06 /* 16-bit fat >= 32MB dos partition */ -#define FDISK_NTFS 0x07 /* NTFS partition */ -#define FDISK_SMALLFAT32 0x0b /* FAT32 partition */ -#define FDISK_FAT32 0x0c /* FAT32 partition */ -#define FDISK_DOS16SLBA 0x0e -#define FDISK_LINUX 0x83 -#define FDISK_UFS 0xa8 /* Apple UFS partition */ -#define FDISK_HFS 0xaf /* Apple HFS partition */ -#define FDISK_BOOTER 0xab /* Apple booter partition */ +#define DISK_BLK0 0 /* blkno of boot block */ +#define DISK_BLK0SZ 512 /* size of boot block */ +#define DISK_BOOTSZ 446 /* size of boot code in boot block */ +#define DISK_SIGNATURE 0xAA55 /* signature of the boot record */ +#define FDISK_NPART 4 /* number of entries in fdisk table */ +#define FDISK_ACTIVE 0x80 /* indicator of active partition */ +#define FDISK_NEXTNAME 0xA7 /* indicator of NeXT partition */ +#define FDISK_DOS12 0x01 /* 12-bit fat < 10MB dos partition */ +#define FDISK_DOS16S 0x04 /* 16-bit fat < 32MB dos partition */ +#define FDISK_DOSEXT 0x05 /* extended dos partition */ +#define FDISK_DOS16B 0x06 /* 16-bit fat >= 32MB dos partition */ +#define FDISK_NTFS 0x07 /* NTFS partition */ +#define FDISK_SMALLFAT32 0x0b /* FAT32 partition */ +#define FDISK_FAT32 0x0c /* FAT32 partition */ +#define FDISK_DOS16SLBA 0x0e +#define FDISK_LINUX 0x83 +#define FDISK_UFS 0xa8 /* Apple UFS partition */ +#define FDISK_HFS 0xaf /* Apple HFS partition */ +#define FDISK_BOOTER 0xab /* Apple booter partition */ /* * Format of fdisk partion entry (if present). Index: trunk/i386/libsaio/nvidia.c =================================================================== --- trunk/i386/libsaio/nvidia.c (revision 1345) +++ trunk/i386/libsaio/nvidia.c (revision 1346) @@ -67,7 +67,7 @@ #define NVIDIA_ROM_SIZE 0x10000 #define PATCH_ROM_SUCCESS 1 -#define PATCH_ROM_SUCCESS_HAS_LVDS 2 +#define PATCH_ROM_SUCCESS_HAS_LVDS 2 #define PATCH_ROM_FAILED 0 #define MAX_NUM_DCB_ENTRIES 16 #define TYPE_GROUPED 0xff @@ -76,12 +76,12 @@ const char *nvidia_compatible_0[] = { "@0,compatible", "NVDA,NVMac" }; const char *nvidia_compatible_1[] = { "@1,compatible", "NVDA,NVMac" }; -const char *nvidia_device_type_0[] = { "@0,device_type", "display" }; -const char *nvidia_device_type_1[] = { "@1,device_type", "display" }; +const char *nvidia_device_type_0[] = { "@0,device_type", "display" }; +const char *nvidia_device_type_1[] = { "@1,device_type", "display" }; const char *nvidia_device_type[] = { "device_type", "NVDA,Parent" }; -const char *nvidia_name_0[] = { "@0,name", "NVDA,Display-A" }; -const char *nvidia_name_1[] = { "@1,name", "NVDA,Display-B" }; -const char *nvidia_slot_name[] = { "AAPL,slot-name", "Slot-1" }; +const char *nvidia_name_0[] = { "@0,name", "NVDA,Display-A" }; +const char *nvidia_name_1[] = { "@1,name", "NVDA,Display-B" }; +const char *nvidia_slot_name[] = { "AAPL,slot-name", "Slot-1" }; static uint8_t default_NVCAP[]= { 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, Index: trunk/i386/libsaio/ati.c =================================================================== --- trunk/i386/libsaio/ati.c (revision 1345) +++ trunk/i386/libsaio/ati.c (revision 1346) @@ -206,7 +206,7 @@ } radeon_card_info_t; static radeon_card_info_t radeon_cards[] = { - + // Earlier cards are not supported // // Layout is device_id, subsys_id (subsystem id plus vendor id), chip_family_name, display name, frame buffer @@ -214,247 +214,247 @@ // { 0x9400, 0x25521002, CHIP_FAMILY_R600, "ATI Radeon HD 2900 XT", kNull }, { 0x9400, 0x30001002, CHIP_FAMILY_R600, "ATI Radeon HD 2900 PRO", kNull }, - + { 0x9440, 0x24401682, CHIP_FAMILY_RV770, "ATI Radeon HD 4870", kMotmot }, { 0x9440, 0x24411682, CHIP_FAMILY_RV770, "ATI Radeon HD 4870", kMotmot }, { 0x9440, 0x24441682, CHIP_FAMILY_RV770, "ATI Radeon HD 4870", kMotmot }, { 0x9440, 0x24451682, CHIP_FAMILY_RV770, "ATI Radeon HD 4870", kMotmot }, - + { 0x9441, 0x24401682, CHIP_FAMILY_RV770, "ATI Radeon HD 4870 X2", kMotmot }, - + { 0x9442, 0x080110B0, CHIP_FAMILY_RV770, "ATI Radeon HD 4850", kMotmot }, - + { 0x9442, 0x24701682, CHIP_FAMILY_RV770, "ATI Radeon HD 4850", kMotmot }, { 0x9442, 0x24711682, CHIP_FAMILY_RV770, "ATI Radeon HD 4850", kMotmot }, - + { 0x9442, 0xE104174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4850", kMotmot }, - - { 0x944A, 0x30001043, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - - { 0x944A, 0x30001458, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - - { 0x944A, 0x30001462, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - - { 0x944A, 0x30001545, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - - { 0x944A, 0x30001682, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - - { 0x944A, 0x3000174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - - { 0x944A, 0x30001787, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - - { 0x944A, 0x300017AF, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - + + { 0x944A, 0x30001043, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + + { 0x944A, 0x30001458, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + + { 0x944A, 0x30001462, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + + { 0x944A, 0x30001545, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + + { 0x944A, 0x30001682, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + + { 0x944A, 0x3000174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + + { 0x944A, 0x30001787, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + + { 0x944A, 0x300017AF, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + { 0x944C, 0x24801682, CHIP_FAMILY_RV770, "ATI Radeon HD 4830", kMotmot }, { 0x944C, 0x24811682, CHIP_FAMILY_RV770, "ATI Radeon HD 4830", kMotmot }, - - { 0x944E, 0x3260174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4810 Series", kMotmot }, - { 0x944E, 0x3261174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4810 series", kMotmot }, - - { 0x944E, 0x30001787, CHIP_FAMILY_RV770, "ATI Radeon HD 4730 Series", kMotmot }, - { 0x944E, 0x30101787, CHIP_FAMILY_RV770, "ATI Radeon HD 4810 Series", kMotmot }, + + { 0x944E, 0x3260174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4810 Series", kMotmot }, + { 0x944E, 0x3261174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4810 series", kMotmot }, + + { 0x944E, 0x30001787, CHIP_FAMILY_RV770, "ATI Radeon HD 4730 Series", kMotmot }, + { 0x944E, 0x30101787, CHIP_FAMILY_RV770, "ATI Radeon HD 4810 Series", kMotmot }, { 0x944E, 0x31001787, CHIP_FAMILY_RV770, "ATI Radeon HD 4820", kMotmot }, - + { 0x9480, 0x3628103C, CHIP_FAMILY_RV730, "ATI Radeon HD 4650M", kGliff }, - + { 0x9480, 0x9035104D, CHIP_FAMILY_RV730, "ATI Radeon HD 4650M", kGliff }, - + { 0x9490, 0x4710174B, CHIP_FAMILY_RV730, "ATI Radeon HD 4710", kNull }, - + { 0x9490, 0x20031787, CHIP_FAMILY_RV730, "ATI Radeon HD 4670", kFlicker }, { 0x9490, 0x30501787, CHIP_FAMILY_RV730, "ATI Radeon HD 4710", kNull }, - + { 0x9490, 0x300017AF, CHIP_FAMILY_RV730, "ATI Radeon HD 4710", kNull }, - - { 0x9498, 0x21CF1458, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kNull }, - + + { 0x9498, 0x21CF1458, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kNull }, + { 0x9498, 0x24511682, CHIP_FAMILY_RV730, "ATI Radeon HD 4650", kNull }, { 0x9498, 0x24521682, CHIP_FAMILY_RV730, "ATI Radeon HD 4650", kNull }, { 0x9498, 0x24541682, CHIP_FAMILY_RV730, "ATI Radeon HD 4650", kNull }, { 0x9498, 0x29331682, CHIP_FAMILY_RV730, "ATI Radeon HD 4670", kNull }, { 0x9498, 0x29341682, CHIP_FAMILY_RV730, "ATI Radeon HD 4670", kNull }, - + { 0x9498, 0x30501787, CHIP_FAMILY_RV730, "ATI Radeon HD 4700", kNull }, { 0x9498, 0x31001787, CHIP_FAMILY_RV730, "ATI Radeon HD 4720", kNull }, - + { 0x94B3, 0x0D001002, CHIP_FAMILY_RV740, "ATI Radeon HD 4770", kFlicker }, - + { 0x94B3, 0x29001682, CHIP_FAMILY_RV740, "ATI Radeon HD 4770", kFlicker }, - + { 0x94B3, 0x1170174B, CHIP_FAMILY_RV740, "ATI Radeon HD 4770", kFlicker }, - + { 0x94C1, 0x0D021002, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 XT", kNull }, { 0x94C1, 0x10021002, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Pro", kNull }, - + { 0x94C1, 0x0D021028, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 XT", kNull }, - + { 0x94C1, 0x21741458, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 XT", kNull }, - + { 0x94C1, 0x10331462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 XT", kNull }, { 0x94C1, 0x10401462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 XT", kNull }, { 0x94C1, 0x11101462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 XT", kNull }, - + { 0x94C3, 0x03421002, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull }, - - { 0x94C3, 0x30001025, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull }, - + + { 0x94C3, 0x30001025, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull }, + { 0x94C3, 0x03021028, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull }, { 0x94C3, 0x04021028, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull }, - + { 0x94C3, 0x216A1458, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull }, { 0x94C3, 0x21721458, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull }, { 0x94C3, 0x30001458, CHIP_FAMILY_RV610, "ATI Radeon HD 3410", kNull }, - + { 0x94C3, 0x10321462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull }, { 0x94C3, 0x10411462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400", kNull }, { 0x94C3, 0x11041462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400", kNull }, { 0x94C3, 0x11051462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400", kNull }, { 0x94C3, 0x30001462, CHIP_FAMILY_RV610, "ATI Radeon HD 3410", kNull }, - + { 0x94C3, 0x2247148C, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 LE", kNull }, - { 0x94C3, 0x3000148C, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull }, - + { 0x94C3, 0x3000148C, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull }, + { 0x94C3, 0x30001642, CHIP_FAMILY_RV610, "ATI Radeon HD 3410", kNull }, { 0x94C3, 0x37161642, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull }, - - { 0x94C3, 0x3000174B, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull }, + + { 0x94C3, 0x3000174B, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull }, { 0x94C3, 0xE370174B, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull }, { 0x94C3, 0xE400174B, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull }, - + { 0x94C3, 0x203817AF, CHIP_FAMILY_RV610, "ATI Radeon HD 2400", kNull }, - + { 0x94C3, 0x22471787, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 LE", kNull }, - { 0x94C3, 0x30001787, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull }, - - { 0x94C3, 0x01011A93, CHIP_FAMILY_RV610, "Qimonda Radeon HD 2400 PRO", kNull }, - + { 0x94C3, 0x30001787, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull }, + + { 0x94C3, 0x01011A93, CHIP_FAMILY_RV610, "Qimonda Radeon HD 2400 PRO", kNull }, + { 0x9501, 0x25421002, CHIP_FAMILY_RV670, "ATI Radeon HD 3870", kNull }, { 0x9501, 0x30001002, CHIP_FAMILY_RV670, "ATI Radeon HD 3690", kNull }, - + { 0x9501, 0x3000174B, CHIP_FAMILY_RV670, "Sapphire Radeon HD 3690", kNull }, { 0x9501, 0x4750174B, CHIP_FAMILY_RV670, "ATI Radeon HD 4750", kNull }, - + { 0x9501, 0x30001787, CHIP_FAMILY_RV670, "ATI Radeon HD 3690", kNull }, - + { 0x9505, 0x25421002, CHIP_FAMILY_RV670, "ATI Radeon HD 3850", kNull }, { 0x9505, 0x30001002, CHIP_FAMILY_RV670, "ATI Radeon HD 3690", kNull }, - + { 0x9505, 0x30011043, CHIP_FAMILY_RV670, "ATI Radeon HD 4730", kNull }, - + { 0x9505, 0x3000148C, CHIP_FAMILY_RV670, "ATI Radeon HD 3850", kNull }, { 0x9505, 0x3001148C, CHIP_FAMILY_RV670, "ATI Radeon HD 4730", kNull }, { 0x9505, 0x3002148C, CHIP_FAMILY_RV670, "ATI Radeon HD 4730", kNull }, { 0x9505, 0x3003148C, CHIP_FAMILY_RV670, "ATI Radeon HD 4750", kNull }, { 0x9505, 0x3004148C, CHIP_FAMILY_RV670, "ATI Radeon HD 4750", kNull }, - + { 0x9505, 0x3000174B, CHIP_FAMILY_RV670, "Sapphire Radeon HD 3690", kNull }, { 0x9505, 0x3001174B, CHIP_FAMILY_RV670, "ATI Radeon HD 4750", kNull }, { 0x9505, 0x3010174B, CHIP_FAMILY_RV670, "ATI Radeon HD 4750", kNull }, { 0x9505, 0x4730174B, CHIP_FAMILY_RV670, "ATI Radeon HD 4730", kNull }, - + { 0x9505, 0x30001787, CHIP_FAMILY_RV670, "ATI Radeon HD 3690", kNull }, { 0x9505, 0x301017AF, CHIP_FAMILY_RV670, "ATI Radeon HD 4750", kNull }, { 0x9540, 0x4590174B, CHIP_FAMILY_RV710, "ATI Radeon HD 4590", kNull }, - + { 0x9540, 0x30501787, CHIP_FAMILY_RV710, "ATI Radeon HD 4590", kNull }, - + { 0x954F, 0x29201682, CHIP_FAMILY_RV710, "ATI Radeon HD 4550", kNull }, { 0x954F, 0x29211682, CHIP_FAMILY_RV710, "ATI Radeon HD 4550", kNull }, { 0x954F, 0x30901682, CHIP_FAMILY_RV710, "XFX Radeon HD 4570", kNull }, - + { 0x954F, 0x30501787, CHIP_FAMILY_RV710, "ATI Radeon HD 4450", kNull }, { 0x954F, 0x31001787, CHIP_FAMILY_RV710, "ATI Radeon HD 4520", kNull }, - + { 0x954F, 0x3000174B, CHIP_FAMILY_RV710, "ATI Radeon HD 4520", kNull }, { 0x954F, 0x4450174B, CHIP_FAMILY_RV710, "ATI Radeon HD 4450", kNull }, { 0x954F, 0x4570174B, CHIP_FAMILY_RV710, "Sapphire Radeon HD 4570", kNull }, { 0x954F, 0xE990174B, CHIP_FAMILY_RV710, "Sapphire Radeon HD 4350", kNull }, - + { 0x954F, 0x301017AF, CHIP_FAMILY_RV710, "ATI Radeon HD 4450", kNull }, - + { 0x9552, 0x04341028, CHIP_FAMILY_RV710, "ATI Mobility Radeon 4330", kShrike }, + + { 0x9552, 0x3000148C, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull }, + + { 0x9552, 0x3000174B, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull }, + + { 0x9552, 0x30001787, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull }, + + { 0x9552, 0x300017AF, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull }, + + { 0x9553, 0x18751043, CHIP_FAMILY_RV710, "ATI Mobility Radeon HD 4570", kShrike }, + { 0x9553, 0x1B321043, CHIP_FAMILY_RV710, "ATI Mobility Radeon HD 4570", kShrike }, + + { 0x9581, 0x95811002, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, + + { 0x9581, 0x3000148C, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, + + { 0x9583, 0x3000148C, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, + + { 0x9588, 0x01021A93, CHIP_FAMILY_RV630, "Qimonda Radeon HD 2600 XT", kNull }, - { 0x9552, 0x3000148C, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull }, - - { 0x9552, 0x3000174B, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull }, - - { 0x9552, 0x30001787, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull }, - - { 0x9552, 0x300017AF, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull }, - - { 0x9553, 0x18751043, CHIP_FAMILY_RV710, "ATI Mobility Radeon HD 4570", kShrike }, - { 0x9553, 0x1B321043, CHIP_FAMILY_RV710, "ATI Mobility Radeon HD 4570", kShrike }, - - { 0x9581, 0x95811002, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, - - { 0x9581, 0x3000148C, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, - - { 0x9583, 0x3000148C, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, - - { 0x9588, 0x01021A93, CHIP_FAMILY_RV630, "Qimonda Radeon HD 2600 XT", kNull }, - { 0x9589, 0x30001462, CHIP_FAMILY_RV630, "ATI Radeon HD 3610", kNull }, - + { 0x9589, 0x30001642, CHIP_FAMILY_RV630, "ATI Radeon HD 3610", kNull }, - - { 0x9589, 0x0E41174B, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, - - { 0x9589, 0x30001787, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, - - { 0x9589, 0x01001A93, CHIP_FAMILY_RV630, "Qimonda Radeon HD 2600 PRO", kNull }, - - { 0x9591, 0x2303148C, CHIP_FAMILY_RV635, "ATI Radeon HD 3600 Series", kNull }, - + + { 0x9589, 0x0E41174B, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, + + { 0x9589, 0x30001787, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, + + { 0x9589, 0x01001A93, CHIP_FAMILY_RV630, "Qimonda Radeon HD 2600 PRO", kNull }, + + { 0x9591, 0x2303148C, CHIP_FAMILY_RV635, "ATI Radeon HD 3600 Series", kNull }, + { 0x9598, 0xB3831002, CHIP_FAMILY_RV635, "ATI All-in-Wonder HD", kNull }, - - { 0x9598, 0x30001043, CHIP_FAMILY_RV635, "HD3730", kNull }, + + { 0x9598, 0x30001043, CHIP_FAMILY_RV635, "HD3730", kNull }, { 0x9598, 0x30011043, CHIP_FAMILY_RV635, "ATI Radeon HD 4570", kNull }, - + { 0x9598, 0x3000148C, CHIP_FAMILY_RV635, "ATI Radeon HD 3730", kNull }, { 0x9598, 0x3001148C, CHIP_FAMILY_RV635, "ATI Radeon HD 4580", kNull }, { 0x9598, 0x3031148C, CHIP_FAMILY_RV635, "ATI Radeon HD 4570", kNull }, - - { 0x9598, 0x30001545, CHIP_FAMILY_RV635, "VisionTek Radeon HD 2600 XT", kNull }, - { 0x9598, 0x30011545, CHIP_FAMILY_RV635, "VisionTek Radeon HD 2600 Pro", kNull }, - + + { 0x9598, 0x30001545, CHIP_FAMILY_RV635, "VisionTek Radeon HD 2600 XT", kNull }, + { 0x9598, 0x30011545, CHIP_FAMILY_RV635, "VisionTek Radeon HD 2600 Pro", kNull }, + { 0x9598, 0x3000174B, CHIP_FAMILY_RV635, "Sapphire Radeon HD 3730", kNull }, { 0x9598, 0x3001174B, CHIP_FAMILY_RV635, "Sapphire Radeon HD 3750", kNull }, { 0x9598, 0x4570174B, CHIP_FAMILY_RV635, "ATI Radeon HD 4570", kNull }, { 0x9598, 0x4580174B, CHIP_FAMILY_RV635, "ATI Radeon HD 4580", kNull }, { 0x9598, 0x4610174B, CHIP_FAMILY_RV635, "ATI Radeon HD 4610", kNull }, - + { 0x9598, 0x300117AF, CHIP_FAMILY_RV635, "ATI Radeon HD 3750", kNull }, { 0x9598, 0x301017AF, CHIP_FAMILY_RV635, "ATI Radeon HD 4570", kNull }, { 0x9598, 0x301117AF, CHIP_FAMILY_RV635, "ATI Radeon HD 4580", kNull }, - + { 0x9598, 0x30501787, CHIP_FAMILY_RV635, "ATI Radeon HD 4610", kNull }, - + { 0x95C0, 0x3000148C, CHIP_FAMILY_RV620, "ATI Radeon HD 3550", kNull }, - + { 0x95C0, 0xE3901745, CHIP_FAMILY_RV620, "ATI Radeon HD 3550", kNull }, - + { 0x95C0, 0x3000174B, CHIP_FAMILY_RV620, "Sapphire Radeon HD 3550", kNull }, { 0x95C0, 0x3002174B, CHIP_FAMILY_RV620, "ATI Radeon HD 3570", kNull }, { 0x95C0, 0x3020174B, CHIP_FAMILY_RV620, "ATI Radeon HD 4250", kNull }, - + { 0x95C5, 0x3000148C, CHIP_FAMILY_RV620, "ATI Radeon HD 3450", kNull }, { 0x95C5, 0x3001148C, CHIP_FAMILY_RV620, "ATI Radeon HD 3550", kNull }, { 0x95C5, 0x3002148C, CHIP_FAMILY_RV620, "ATI Radeon HD 4230", kNull }, { 0x95C5, 0x3003148C, CHIP_FAMILY_RV620, "ATI Radeon HD 4250", kNull }, { 0x95C5, 0x3032148C, CHIP_FAMILY_RV620, "ATI Radeon HD 4250", kNull }, { 0x95C5, 0x3033148C, CHIP_FAMILY_RV620, "ATI Radeon HD 4230", kNull }, - + { 0x95C5, 0x3010174B, CHIP_FAMILY_RV620, "ATI Radeon HD 4250", kNull }, { 0x95C5, 0x4250174B, CHIP_FAMILY_RV620, "ATI Radeon HD 4250", kNull }, - + { 0x95C5, 0x30501787, CHIP_FAMILY_RV620, "ATI Radeon HD 4250", kNull }, - + { 0x95C5, 0x301017AF, CHIP_FAMILY_RV620, "ATI Radeon HD 4230", kNull }, - + { 0x95C5, 0x01041A93, CHIP_FAMILY_RV620, "Qimonda Radeon HD 3450", kNull }, { 0x95C5, 0x01051A93, CHIP_FAMILY_RV620, "Qimonda Radeon HD 3450", kNull }, - + /* Evergreen */ { 0x6898, 0x0B001002, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5870", kZonalis }, @@ -465,42 +465,41 @@ { 0x6898, 0xE140174B, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5870", kUakari }, { 0x6898, 0x29611682, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5870", kUakari }, - + { 0x6899, 0x21E41458, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5850", kUakari }, - + { 0x6899, 0xE140174B, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5850", kUakari }, - + { 0x6899, 0x200A1787, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5850", kUakari }, { 0x6899, 0x22901787, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5850", kUakari }, - - { 0x689C, 0x03521043, CHIP_FAMILY_HEMLOCK, "ASUS ARES", kUakari }, + + { 0x689C, 0x03521043, CHIP_FAMILY_HEMLOCK, "ASUS ARES", kUakari }, { 0x689C, 0x039E1043, CHIP_FAMILY_HEMLOCK, "ASUS EAH5870 Series", kUakari }, - + { 0x689C, 0x30201682, CHIP_FAMILY_HEMLOCK, "ATI Radeon HD 5970", kUakari }, - - { 0x68A1, 0x144D103C, CHIP_FAMILY_CYPRESS, "ATI Mobility Radeon HD 5800", kNomascus }, - + + { 0x68A1, 0x144D103C, CHIP_FAMILY_CYPRESS, "ATI Mobility Radeon HD 5800", kNomascus }, + { 0x68A8, 0x050E1025, CHIP_FAMILY_CYPRESS, "AMD Radeon HD 6850M", kUakari }, - + { 0x68B8, 0x00CF106B, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kHoolock }, - + { 0x68B8, 0x29901682, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet }, { 0x68B8, 0x29911682, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet }, - + { 0x68B8, 0x1482174B, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet }, { 0x68B8, 0xE147174B, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet }, - + { 0x68B8, 0x21D71458, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet }, - + { 0x68B8, 0x200B1787, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet }, { 0x68B8, 0x22881787, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet }, - + { 0x68C0, 0x1594103C, CHIP_FAMILY_REDWOOD, "AMD Radeon HD 6570M", kNull }, - - { 0x68C1, 0x033E1025, CHIP_FAMILY_REDWOOD, "ATI Mobility Radeon HD 5650", kNull }, - - { 0x68C8, 0x2306103C, CHIP_FAMILY_REDWOOD, "ATI FirePro V4800 (FireGL)", kNull }, - + + { 0x68C1, 0x033E1025, CHIP_FAMILY_REDWOOD, "ATI Mobility Radeon HD 5650", kNull }, + + { 0x68C8, 0x2306103C, CHIP_FAMILY_REDWOOD, "ATI FirePro V4800 (FireGL)", kNull }, { 0x68D8, 0x03561043, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5670", kBaboon }, { 0x68D8, 0x21D91458, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5670", kBaboon }, @@ -508,26 +507,26 @@ { 0x68D8, 0x5690174B, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5690", kNull }, { 0x68D8, 0x5730174B, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5730", kNull }, { 0x68D8, 0xE151174B, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5670", kBaboon }, - + { 0x68D8, 0x30001787, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5730", kNull }, - + { 0x68D8, 0x301017AF, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5730", kNull }, { 0x68D8, 0x301117AF, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5690", kNull }, { 0x68D9, 0x301017AF, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5630", kNull }, { 0x68DA, 0x5630174B, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5630", kNull }, - + { 0x68DA, 0x30001787, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5630", kNull }, - + { 0x68DA, 0x301017AF, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5630", kNull }, - + { 0x68E0, 0x04561028, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470M", kEulemur }, - + { 0x68E0, 0x1433103C, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470M", kEulemur }, { 0x68E1, 0x1426103C, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5430M", kEulemur }, - + { 0x68F9, 0x5470174B, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470", kNull }, { 0x68F9, 0x5490174B, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5490", kNull }, { 0x68F9, 0x5530174B, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5530", kNull }, @@ -537,130 +536,130 @@ { 0x68F9, 0x30001787, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470", kNull }, { 0x68F9, 0x30011787, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5530", kNull }, { 0x68F9, 0x30021787, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5490", kNull }, - + { 0x68F9, 0x301117AF, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470", kNull }, { 0x68F9, 0x301217AF, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5490", kNull }, { 0x68F9, 0x301317AF, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470", kNull }, - + /* Northen Islands */ { 0x6718, 0x0B001002, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970", kNull }, { 0x6718, 0x67181002, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970", kNull }, - + { 0x6718, 0x31301682, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970", kNull }, - + { 0x6738, 0x67381002, CHIP_FAMILY_BARTS, "AMD Radeon HD 6870", kDuckweed }, - + { 0x6739, 0x67391002, CHIP_FAMILY_BARTS, "AMD Radeon HD 6850", kDuckweed }, - + { 0x6739, 0x21F81458, CHIP_FAMILY_BARTS, "AMD Radeon HD 6850", kDuckweed }, - + { 0x6740, 0x1657103C, CHIP_FAMILY_TURKS, "AMD Radeon HD 6770M", kNull }, - + { 0x6741, 0x050E1025, CHIP_FAMILY_TURKS, "AMD Radeon HD 6650M", kNull }, { 0x6741, 0x05131025, CHIP_FAMILY_TURKS, "AMD Radeon HD 6650M", kNull }, - + { 0x6741, 0x1646103C, CHIP_FAMILY_TURKS, "AMD Radeon HD 6750M", kNull }, - + { 0x6759, 0xE193174B, CHIP_FAMILY_TURKS, "AMD Radeon HD 6570", kNull }, - + { 0x6760, 0x1CB21043, CHIP_FAMILY_RV730, "AMD Radeon HD 6470M", kNull }, - + /* standard/default models */ { 0x9400, 0x00000000, CHIP_FAMILY_R600, "ATI Radeon HD 2900 XT", kNull }, { 0x9405, 0x00000000, CHIP_FAMILY_R600, "ATI Radeon HD 2900 GT", kNull }, - - { 0x9440, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + + { 0x9440, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, { 0x9441, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4870 X2", kMotmot }, - { 0x9442, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + { 0x9442, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, { 0x9443, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4850 X2", kMotmot }, - { 0x944C, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - { 0x944E, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4700 Series", kMotmot }, - + { 0x944C, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + { 0x944E, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4700 Series", kMotmot }, + { 0x9450, 0x00000000, CHIP_FAMILY_RV770, "AMD FireStream 9270", kMotmot }, { 0x9452, 0x00000000, CHIP_FAMILY_RV770, "AMD FireStream 9250", kMotmot }, - - { 0x9460, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - { 0x9462, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, - - { 0x9490, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kFlicker }, - { 0x9498, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kFlicker }, - + + { 0x9460, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + { 0x9462, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot }, + + { 0x9490, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kFlicker }, + { 0x9498, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kFlicker }, + { 0x94B3, 0x00000000, CHIP_FAMILY_RV740, "ATI Radeon HD 4770", kFlicker }, - { 0x94B4, 0x00000000, CHIP_FAMILY_RV740, "ATI Radeon HD 4700 Series", kFlicker }, + { 0x94B4, 0x00000000, CHIP_FAMILY_RV740, "ATI Radeon HD 4700 Series", kFlicker }, { 0x94B5, 0x00000000, CHIP_FAMILY_RV740, "ATI Radeon HD 4770", kFlicker }, - - { 0x94C1, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago }, - { 0x94C3, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago }, + + { 0x94C1, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago }, + { 0x94C3, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago }, { 0x94C7, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2350", kIago }, - { 0x94CC, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago }, - - { 0x9501, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3800 Series", kMegalodon }, - { 0x9505, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3800 Series", kMegalodon }, + { 0x94CC, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago }, + + { 0x9501, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3800 Series", kMegalodon }, + { 0x9505, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3800 Series", kMegalodon }, { 0x9507, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3830", kMegalodon }, { 0x950F, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3870 X2", kMegalodon }, - + { 0x9513, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3850 X2", kMegalodon }, { 0x9519, 0x00000000, CHIP_FAMILY_RV670, "AMD FireStream 9170", kMegalodon }, - + { 0x9540, 0x00000000, CHIP_FAMILY_RV710, "ATI Radeon HD 4550", kNull }, - { 0x954F, 0x00000000, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull }, - + { 0x954F, 0x00000000, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull }, + { 0x9553, 0x00000000, CHIP_FAMILY_RV710, "ATI Mobility Radeon HD 4500/5100 Series", kShrike }, - + { 0x9588, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 XT", kLamna }, { 0x9589, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 PRO", kLamna }, - { 0x958A, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 X2 Series", kLamna }, - - { 0x9598, 0x00000000, CHIP_FAMILY_RV635, "ATI Radeon HD 3600 Series", kMegalodon }, - - { 0x95C0, 0x00000000, CHIP_FAMILY_RV620, "ATI Radeon HD 3400 Series", kIago }, - { 0x95C5, 0x00000000, CHIP_FAMILY_RV620, "ATI Radeon HD 3400 Series", kIago }, - + { 0x958A, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 X2 Series", kLamna }, + + { 0x9598, 0x00000000, CHIP_FAMILY_RV635, "ATI Radeon HD 3600 Series", kMegalodon }, + + { 0x95C0, 0x00000000, CHIP_FAMILY_RV620, "ATI Radeon HD 3400 Series", kIago }, + { 0x95C5, 0x00000000, CHIP_FAMILY_RV620, "ATI Radeon HD 3400 Series", kIago }, + /* IGP */ - { 0x9610, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon HD 3200 Graphics", kNull }, + { 0x9610, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon HD 3200 Graphics", kNull }, { 0x9611, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon 3100 Graphics", kNull }, - { 0x9614, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon HD 3300 Graphics", kNull }, - { 0x9616, 0x00000000, CHIP_FAMILY_RS780, "AMD 760G", kNull }, - + { 0x9614, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon HD 3300 Graphics", kNull }, + { 0x9616, 0x00000000, CHIP_FAMILY_RS780, "AMD 760G", kNull }, + { 0x9710, 0x00000000, CHIP_FAMILY_RS880, "ATI Radeon HD 4200", kNull }, { 0x9715, 0x00000000, CHIP_FAMILY_RS880, "ATI Radeon HD 4250", kNull }, { 0x9714, 0x00000000, CHIP_FAMILY_RS880, "ATI Radeon HD 4290", kNull }, - + /* Evergreen */ { 0x688D, 0x00000000, CHIP_FAMILY_CYPRESS, "AMD FireStream 9350", kUakari }, - - { 0x6898, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5800 Series", kUakari }, - { 0x6899, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5800 Series", kUakari }, - { 0x689C, 0x00000000, CHIP_FAMILY_HEMLOCK, "ATI Radeon HD 5900 Series", kUakari }, - { 0x689E, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5800 Series", kUakari }, - - { 0x68B8, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5700 Series", kVervet }, - { 0x68B9, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5600 Series", kVervet }, - { 0x68BE, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5700 Series", kVervet }, - - { 0x68D8, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5600 Series", kBaboon }, - { 0x68D9, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5500 Series", kBaboon }, - { 0x68DA, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5500 Series", kBaboon }, - - { 0x68F9, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5400 Series", kNull }, - + + { 0x6898, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5800 Series", kUakari }, + { 0x6899, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5800 Series", kUakari }, + { 0x689C, 0x00000000, CHIP_FAMILY_HEMLOCK, "ATI Radeon HD 5900 Series", kUakari }, + { 0x689E, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5800 Series", kUakari }, + + { 0x68B8, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5700 Series", kVervet }, + { 0x68B9, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5600 Series", kVervet }, + { 0x68BE, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5700 Series", kVervet }, + + { 0x68D8, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5600 Series", kBaboon }, + { 0x68D9, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5500 Series", kBaboon }, + { 0x68DA, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5500 Series", kBaboon }, + + { 0x68F9, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5400 Series", kNull }, + /* Northen Islands */ - { 0x6718, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970 Series", kNull }, - { 0x6719, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6950 Series", kNull }, - - { 0x6738, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6870 Series", kDuckweed }, - { 0x6739, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6850 Series", kDuckweed }, - { 0x673E, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6790 Series", kNull }, - - { 0x6740, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6700M Series", kNull }, - { 0x6741, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6600M/6700M Series", kNull }, - - { 0x6758, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6670 Series", kNull }, - { 0x6759, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6500 Series", kNull }, - - { 0x6770, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6400 Series", kNull }, - { 0x6779, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6450 Series", kNull }, - + { 0x6718, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970 Series", kNull }, + { 0x6719, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6950 Series", kNull }, + + { 0x6738, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6870 Series", kDuckweed }, + { 0x6739, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6850 Series", kDuckweed }, + { 0x673E, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6790 Series", kNull }, + + { 0x6740, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6700M Series", kNull }, + { 0x6741, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6600M/6700M Series", kNull }, + + { 0x6758, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6670 Series", kNull }, + { 0x6759, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6500 Series", kNull }, + + { 0x6770, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6400 Series", kNull }, + { 0x6779, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6450 Series", kNull }, + { 0x0000, 0x00000000, CHIP_FAMILY_UNKNOW, NULL, kNull } }; Index: trunk/i386/libsaio/cpu.c =================================================================== --- trunk/i386/libsaio/cpu.c (revision 1345) +++ trunk/i386/libsaio/cpu.c (revision 1346) @@ -30,7 +30,7 @@ unsigned long pollCount; uint64_t retval = 0; int i; - + /* Time how many TSC ticks elapse in 30 msec using the 8254 PIT * counter 2. We run this loop 3 times to make sure the cache * is hot and we take the minimum delta from all of the runs. @@ -67,7 +67,7 @@ * Hz so we need to convert our milliseconds to seconds. Since we're * dividing by the milliseconds, we simply multiply by 1000. */ - + /* Unlike linux, we're not limited to 32-bit, but we do need to take care * that we're going to multiply by 1000 first so we do need at least some * arithmetic headroom. For now, 32-bit should be enough. @@ -209,10 +209,10 @@ int len, myfsb; uint8_t bus_ratio_min; uint32_t max_ratio, min_ratio; - + max_ratio = min_ratio = myfsb = bus_ratio_min = 0; maxcoef = maxdiv = bus_ratio_max = currcoef = currdiv = 0; - + /* get cpuid values */ do_cpuid(0x00000000, p->CPU.CPUID[CPUID_0]); do_cpuid(0x00000001, p->CPU.CPUID[CPUID_1]); @@ -330,11 +330,11 @@ if (p->CPU.NoThreads > p->CPU.NoCores) { p->CPU.Features |= CPU_FEATURE_HTT; } - + tscFrequency = measure_tsc_frequency(); fsbFrequency = 0; cpuFrequency = 0; - + if ((p->CPU.Vendor == CPUID_VENDOR_INTEL) && ((p->CPU.Family == 0x06) || (p->CPU.Family == 0x0f))) { int intelCPU = p->CPU.Model; if ((p->CPU.Family == 0x06 && p->CPU.Model >= 0x0c) || (p->CPU.Family == 0x0f && p->CPU.Model >= 0x03)) { @@ -365,8 +365,7 @@ is inadvertently set to 0. */ if (flex_ratio == 0) { - /* Clear bit 16 (evidently the - presence bit) */ + /* Clear bit 16 (evidently the presence bit) */ wrmsr64(MSR_FLEX_RATIO, (msr & 0xFFFFFFFFFFFEFFFFULL)); msr = rdmsr64(MSR_FLEX_RATIO); verbose("Unusable flex ratio detected. Patched MSR now %08x\n", bitfield(msr, 31, 0)); @@ -376,7 +375,7 @@ } } } - + if (bus_ratio_max) { fsbFrequency = (tscFrequency / bus_ratio_max); } @@ -392,9 +391,9 @@ max_ratio = atoi(newratio); max_ratio = (max_ratio * 10); if (len >= 3) max_ratio = (max_ratio + 5); - + verbose("Bus-Ratio: min=%d, max=%s\n", bus_ratio_min, newratio); - + // extreme overclockers may love 320 ;) if ((max_ratio >= min_ratio) && (max_ratio <= 320)) { cpuFrequency = (fsbFrequency * max_ratio) / 10; @@ -408,7 +407,7 @@ /*if(bus_ratio_max > 0) bus_ratio = flex_ratio;*/ p->CPU.MaxRatio = max_ratio; p->CPU.MinRatio = min_ratio; - + myfsb = fsbFrequency / 1000000; verbose("Sticking with [BCLK: %dMhz, Bus-Ratio: %d]\n", myfsb, max_ratio); currcoef = bus_ratio_max; @@ -430,7 +429,7 @@ /* XXX */ maxcoef = currcoef; } - + if (maxcoef) { if (maxdiv) { fsbFrequency = ((tscFrequency * 2) / ((maxcoef * 2) + 1)); Index: trunk/i386/libsaio/disk.c =================================================================== --- trunk/i386/libsaio/disk.c (revision 1345) +++ trunk/i386/libsaio/disk.c (revision 1346) @@ -1685,19 +1685,19 @@ static const struct NamedValue fdiskTypes[] = { - { FDISK_NTFS, "Windows NTFS" }, - { FDISK_DOS12, "Windows FAT12" }, - { FDISK_DOS16B, "Windows FAT16" }, - { FDISK_DOS16S, "Windows FAT16" }, - { FDISK_DOS16SLBA, "Windows FAT16" }, - { FDISK_SMALLFAT32, "Windows FAT32" }, - { FDISK_FAT32, "Windows FAT32" }, - { FDISK_LINUX, "Linux" }, - { FDISK_UFS, "Apple UFS" }, - { FDISK_HFS, "Apple HFS" }, - { FDISK_BOOTER, "Apple Boot/UFS" }, - { 0xCD, "CD-ROM" }, - { 0x00, 0 } /* must be last */ + { FDISK_NTFS, "Windows NTFS" }, + { FDISK_DOS12, "Windows FAT12" }, + { FDISK_DOS16B, "Windows FAT16" }, + { FDISK_DOS16S, "Windows FAT16" }, + { FDISK_DOS16SLBA, "Windows FAT16" }, + { FDISK_SMALLFAT32, "Windows FAT32" }, + { FDISK_FAT32, "Windows FAT32" }, + { FDISK_LINUX, "Linux" }, + { FDISK_UFS, "Apple UFS" }, + { FDISK_HFS, "Apple HFS" }, + { FDISK_BOOTER, "Apple Boot/UFS" }, + { 0xCD, "CD-ROM" }, + { 0x00, 0 } /* must be last */ }; //========================================================================== Index: trunk/i386/libsaio/saio_types.h =================================================================== --- trunk/i386/libsaio/saio_types.h (revision 1345) +++ trunk/i386/libsaio/saio_types.h (revision 1346) @@ -213,11 +213,12 @@ }; enum { - kPartitionTypeHFS = 0xAF, - kPartitionTypeHPFS = 0x07, - kPartitionTypeFAT16 = 0x06, - kPartitionTypeFAT32 = 0x0c, - kPartitionTypeEXT3 = 0x83 + + kPartitionTypeHFS = 0xAF, + kPartitionTypeHPFS = 0x07, + kPartitionTypeFAT16 = 0x06, + kPartitionTypeFAT32 = 0x0c, + kPartitionTypeEXT3 = 0x83 }; //#define BIOS_DEV_TYPE(d) ((d) & kBIOSDevTypeMask) Index: trunk/i386/libsaio/fake_efi.c =================================================================== --- trunk/i386/libsaio/fake_efi.c (revision 1345) +++ trunk/i386/libsaio/fake_efi.c (revision 1346) @@ -492,7 +492,7 @@ // belong to smbios config only ... const char *sysId = getStringForKey(kSystemID, &bootInfo->chameleonConfig); EFI_CHAR8* ret = getUUIDFromString(sysId); - + if (!sysId || !ret) // try bios dmi info UUID extraction { ret = getSmbiosUUID(); @@ -566,7 +566,7 @@ { DT__AddProperty(runtimeServicesNode, "table", sizeof(uint64_t), &gST64->RuntimeServices); } - + // Set up the /efi/configuration-table node which will eventually have several child nodes for // all of the configuration tables needed by various kernel extensions. gEfiConfigurationTableNode = DT__AddChild(node, "configuration-table"); @@ -591,7 +591,7 @@ // Export system-id. Can be disabled with SystemId=No in com.apple.Boot.plist if ((ret=getSystemID())) DT__AddProperty(efiPlatformNode, SYSTEM_ID_PROP, UUID_LEN, (EFI_UINT32*) ret); - + // Export SystemSerialNumber if present if ((ret16=getSmbiosChar16("SMserial", &len))) DT__AddProperty(efiPlatformNode, SYSTEM_SERIAL_PROP, len, ret16); @@ -647,12 +647,12 @@ err = loadConfigFile(dirSpecSMBIOS, &bootInfo->smbiosConfig); } } - + if (err) { verbose("No SMBIOS replacement found.\n"); } - + // get a chance to scan mem dynamically if user asks for it while having the config options // loaded as well, as opposed to when it was in scan_platform(); also load the orig. smbios // so that we can access dmi info, without patching the smbios yet. @@ -668,7 +668,7 @@ addConfigurationTable(&gEfiSmbiosTableGuid, &smbios_p, NULL); setupBoardId(); //need to be called after getSmbios - + // Setup ACPI with DSDT overrides (mackerintel's patch) setupAcpi(); @@ -712,7 +712,7 @@ memcpy(tableAddress, (void *)origeps->dmi.tableAddress, origeps->dmi.tableLength); DT__AddProperty(node, "SMBIOS", origeps->dmi.tableLength, tableAddress); -} +} /* * Entrypoint from boot.c @@ -721,14 +721,14 @@ { // Generate efi device strings setup_pci_devs(root_pci_dev); - + readSMBIOSInfo(getSmbios(SMBIOS_ORIGINAL)); // load smbios.plist file if any setupSmbiosConfigFile("smbios.plist"); - + setupSMBIOSTable(); - + // Initialize the base table if (archCpuType == CPU_TYPE_I386) { @@ -741,7 +741,7 @@ // Initialize the device tree setupEfiDeviceTree(); - + saveOriginalSMBIOS(); // Add configuration table entries to both the services table and the device tree Index: trunk/i386/boot2/boot.c =================================================================== --- trunk/i386/boot2/boot.c (revision 1345) +++ trunk/i386/boot2/boot.c (revision 1346) @@ -43,7 +43,7 @@ * Copyright 1993 NeXT Computer, Inc. * All rights reserved. */ - + /* * Completely reworked by Sam Streeper (sam_s@NeXT.com) * Reworked again by Curtis Galloway (galloway@NeXT.com) @@ -215,7 +215,7 @@ outb(0xa1, 0xff); /* Maskout all interrupts Pic2 */ // Jump to kernel's entry point. There's no going back now. - + startprog( kernelEntry, bootArgs ); } else { @@ -223,7 +223,7 @@ startprog( kernelEntry, bootArgsPreLion ); } - + // Not reached return 0; } @@ -342,7 +342,7 @@ // Intialize module system init_module_system(); - + #if DEBUG printf(" Default: %d, ->biosdev: %d, ->part_no: %d ->flags: %d\n", gBootVolume, gBootVolume->biosdev, gBootVolume->part_no, gBootVolume->flags); printf(" bt(0,0): %d, ->biosdev: %d, ->part_no: %d ->flags: %d\n", gBIOSBootVolume, gBIOSBootVolume->biosdev, gBIOSBootVolume->part_no, gBIOSBootVolume->flags); @@ -384,7 +384,7 @@ status = getBootOptions(firstRun); firstRun = false; if (status == -1) continue; - + status = processBootOptions(); // Status==1 means to chainboot if ( status == 1 ) break; @@ -428,7 +428,7 @@ } else { archCpuType = CPU_TYPE_I386; } - + if (getValueForKey(karch, &val, &len, &bootInfo->chameleonConfig)) { if (strncmp(val, "i386", 4) == 0) { archCpuType = CPU_TYPE_I386; @@ -485,7 +485,7 @@ #endif break; } - + HibernateBoot((char *)val); break; } @@ -545,7 +545,7 @@ } } } - + // Check for cache file. trycache = (usecache && ((gBootMode & kBootModeSafe) == 0) && @@ -630,7 +630,7 @@ } } } - + if (checkOSVersion("10.7")) { //Lion, dont load kernel if haz cache @@ -725,7 +725,7 @@ config_file_t systemVersion; const char *val; int len; - + if (!loadConfigFile("System/Library/CoreServices/SystemVersion.plist", &systemVersion)) { valid = true; @@ -734,7 +734,7 @@ { valid = true; } - + if (valid) { if (getValueForKey(kProductVersion, &val, &len, &systemVersion)) @@ -747,7 +747,7 @@ else valid = false; } - + return valid; } Index: trunk/i386/boot2/gui.c =================================================================== --- trunk/i386/boot2/gui.c (revision 1345) +++ trunk/i386/boot2/gui.c (revision 1346) @@ -760,19 +760,19 @@ break; case kPartitionTypeHPFS: - devicetype = iDeviceNTFS; // Use HPFS / NTFS icon + devicetype = iDeviceNTFS; // Use HPFS / NTFS icon break; case kPartitionTypeFAT16: - devicetype = iDeviceFAT16; // Use FAT16 icon + devicetype = iDeviceFAT16; // Use FAT16 icon break; case kPartitionTypeFAT32: - devicetype = iDeviceFAT32; // Use FAT32 icon + devicetype = iDeviceFAT32; // Use FAT32 icon break; case kPartitionTypeEXT3: - devicetype = iDeviceEXT3; // Use EXT2/3 icon + devicetype = iDeviceEXT3; // Use EXT2/3 icon break; default: Index: trunk/i386/modules/Makefile =================================================================== --- trunk/i386/modules/Makefile (revision 1345) +++ trunk/i386/modules/Makefile (revision 1346) @@ -18,7 +18,7 @@ DEFINES= CONFIG = hd LIBSAIODIR = $(SRCROOT)/i386/libsaio -INC = -I$(LIBSAIODIR) +INC = -I$(LIBSAIODIR) ifeq (${CONFIG_MODULES}, y) Index: branches/ErmaC/i386/boot2/boot.c =================================================================== --- branches/ErmaC/i386/boot2/boot.c (revision 1345) +++ branches/ErmaC/i386/boot2/boot.c (revision 1346) @@ -211,9 +211,6 @@ if (checkOSVersion("10.7")) { // Masking out so that Lion doesn't doublefault - // outb(0x21, 0xff); /* Maskout all interrupts Pic1 */ - // outb(0xa1, 0xff); /* Maskout all interrupts Pic2 */ - // Jump to kernel's entry point. There's no going back now. startprog( kernelEntry, bootArgs ); @@ -605,12 +602,10 @@ verbose("Kernel cache did not load %s\n ", bootFile); } - if (checkOSVersion("10.7")) - { + if (checkOSVersion("10.7")) { bootFile = gBootKernelCacheFile; } - else - { + else { sprintf(bootFile, "\%s", bootInfo->bootFile); } @@ -628,7 +623,7 @@ if (ret == -1) { // No alternate location found, using the original kernel image path. - strcpy(bootFileSpec, bootFile); + strcpy(bootFileSpec, bootInfo->bootFile); } } } Index: branches/ErmaC/package/Distribution =================================================================== --- branches/ErmaC/package/Distribution (revision 0) +++ branches/ErmaC/package/Distribution (revision 1346) @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + Chameleon_title + + Index: branches/ErmaC/package/slimpkg.sh =================================================================== --- branches/ErmaC/package/slimpkg.sh (revision 0) +++ branches/ErmaC/package/slimpkg.sh (revision 1346) @@ -0,0 +1,368 @@ +#!/bin/bash + +# $1 Path to store built package + +packagesidentity="org.chameleon" + +packagename="Chameleon" + +pkgroot="${0%/*}" + +COL_BLACK="\x1b[30;01m" +COL_RED="\x1b[31;01m" +COL_GREEN="\x1b[32;01m" +COL_YELLOW="\x1b[33;01m" +COL_MAGENTA="\x1b[35;01m" +COL_CYAN="\x1b[36;01m" +COL_WHITE="\x1b[37;01m" +COL_BLUE="\x1b[34;01m" +COL_RESET="\x1b[39;49;00m" + +#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" ) + +# ================= + +develop=" Crazor, Dense, fassl, fxtentacle, iNDi, JrCs, Kabyl, kaitek, mackerintel, mercurysquad, munky, Slice, meklort, mozodojo, rekursor, Turbo, cparm, valv & zef " + +credits=" andyvand, asereBLN, Azimut, bumby, cosmo1t, dfe, Galaxy, kalyway, Krazubu, MasterChief, netkas, sckevyn, smith@@, THeKiNG, DutchHockeyPro & Andy" + +pkgdev=" blackosx, ErmaC , scrax" + +# ================= + +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 "" +echo -e $COL_BLACK" ---------------------"$COL_RESET +echo -e $COL_BLACK" Building Slim Package"$COL_RESET +echo -e $COL_BLACK" ---------------------"$COL_RESET +echo "" + +outline[$((outlinecount++))]="${indent[$xmlindent]}" + +# build core package + echo "================= Core =================" + ((xmlindent++)) + packagesidentity="org.chameleon.core" + mkdir -p ${1}/Core/Root/usr/sbin + mkdir -p ${1}/Core/Root/usr/local/bin + mkdir -p ${1}/Core/Root/usr/standalone/i386 +# if [ "$(ls -A "${1%/*}/i386/modules")" ]; then +# echo "Modules found." +# mkdir -p ${1}/Core/Root/usr/standalone/i386/modules +# cp -R ${1%/*}/i386/modules ${1}/Core/Root/usr/standalone/i386 +# else +# echo "No found modules into dir module" +# fi + ditto --noextattr --noqtn ${1%/*}/i386/boot ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/boot0 ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/boot0md ${1}/Core/Root/usr/standalone/i386 +# ditto --noextattr --noqtn ${1%/*}/i386/boot0hf ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/boot1f32 ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/boot1h ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/boot1he ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/boot1hp ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/cdboot ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/chain0 ${1}/Core/Root/usr/standalone/i386 +# fixperms "${1}/Core/Root/" + ditto --noextattr --noqtn ${1%/*}/i386/fdisk440 ${1}/Core/Root/usr/sbin + ditto --noextattr --noqtn ${1%/*}/i386/bdmesg ${1}/Core/Root/usr/sbin + local coresize=$( du -hkc "${1}/Core/Root" | tail -n1 | awk {'print $1'} ) + echo " [BUILD] i386 " + buildpackage "${1}/Core" "/" "0" "start_visible=\"false\" start_selected=\"true\"" >/dev/null 2>&1 + +# build Chameleon package + echo "================= Chameleon =================" + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + choices[$((choicescount++))]="\n\n" + + # 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 + echo " [BUILD] Standard " + buildpackage "${1}/Standard" "/" "${coresize}" "start_enabled=\"true\" start_selected=\"upgrade_allowed()\" selected=\"exclusive(choices['EFI']) && exclusive(choices['noboot'])\"" >/dev/null 2>&1 + # End build standard package + + # build efi package + mkdir -p ${1}/EFI/Root + mkdir -p ${1}/EFI/Scripts/Tools + cp -f ${pkgroot}/Scripts/EFI/* ${1}/EFI/Scripts + # ditto --arch i386 `which SetFile` ${1}/EFI/Scripts/Tools/SetFile + echo " [BUILD] EFI " + buildpackage "${1}/EFI" "/" "${coresize}" "start_visible=\"systemHasGPT()\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['noboot'])\"" >/dev/null 2>&1 + # End build efi package + + # build reset choice package + mkdir -p ${1}/noboot/Root + echo " [BUILD] Reset choice " + buildpackage "${1}/noboot" "/tmpcham" "" "start_visible=\"true\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['EFI'])\"" >/dev/null 2>&1 + # End build reset choice package + + # build Modules package + echo "================= Modules =================" + ############################### + # AMDGraphicsEnabler.dylib # + # ATiGraphicsEnabler.dylib # + # IntelGraphicsEnabler.dylib # + # klibc.dylib # + # NVIDIAGraphicsEnabler.dylib # + # Resolution.dylib # + # uClibcxx.dylib # + ############################### + if [ "$(ls -A "${1%/*}/i386/modules")" ]; then + { + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + choices[$((choicescount++))]="\n\n" + ((xmlindent++)) + packagesidentity="org.chameleon.module" +# - + if [ -e ${1%/*}/i386/modules/AMDGraphicsEnabler.dylib ]; then + { + mkdir -p ${1}/AMDGraphicsEnabler/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/AMDGraphicsEnabler.dylib ${1}/AMDGraphicsEnabler/Root + echo " [BUILD] AMDGraphicsEnabler " + buildpackage "${1}/AMDGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi +# - + if [ -e ${1%/*}/i386/modules/ATiGraphicsEnabler.dylib ]; then + { + mkdir -p ${1}/ATiGraphicsEnabler/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/ATiGraphicsEnabler.dylib ${1}/ATiGraphicsEnabler/Root + echo " [BUILD] ATiGraphicsEnabler " + buildpackage "${1}/ATiGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi +# - + if [ -e ${1%/*}/i386/modules/IntelGraphicsEnabler.dylib ]; then + { + mkdir -p ${1}/IntelGraphicsEnabler/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/IntelGraphicsEnabler.dylib ${1}/IntelGraphicsEnabler/Root + echo " [BUILD] IntelGraphicsEnabler " + buildpackage "${1}/IntelGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi +# - + if [ -e ${1%/*}/i386/modules/klibc.dylib ]; then + { + mkdir -p ${1}/klibc/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/klibc.dylib ${1}/klibc/Root + echo " [BUILD] klibc " + buildpackage "${1}/klibc" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi +# - + if [ -e ${1%/*}/i386/modules/NVIDIAGraphicsEnabler.dylib ]; then + { + mkdir -p ${1}/NVIDIAGraphicsEnabler/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/NVIDIAGraphicsEnabler.dylib ${1}/NVIDIAGraphicsEnabler/Root + echo " [BUILD] NVIDIAGraphicsEnabler " + buildpackage "${1}/NVIDIAGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi +# - + if [ -e ${1%/*}/i386/modules/Resolution.dylib ]; then + { + mkdir -p ${1}/AutoReso/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/Resolution.dylib ${1}/AutoReso/Root + echo " [BUILD] Resolution " + buildpackage "${1}/AutoReso" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi +# - + if [ -e ${1%/*}/i386/modules/uClibcxx.dylib ]; then + { + mkdir -p ${1}/uClibc/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/uClibcxx.dylib ${1}/uClibc/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/klibc.dylib ${1}/uClibc/Root + echo " [BUILD] uClibc++ " + buildpackage "${1}/uClibc" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi + ((xmlindent--)) + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + } + else + { + echo " -= no modules to include =-" + } + fi + # End build Modules packages + ((xmlindent--)) + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" +# End build Chameleon package + +# build post install package + echo "================= Post =================" + mkdir -p ${1}/Post/Root + mkdir -p ${1}/Post/Scripts + cp -f ${pkgroot}/Scripts/Post/* ${1}/Post/Scripts + echo " [BUILD] Post " + buildpackage "${1}/Post" "/" "" "start_visible=\"false\" start_selected=\"true\"" >/dev/null 2>&1 + 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` + +# Adding Developer and credits + perl -i -p -e "s/%DEVELOP%/${develop}/g" `find "${1}/${packagename}/Resources" -type f` + perl -i -p -e "s/%CREDITS%/${credits}/g" `find "${1}/${packagename}/Resources" -type f` + perl -i -p -e "s/%PKGDEV%/${pkgdev}/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.pkg" --compression none . + popd >/dev/null + +# Here is the place for assign a Icon to the pkg +ditto -xk "${pkgroot}/Icons/pkg.zip" "${pkgroot}/Icons/" +DeRez -only icns "${pkgroot}/Icons/Icons/pkg.icns" > tempicns.rsrc +Rez -append tempicns.rsrc -o "${1%/*}/$packagename.pkg" +SetFile -a C "${1%/*}/$packagename.pkg" +rm -f tempicns.rsrc +rm -rf "${pkgroot}/Icons/Icons" +# End + +} + +main "${1}" "${2}" "${3}" "${4}" "${5}" + Property changes on: branches/ErmaC/package/slimpkg.sh ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/doc/Users_Guide0.5.pdf =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/doc/Users_Guide0.5.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/doc/BootHelp.txt =================================================================== --- branches/ErmaC/package/doc/BootHelp.txt (revision 0) +++ branches/ErmaC/package/doc/BootHelp.txt (revision 1346) @@ -0,0 +1,111 @@ +The boot: prompt waits for you to type advanced startup options. +If you don't type anything, the computer continues starting up normally. It +uses the kernel and configuration files on the startup device, which it also +uses as the root device. + +Advanced startup options use the following syntax: + + [device] [arguments] + +Example arguments include + + device: rd= (e.g. rd=disk0s2) + rd=* (e.g. rd=*/PCI0@0/CHN0@0/@0:1) + + kernel: kernel name (e.g. "mach_kernel" - must be in "/" ) + + flags: -v (verbose) -s (single user mode) + -x (safe mode) -f (ignore caches) + -F (ignore "Kernel Flags" specified in boot configuration file) + + "Graphics Mode"="WIDTHxHEIGHTxDEPTH" (e.g. "1024x768x32") + + kernel flags (e.g. debug=0x144) + io=0xffffffff (defined in IOKit/IOKitDebug.h) + +Example: mach_kernel rd=disk0s1 -v "Graphics Mode"="1920x1200x32" + +If the computer won't start up properly, you may be able to start it up +using safe mode. Type -x to start up in safe mode, which ignores all +cached driver files. + +Special booter hotkeys: + F5 Rescans optical drive. + F10 Scans and displays all BIOS accessible drives. + +Special booter commands: + ?memory Displays information about the computer's memory. + ?video Displays VESA video modes supported by the computer's BIOS. + ?norescan Leaves optical drive rescan mode. + +Additional useful command-line options: + config= Use an alternate Boot.plist file. + +Options useful in the com.apple.Boot.plist file: + Wait=Yes|No Prompt for a key press before starting the kernel. + "Quiet Boot"=Yes|No Use quiet boot mode (no messages or prompt). + Timeout=8 Number of seconds to pause at the boot: prompt. + "Instant Menu"=Yes Force displaying the partition selection menu. + + "Default Partition" Sets the default boot partition, + =hd(x,y)|UUID|"Label" Specified as a disk/partition pair, an UUID, or a + label enclosed in quotes. + + "Hide Partition" Remove unwanted partition(s) from the boot menu. + =partition Specified, possibly multiple times, as hd(x,y), an + [;partition2 ...] UUID or label enclosed in quotes. + + "Rename Partition" Rename partition(s) for the boot menu. + =partition Where partition is hd(x,y), UUID or label enclosed + [;partition2 in quotes. The alias can optionally be quoted too. + ...] + + GUI=No Disable the GUI (enabled by default). + "Boot Banner"=Yes|No Show boot banner in GUI mode (enabled by default). + "Legacy Logo"=Yes|No Use the legacy grey apple logo (disabled by default). + + PciRoot= Use an alternate value for PciRoot (default value 0). + + GraphicsEnabler=Yes|No Automatic device-properties generation for gfx cards. + UseAtiROM=Yes|No Use an alternate Ati ROM image + (path: /Extra/_.rom) + UseNvidiaROM=Yes|No Use an alternate Nvidia ROM image + (path: /Extra/_.rom) + VBIOS=Yes|No Inject VBIOS to device-properties. + + EthernetBuiltIn=Yes|No Automatic "built-in"=yes device-properties generation + for ethernet interfaces. + + USBBusFix=Yes Enable all USB fixes below: + EHCIacquire=Yes Enable the EHCI fix (disabled by default). + UHCIreset=Yes Enable the UHCI fix (disabled by default). + USBLegacyOff=Yes Enable the USB Legacy fix (disabled by default). + + ForceHPET=Yes|No Force Enable HPET. + + Wake=No Disable wake up after hibernation (default: enabled). + ForceWake=Yes Force using the sleepimage (disabled by default). + WakeImage= Use an alternate sleepimage file. + (default path is /private/var/vm/sleepimage). + + DropSSDT=Yes Skip the SSDT tables while relocating the ACPI tables. + DSDT= Use an alternate DSDT.aml file + (default path: /DSDT.aml /Extra/DSDT.aml bt(0,0)/Extra/DSDT.aml). + + SMBIOS= Use an alternate SMBIOS.plist file + (default path: /Extra/SMBIOS.plist bt(0,0)/Extra/SMBIOS.plist). + + SMBIOSdefaults=No Don't use the Default values for SMBIOS overriding + if smbios.plist doesn't exist, factory + values are kept. + + "Scan Single Drive" Scan the drive only where the booter got loaded from. + =Yes|No Fix rescan pbs when using a DVD reader in AHCI mode. + Rescan=Yes Enable CD-ROM rescan mode. + "Rescan Prompt"=Yes Prompts for enable CD-ROM rescan mode. + SystemId= Set manually the system id UUID, + SMUUID in smbios config (reserved field) isn't used. + SystemType= Set the system type where n is between 0..6 + (default =1 (Desktop) + md0= Load raw img file into memory for use as XNU's md0 + ramdisk. /Extra/Postboot.img is used otherwise. Index: branches/ErmaC/package/doc/README =================================================================== --- branches/ErmaC/package/doc/README (revision 0) +++ branches/ErmaC/package/doc/README (revision 1346) @@ -0,0 +1,87 @@ + + Chameleon Boot Loader + ===================== + + What is it? + ----------- + + 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: + + + Features + -------- + + - Device Property Injection via device-properties string in com.apple.Boot.plist + - hybrid boot0+boot1h loaders for both MBR and GPT partitioned disks. + - automatic FSB detection code even for recent AMD CPUs. + - Apple Software RAID support. + - stage2 loader (boot) can be placed as a regular file in the boot + partition's root folder. + + + Installation + ============ + + Normal Install (non-RAID): + -------------------------- + + Suppose that your installation is on /dev/disk0s2 + + - Install boot0 to the MBR: + sudo ./fdisk440 -f boot0 -u -y /dev/rdisk0 + + - Install boot1h to the partition's bootsector: + sudo dd if=boot1h of=/dev/rdisk0s2 + + - Install boot to the partition's root directory: + sudo cp boot / + + No need to use startupfiletool anymore! + + + RAID Install: + ------------- + + Suppose that your installation is on /dev/disk3, which is either a mirror- or a + stripeset consisting of /dev/disk0 and /dev/disk1 + + Mac OS X creates a small helper partition at the end of each RAID member disk, + namely /dev/disk0s3 and /dev/disk1s3 + + - Install boot0 to the MBR of both disks: + sudo ./fdisk440 -f boot0 -u -y /dev/rdisk0 + sudo ./fdisk440 -f boot0 -u -y /dev/rdisk1 + + - Install boot1h to the bootsector of each boot partition: + sudo dd if=boot1h of=/dev/rdisk0s3 + sudo dd if=boot1h of=/dev/rdisk1s3 + + - Install boot to both helper partition's root directories. + diskutil mount disk0s3 + cp boot /Volumes/Boot\ OSX + diskutil unmount disk0s3 + diskutil mount disk1s3 + cp boot /Volumes/Boot\ OSX + diskutil unmount disk1s3 + + Support: + -------- + + If you have any questions, issues etc. feel free to join us + at irc.voodooprojects.org #chameleon + + + Source Code + ----------- + + For downloading the source code please visit the project page at + http://chameleon.osx86.hu + + + Licensing + --------- + + Chameleon is released under the terms and conditions of + Apple Public Source License (see APPLE_LICENSE). Index: branches/ErmaC/package/smbios.plist =================================================================== --- branches/ErmaC/package/smbios.plist (revision 0) +++ branches/ErmaC/package/smbios.plist (revision 1346) @@ -0,0 +1,61 @@ + + + + + SMbiosversion + MP31.88Z.00C1.B00.0802091544 + SMmanufacturer + Apple Inc. + SMproductname + MacPro3,1 + SMsystemversion + 1.0 + SMserial + W87234JHYA4 + SMexternalclock + 333 + SMmaximalclock + 3000 + SMmemtype + 19 + SMmemspeed + 800 + SMmemmanufacturer_1 + 0xAD00000000000000 + SMmemserial_1 + 0x00001020 + SMmempart_1 + 0x48594D503131325336344350362D59352020 + SMmemmanufacturer_2 + 0xAD00000000000000 + SMmemserial_2 + 0x00003021 + SMmempart_2 + 0x48594D503131325336344350362D59352020 + SMmemmanufacturer_3 + 0xAD00000000000000 + SMmemserial_3 + 0x00003021 + SMmempart_3 + 0x48594D503131325336344350362D59352020 + SMmemmanufacturer_4 + 0xAD00000000000000 + SMmemserial_4 + 0x00003021 + SMmempart_4 + 0x48594D503131325336344350362D59352020 + + + Index: branches/ErmaC/package/Configuration/SMBIOSDefault/smbios.plist =================================================================== --- branches/ErmaC/package/Configuration/SMBIOSDefault/smbios.plist (revision 0) +++ branches/ErmaC/package/Configuration/SMBIOSDefault/smbios.plist (revision 1346) @@ -0,0 +1,38 @@ + + + + + SMbiosdate + 20/08/2008 + SMbiosversion + IM71.88Z.007A.B03.0803051705 + SMcputype + 1281 + SMexternalclock + 1,33 + SMfamily + iMac + SMmanufacter + Apple Inc. Mac-F2268CC8 + SMmaximalclock + 2,50 + SMmemmanufacter_1 + Team Elite + SMmemmanufacter_2 + Team Elite + SMmempart_1 + 50M3P4R7 + SMmempart_2 + 50M3P4R7 + SMmemserial_1 + 50M353R14L + SMmemserial_2 + 50M353R14L + SMproductname + iMac7,1 + SMserial + YM90295599X + SMsystemversion + 1.0 + + Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/MacOS/Chameleon =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/MacOS/Chameleon ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Info.plist =================================================================== --- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Info.plist (revision 0) +++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Info.plist (revision 1346) @@ -0,0 +1,36 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDisplayName + + CFBundleExecutable + Chameleon + CFBundleIconFile + Chameleon.icns + CFBundleIdentifier + com.chameleon.Chameleon + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Chameleon + CFBundlePackageType + BNDL + CFBundleShortVersionString + 2.0 + CFBundleSignature + ???? + CFBundleVersion + 2.0.0 RC5 + NSMainNibFile + Chameleon + NSPrefPaneIconFile + Chameleon.tiff + NSPrefPaneIconLabel + Chameleon + NSPrincipalClass + ChameleonPrefPane + + Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/footer.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/footer.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/gfxutil =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/gfxutil ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Linux.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Linux.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Chameleon.icns =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Chameleon.icns ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CDROM.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CDROM.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/getDevProp.sh =================================================================== --- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/getDevProp.sh (revision 0) +++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/getDevProp.sh (revision 1346) @@ -0,0 +1,38 @@ +#!/bin/sh + +# getDevProp.sh +# smbios-cham +# +# Created by ronan & thomas on 12/08/09. +# Copyright 2009 org.darwinx86.app. All rights reserved. +# adapted for Chameleon control panel use by Rekursor +# +# Directories +cdir=`dirname $0` +tmpDir=/tmp/Chameleon +dmpdir=${tmpDir}/devprop + +# Create a dump directory +if [[ ! -d $dmpdir ]];then + mkdir -p $dmpdir +fi +if [[ ! -d $tmpDir ]];then + mkdir -p $tmpDir +fi +# Dump Device properties +ioreg -lw0 -p IODeviceTree -n efi -r -x |grep device-properties | sed 's/.*.*//;' | cat > $dmpdir/chameleon-devprop.hex + +$cdir/gfxutil -s -n -i hex -o xml $dmpdir/chameleon-devprop.hex $dmpdir/chameleon-devprop.plist + + +# Splash the result up !! +open $dmpdir/chameleon-devprop.plist +if [[ ! -d $dmpdir ]];then + rm -r $dmpdir +fi +if [[ ! -d $tmpDir ]];then + rm -r $tmpDir +fi + +#end +#echo $? \ No newline at end of file Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/getDevProp.sh ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/plug.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/plug.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Chameleon.nib =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Chameleon.nib ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Chameleon.strings =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Chameleon.strings ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Localizable.strings =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Localizable.strings ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cham.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cham.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CREDITS =================================================================== --- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CREDITS (revision 0) +++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CREDITS (revision 1346) @@ -0,0 +1,17 @@ +Initial Conception & Design: +--------------------------- +Rekursor + +Crew Members +---------- +Rekursor, DieBuche + +Contributors & Testers: +--------------------- +BlackOSX, MasterChief, digital_dreamer, smith@@, scrax, quinielascom + +Chameleon also reuses: +--------------------- +Courtesy of Ronan (Lizard): +Existing scripts and gfxutil tool from Lizard available at: +http://code.google.com/p/lizard-app/ \ No newline at end of file Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Chameleon.nib =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Chameleon.nib ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Chameleon.strings =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Chameleon.strings ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Localizable.strings =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Localizable.strings ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/syringe.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/syringe.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cdBootCreator.sh =================================================================== --- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cdBootCreator.sh (revision 0) +++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cdBootCreator.sh (revision 1346) @@ -0,0 +1,104 @@ +#!/bin/sh + +# Copyright 2009 org.darwinx86.app. All rights reserved. + +# Directories +extra=/tmp/isodir +mydir=`dirname $0` +tempDir=/tmp +finaldir=~/Desktop +isodir=/tmp/newiso +extradir=/tmp/newiso/Extra +preDir=/tmp/newiso/Extra/Preboot/ +prebootDir=/tmp/newiso/Extra/Preboot/Extra +backDir=~/Desktop/Lizard +bkpdir=~/Desktop/Lizard/Previous-dmg + +echo "Starting script..." + +#errors +if ([ ! -f $extra/Extensions.mkext ] && [ ! -d $extra/Extensions ]);then + echo "- Error: no Extensions.mkext or Extensions folder. One of them is required" + echo " ------------------------" + exit +fi + +if [ ! -f $extra/com.apple.Boot.plist ];then + echo "- Error: no com.apple.boot.plist found. File required" + echo " ------------------------" + exit +fi +if [ ! -f $extra/cdboot ];then + echo "- Error: no cdboot found. File required" + echo " ------------------------" + exit +fi + +# Create a work directory +echo " - temps folders created" +echo " - Checking files" +#copy Extra files to temp directory +if [ -f $extra/cdboot ];then + cp -R $extra/cdboot $isodir +fi + +if [ -f $extra/dsdt.aml ];then + cp -R $extra/dsdt.aml $prebootDir +fi + +if [ -f $extra/DSDT.aml ];then + cp -R $extra/DSDT.aml $prebootDir +fi + +if [ -f $extra/NVIDIA.ROM ];then + cp -R $extra/NVIDIA.ROM $prebootDir +fi + +if [ -f $extra/smbios.plist ];then + cp -R $extra/smbios.plist $prebootDir +fi + +if [ -f $extra/Extensions.mkext ];then + cp -R $extra/Extensions.mkext $prebootDir +fi + +if [ -d $extra/Extensions ];then + cp -Rp $extra/Extensions $prebootDir +fi + +if [ -f $extra/com.apple.Boot.plist ];then + cp -R $extra/com.apple.Boot.plist $prebootDir +fi +if [ -f $tempDir/com.apple.Boot.plist ];then + cp -R $tempDir/com.apple.Boot.plist $extradir +fi + +echo "- Files copied in temp folder" + +# ramdisk creator +hdiutil create -srcfolder $preDir/ -layout GPTSPUD -fs HFS+ -format UDRW -volname Preboot $extradir/Preboot.dmg +rm -R $preDir +echo " - ram disk created" + +# boot cd creator +hdiutil makehybrid -o BootCD.iso $isodir/ -iso -hfs -joliet -eltorito-boot $isodir/cdboot -no-emul-boot -hfs-volume-name "Boot CD" -joliet-volume-name "Boot CD" +echo " - hybrid image created" + +# Create output and backup directories +if [ -f $finaldir/BootCD.iso ];then + if [ ! -d $bkpdir ];then + mkdir $backDir + mkdir $bkpdir + echo " - backup folder created" + fi + mv -f $finaldir/BootCD.iso $bkpdir/BootCd-$(date +"%d-%y-%Hh%M").iso + echo " - previous ISO moved into backup folder" +fi +mv BootCD.iso $finaldir +echo " - ISO moved on desktop" + +# cleanup +echo " - Perform cleaning" +echo " - ISO created succefully" +echo " ------------------------" +exit 0 \ No newline at end of file Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cdBootCreator.sh ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/chip.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/chip.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Chameleon.nib =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Chameleon.nib ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Chameleon.strings =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Chameleon.strings ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Localizable.strings =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Localizable.strings ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CHANGES =================================================================== --- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CHANGES (revision 0) +++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CHANGES (revision 1346) @@ -0,0 +1,47 @@ +- Added About Dialog, made the displayed version numbers all rely on the info.plist file +- Fixed refresh and on checked associated button state, made sure the string is disabled if value is 0 +- Fixed crash when using swap hd 0<->2 +- Added a new option type (OptionFileString) that features an open dialog box to open files +- Added few Combo boxes to simplify text inputs +- Added Missing ForceHPET option and Theme options +- Added a new SMBIOS panel only opening a file (in construction) +- Added new EFI Injection panel +- Added PciRoot, GUI boot options +- Added scrax to credits: thx for testing the Chameleon PrefPane! +- Create a makebin script (to enhance) that creates zip archives and sets a version + in the bin dir +- Fixed default value to Yes not included in the boot config would not be checked + by default in interface +- Added RestartFix boot option +- Added forceBootConfigPath to the tabview panel for quicker setup, so now no + need to edit the preferences file manually. +- Added SystemId +- Added full bootOptions loading into the interface with no custom code needed, + all loading features are implemented in base class PreferencesControllerBase, + with the automatic parser engine. +- Implemented the bootOption automatic and generic parsing engine. + Now any option is parsed from bootFile automatically (incl. defaults) + thanks to the underlying engine based on a dynamically constructed + id to desc map and also to the group panel registration init process +- Fixed dmg archives would appear in dynamic partition listing +- Added FREEZE (lock) features, see README. +- Refined cosmetics for the GUI +- Added images icon on the first column of each partition entries +- Added APSL and README for instructions +- Added swap disk (01 and 02) fixes +- Added Rename and Hide display from bootConfig +- Fixed 10.5 and 10.6 would crash because of memory references erased +- Added more bootConfig paths and an option to force it + (i.e:if not found automatically) +- Added new paths for bootConfig search now looking in this order: + "/", + "/Extra/", + "/Volumes/EFI/Extra/", + "/Volumes/Cham/Extra/", + "/Volumes/BootLoaders/Extra/", + "/Library/Preferences/SystemConfiguration/", +- Change the restart by replacing the internal reboot shell cmd by an applescript + eq. to the AppleMenu/Restart command +- Fixed nib file loading and initialization problem, possibly fixes the lock pb as well? +- Added Apple_Free filter to filter these free partitions + Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/wrench.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/wrench.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Windows.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Windows.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/MacOSX.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/MacOSX.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/InfoPlist.strings =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/InfoPlist.strings ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Chameleon.nib =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Chameleon.nib ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Chameleon.strings =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Chameleon.strings ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Localizable.strings =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Localizable.strings ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/extractAcpi.sh =================================================================== --- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/extractAcpi.sh (revision 0) +++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/extractAcpi.sh (revision 1346) @@ -0,0 +1,40 @@ +#/bin/sh +set -e +set -u +ACPI_DIR="${HOME}/Desktop/ACPI" +ioreg= +if [[ $# -eq 1 && -f "$1" ]]; then + ioreg="$(grep ' "ACPI Tables" =' "$1")" +else + ioreg="$(ioreg -lw0 | grep ' "ACPI Tables" =')" +fi + +ioreg=${ioreg#*\{} +ioreg=${ioreg%\}*} + +declare -a tables +ioreg="${ioreg//,/ }" + +tables=($ioreg) + +echo "Number of ACPI tables: ${#tables[@]}" +re='"([^"]+)"=<([^>]+)>' +dumped=0 +for t in "${tables[@]}"; do + #echo Table: $t + if [[ $t =~ $re ]]; then + [[ $dumped = 0 ]] && mkdir -p ${ACPI_DIR} + ((++dumped)) + echo + echo "Dumping table: ${BASH_REMATCH[1]}" + #echo "Content: ${BASH_REMATCH[2]}" + echo "${BASH_REMATCH[2]}" | xxd -r -p > "${ACPI_DIR}/${BASH_REMATCH[1]}".aml + echo "AML code dumped to \"${ACPI_DIR}/${BASH_REMATCH[1]}.aml\"" + type -p iasl &>/dev/null && iasl -d "${ACPI_DIR}/${BASH_REMATCH[1]}".aml \ + && echo "DSL code decompiled to \"${ACPI_DIR}/${BASH_REMATCH[1]}.dsl\"" + echo + fi +done +#if [[ $dumped -gt 0 ]]; then +# zip -r ACPI.zip ACPI && echo "Zipped your ACPI tables in file \"ACPI.zip\"" +#fi Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/extractAcpi.sh ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Chameleon.tiff =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Chameleon.tiff ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/chamsmall.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/chamsmall.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/version =================================================================== --- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/version (revision 0) +++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/version (revision 1346) @@ -0,0 +1 @@ +2.0-RC4 Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/advanced.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/advanced.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Chameleon.nib =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Chameleon.nib ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Chameleon.strings =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Chameleon.strings ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Localizable.strings =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Localizable.strings ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/flag.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/flag.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/README =================================================================== --- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/README (revision 0) +++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/README (revision 1346) @@ -0,0 +1,35 @@ +----------------------------------- +Chameleon System Preferences panel +by rekursor 1/17/2010 +----------------------------------- + +How to Install: + Double click on the panel file to install the resource + +Configuration: + The persistent configuration file is a all users level preferences property list + located in In /Library/Preferences/com.chameleon.prefPane.plist. + + The swap disk fix option might be use if your disk order from chameleon is different + from what diskutil list returns. + Ideally we should not need this fix, but as for now, I don't know another way to do it + + In /Library/Preferences/com.chameleon.prefPane.plist: + you can insert a 'forceBootConfigPath' key with your com.apple.Boot,plist file path: + So if automatic detection does not work, then force your com.apple.Boot.plist path here. + + Freeze Partitions (lock the partition list and prevent autodetection to happen) + You can also decide to freeze the partitions to prevent automatic detection, + if disk order is not matching after the boot or if you don't want the list to change + each time that a usb key is inserted, then use this feature. + For it to work, you will need first to click on: + Settings/Boot Selector Fixes/Inject Parts In Freeze File + Then all your automatically detected current partitions are injected in the pref. file, + all you need to do is to manually edit them to change their disk id/partition id + (2 first parameters in the pref. file under the partitionList key) + +Troubleshooting + If the panel sees your com.apple.boot.plist in the status box, but the boot selection + seem to have no effect, it might be that you have more than one bootConfig file + and that the chameleon booter does not load the one that the panel selected, + see upper to force the bootConfig to match the one loaded by the chameleon booter. Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/background.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/background.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/name.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/name.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/TODO =================================================================== --- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/TODO (revision 0) +++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/TODO (revision 1346) @@ -0,0 +1,10 @@ +Future version (codename: Gandalf) Plans +---------------------------------------- +Implement most if not all of the Chameleon bootConfig parameters in the table view of the current prefpane : let the Magic happening ! + +Current versions todo list +-------------------------- + - Add WebView in About Panel for nicer Kredits. + - Don't filter out soft-raids, which only have a disk identifier & no partition number + - Try to investigate if there is a better way to get the partition list + (currently done with diskutil list) probably with Chameleon booter RC6. Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/disk.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/disk.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Scripts/Standard/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Standard/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Standard/postinstall (revision 1346) @@ -0,0 +1,364 @@ +#!/bin/bash + + +diskloader="boot0" +diskloaderdualboot="boot0md" +partitionloaderhfs="boot1h" +partitionloaderfat="boot1f32" +filesystemloader="boot" + +diskmicrocodetype[1]="GRUB,47525542" +diskmicrocodetype[2]="LILO,4c494c4f" + +start () +{ +# $1 volume + +bootvolume="${@}" +echo "Volume is $bootvolume" +bootresources="${0%/*}" +echo "$bootresources" + +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 "===============================================" +echo "Installer Variables:" +echo "********************" +echo "bootvolume: Volume is ${bootvolume}" +echo "bootdev: Volume device is ${bootdev}" +echo "bootrdev: Volume raw device is ${bootrdev}" +echo "bootslice: Volume slice is ${bootslice}" +echo "bootdisk: Disk device is ${bootdisk}" +echo "bootrdisk: Disk raw device is ${bootrdisk}" +echo "diskloader: Disk loader is ${diskloader}" +echo "partitionloaderhfs: Partition loader is ${partitionloaderhfs}" +echo "partitionloaderfat: Partition loader is ${partitionloaderfat}" +echo "filesystemloader: Filesystem loader is ${filesystemloader}" +echo "bootresources: Boot Resources is ${bootresources}" +echo "-----------------------------------------------" +echo "" +echo "" +} + +checkdiskmicrocodetype () +{ +echo "===============================================" +echo "Diskmicrocodetype:" +echo "******************" + +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." + else + echo "Didn't find a match for ${diskmicrocodetype[${diskmicrocodetypecounter}]%,*}" + fi +done +echo "-----------------------------------------------" +echo "" +echo "" +} + + + +checkdiskmicrocode () +{ +echo "===============================================" +echo "Diskmicrocode:" +echo "*************" + +# Note: The checks for Boot0 and Boot0hfs assume the code doesn't change!! + +# 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 ) + +#echo "${diskmicrocode}" + +if [ $( echo "${diskmicrocode}" | awk -F0 '{print NF-1}' ) = 874 ]; then + echo "Diskmicrocode = 874 (Which means the first 437 bytes of the MBR Disk Sector is blank)" + if [ "${1}" = "set" ]; then + echo "No disk microcode found. Updating." + diskupdate=true + echo "diskupdate is now set to true." + else + echo "No disk microcode found." + fi +else + # There is already something on the MBR + if [ ${1} = set ]; then + + # See if a Windows bootloader already exists + windowsloader=$( dd 2>/dev/null if=${bootdisk} count=4 bs=1 | xxd | awk '{print $2$3}' ) + if [ "${windowsloader}" == "33c08ed0" ] ; then + echo "Found existing Windows Boot Loader" + echo "Will replace loader with Boot0hfs" + diskupdate=true + echo "diskupdate is now set to true." + fi + + # See if a Chameleon stage0 boot file already exists + stage0type=$( dd 2>/dev/null if=${bootdisk} count=3 bs=1 skip=105 | xxd | awk '{print $2$3}' ) + if [ "${stage0type}" == "0b807c" ] || [ "${stage0type}" == "0a803c" ] ; then + + echo "Found existing Chameleon Stage 0 Loader" + # if found Boot0HFS without a Windows installation set diskupdate to true + if [ "${stage0type}" == "0b807c" ] && [ "${disksignature}" == "00000000" ]; then + echo "Found existing Chameleon Boot0HFS without a Windows installation" + echo "Will replace loader with Boot0" + diskupdate=true + echo "diskupdate is now set to true." + fi + + # if found Boot0 with a Windows installation set diskupdate to true + if [ "${stage0type}" == "0a803c" ] && [ "${disksignature}" != "00000000" ]; then + echo "Found existing Chameleon Boot0 with a Windows installation" + echo "Will replace loader with Boot0hfs" + diskupdate=true + echo "diskupdate is now set to true." + fi + fi + + # If neither a Windows or Chameleon Boot Loader exists + if [ "${stage0type}" != "0b807c" ] && [ "${stage0type}" != "0a803c" ] && [ "${windowsloader}" != "33c08ed0" ] ; then + test=$(echo "${diskmicrocode}" | awk -F0 '{print NF-1}' ) + echo "Disk microcode found: ${test} - Preserving." + echo "diskupdate is left at false" + fi + else + test=$(echo "${diskmicrocode}" | awk -F0 '{print NF-1}' ) + echo "Disk microcode found: ${test}" + fi + echo "Disk microcode MD5 is ${diskmicrocodemd5}" +fi +echo "-----------------------------------------------" +echo "" +echo "" +} + + +checkdisksignature () +{ +echo "===============================================" +echo "Find Disk Signature:" +echo "*************" + +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}' ) + +echo "${disksignature}" + +if [ $disksignature = "00000000" ]; then + echo "Just Zero's found meaning Windows isn't installed." +else + echo "Non Zero means we've found a Windows installation" +fi +echo "-----------------------------------------------" +echo "" +echo "" +} + + + +checkpartitionbootcode () +{ +echo "===============================================" +echo "Find Partition Bootcode:" +echo "************************" + +# 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}' ) + +echo "${partitionbootcode}" + +if [ $( echo "${partitionbootcode}" | awk -F0 '{print NF-1}' ) = 1024 ]; then + echo "partitionbootcode = 1024 (Which means the whole 512 bytes of the MBR Disk Sector is blank)" + 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 + +echo "-----------------------------------------------" +echo "" +echo "" +} + + +start ${3} + + +echo "===============================================" +echo "Check the format of the selected partition" +echo "*************************************" + +if [ "$( fstyp ${bootdev} | grep hfs )" ]; then + echo "${bootdev} is a currently formatted as HFS" + efiformat="hfs" +fi +if [ "$( fstyp ${bootdev} | grep msdos )" ]; then + echo "${bootdev} is currently formatted as msdos" + efiformat="msdos" +fi +echo "-----------------------------------------------" +echo "" +echo "" + + +echo "===============================================" +echo "Determine Partition Scheme:" +echo "***************************" + +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 + echo "Found System ID 'EE' to identify GPT Partition" + if [ "${partitiontable:40:2}" == "00" ] && [ "${partitiontable:72:2}" == "00" ] && [ "${partitiontable:104:2}" == "00" ]; then + echo "Found System ID '00' for each remaining possible partition" + partitiontable="GPT" + else + partitiontable="GPT/MBR" + fi + fi +else + partitiontable="MBR" +fi + +echo "${partitiontable} found." +echo "-----------------------------------------------" +echo "" +echo "" + + +diskupdate=false + + +checkdisksignature +checkdiskmicrocodetype +checkdiskmicrocode set +checkpartitionbootcode set + + + +echo "===============================================" +echo "Can we install the Chameleon bootloader files?" +echo "**********************************************" + +if ${diskupdate}; then + echo "Diskupdate = true, so yes" + #--------------------------------------------------------------------- + # Check bytes 438-446 of the GPTdiskProtectiveMBR for a Windows Disk Signature + # If thereÕs no Windows disk signature then we can write boot0 + #--------------------------------------------------------------------- + + if [ ${disksignature} == "00000000" ]; then + echo "Executing command: fdisk440 -u -f /usr/standalone/i386/${diskloader} -y ${bootdisk}" + fdisk440 -u -f "${bootvolume}/usr/standalone/i386/${diskloader}" -y ${bootdisk} + else + #--------------------------------------------------------------------- + # If it exists then Windows is also installed on the HDD and we need to write boot0hfs + #--------------------------------------------------------------------- + echo "Executing command: fdisk440 -u -f /usr/standalone/i386/${diskloaderdualboot} -y ${bootdisk}" + fdisk440 -u -f "${bootvolume}/usr/standalone/i386/${diskloaderdualboot}" -y ${bootdisk} + fi +else +echo "Diskupdate is false, so no stage 0 file was written" +fi + +if [ ${efiformat} = "hfs" ]; then + echo "Executing command: dd if=/usr/standalone/i386/${partitionloaderhfs} of=${bootrdev}" + dd if="${bootvolume}/usr/standalone/i386/${partitionloaderhfs}" of=${bootrdev} +fi + +if [ ${efiformat} = "msdos" ]; then + echo "Executing command: dd if=/usr/standalone/i386/${partitionloaderfat} of=${bootrdev}" + dd if="${bootvolume}/usr/standalone/i386/${partitionloaderfat}" of=${bootrdev} +fi + +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}" + +echo "-----------------------------------------------" +echo "" +echo "" + + +echo "===============================================" +echo "Set Active Partition ONLY if Windows is not installed" +echo "*****************************************************" + +if [ ${disksignature} == "00000000" ]; then + # echo "Windows is not installed so let's change the active partition" + + partitionactive=$( fdisk440 -d ${bootrdisk} | grep -n "*" | awk -F: '{print $1}') + echo "Current Active Partition: ${partitionactive}" + + if [ "${partitionactive}" = "${bootslice}" ]; then + echo "${bootvolume} is already flagged as active" + else + echo "${bootvolume} is not flagged as active, so let's do it." + # BadAxe requires EFI partition to be flagged active. + # but it doesn't' hurt to do it for any non-windows partition. + + fdisk440 -e ${bootrdisk} <<-MAKEACTIVE + print + flag ${bootslice} + write + y + quit + MAKEACTIVE + fi +else + echo "Windows is installed so we let that remain the active partition" +fi +echo "-----------------------------------------------" +echo "" +echo "" + +# hide boot file +chflags hidden "${3}/boot" +echo "boot file hidden ${3}/boot" + +exit Property changes on: branches/ErmaC/package/Scripts/Standard/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/EFI/postinstall =================================================================== --- branches/ErmaC/package/Scripts/EFI/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/EFI/postinstall (revision 1346) @@ -0,0 +1,436 @@ +#!/bin/bash + +diskloader="boot0" +partitionloaderhfs="boot1h" +partitionloaderfat="boot1f32" +filesystemloader="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 "===============================================" +echo "Partition Type Identified:" +echo "**************************" +echo "GPT found." +echo "-----------------------------------------------" +echo "" +echo "" + + +echo "===============================================" +echo "Installer Variables Part 1:" +echo "***************************" +echo "OS X Volume is ${osxvolume}" +echo "OX X Volume device is ${bootdev}" +echo "OS X Volume UUID is ${bootuuid}" +echo "-----------------------------------------------" +echo "" +echo "" + + +bootvolume="/Volumes/$bootervolumename" +bootdev=${bootdev%s*}s1 +bootrdev=${bootdev/disk/rdisk} +bootdisk=${bootdev%s*} +bootrdisk=${bootdisk/disk/rdisk} +bootslice=${bootdev#*disk*s} + +echo "===============================================" +echo "Installer Variables Part 2:" +echo "***************************" +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 normal is ${diskloader}" +echo "Disk loader dual boot is also ${diskloader}" +echo "Partition loader HFS is ${partitionloaderhfs}" +echo "Partition loader FAT is ${partitionloaderfat}" +echo "Filesystem loader is ${filesystemloader}" +echo "-----------------------------------------------" +echo "" +echo "" + + +checkdiskmicrocodetype () +{ +echo "===============================================" +echo "Diskmicrocodetype:" +echo "******************" + +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." + else + echo "Didn't find a match for ${diskmicrocodetype[${diskmicrocodetypecounter}]%,*}" + fi +done +echo "-----------------------------------------------" +echo "" +echo "" +} + + +checkdiskmicrocode () +{ +echo "===============================================" +echo "Diskmicrocode:" +echo "*************" + +# Note: The checks for Boot0 and Boot0hfs assume the code doesn't change!! + +# 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 + echo "Diskmicrocode = 874 (Which means the first 437 bytes of the MBR Disk Sector is blank)" + if [ "${1}" = "set" ]; then + echo "No disk microcode found. Updating." + diskupdate=true + echo "diskupdate is now set to true." + else + echo "No disk microcode found." + fi +else + # There is already something on the MBR + if [ ${1} = set ]; then + + # See if a Windows bootloader already exists + windowsloader=$( dd 2>/dev/null if=${bootdisk} count=4 bs=1 | xxd | awk '{print $2$3}' ) + if [ "${windowsloader}" == "33c08ed0" ] ; then + echo "Found existing Windows Boot Loader" + echo "Will replace loader with Boot0hfs" + diskupdate=true + echo "diskupdate is now set to true." + fi + + # See if a Chameleon stage0 boot file already exists + stage0type=$( dd 2>/dev/null if=${bootdisk} count=3 bs=1 skip=105 | xxd | awk '{print $2$3}' ) + if [ "${stage0type}" == "0b807c" ] || [ "${stage0type}" == "0a803c" ] ; then + + echo "Found existing Chameleon Stage 0 Loader" + # if found Boot0HFS without a Windows installation set diskupdate to true + if [ "${stage0type}" == "0b807c" ] && [ "${disksignature}" == "00000000" ]; then + echo "Found existing Chameleon Boot0HFS without a Windows installation" + echo "Will replace loader with Boot0" + diskupdate=true + echo "diskupdate is now set to true." + fi + + # if found Boot0 with a Windows installation set diskupdate to true + if [ "${stage0type}" == "0a803c" ] && [ "${disksignature}" != "00000000" ]; then + echo "Found existing Chameleon Boot0 with a Windows installation" + echo "Will replace loader with Boot0hfs" + diskupdate=true + echo "diskupdate is now set to true." + fi + fi + + # If neither a Windows or Chameleon Boot Loader exists + if [ "${stage0type}" != "0b807c" ] && [ "${stage0type}" != "0a803c" ] && [ "${windowsloader}" != "33c08ed0" ] ; then + test=$(echo "${diskmicrocode}" | awk -F0 '{print NF-1}' ) + echo "Disk microcode found: ${test} - Preserving." + echo "diskupdate is left at false" + fi + else + test=$(echo "${diskmicrocode}" | awk -F0 '{print NF-1}' ) + echo "Disk microcode found: ${test}" + fi +fi +echo "-----------------------------------------------" +echo "" +echo "" +} + + +checkdisksignature () +{ +echo "===============================================" +echo "Find Disk Signature:" +echo "*************" +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}' ) + +echo "${disksignature}" + +if [ $disksignature = "00000000" ]; then + echo "Just Zero's found meaning Windows isn't installed." +else + echo "Non Zero means we've found a Windows installation" +fi +echo "-----------------------------------------------" +echo "" +echo "" +} + + +checkpartitionbootcode () +{ +echo "===============================================" +echo "Find Partition Bootcode:" +echo "************************" + +# 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 + echo "partitionbootcode = 1024 (Which means the whole 512 bytes of the MBR Disk Sector is blank)" + 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 +echo "-----------------------------------------------" +echo "" +echo "" +} + + +} + + +start ${3} + + +echo "===============================================" +echo "Unmount all EFI partitions and Check their format" +echo "*************************************" + +# loop through and un-mount all mounted EFI partitions - Thanks kizwan +attempts=1 +while [ "$( df | grep EFI )" ] && [ "${attempts}" -lt 5 ]; do + echo "Unmounting $( df | grep EFI | awk '{print $1}' )" + umount -f $( df | grep EFI | awk '{print $1}' ) + attempts=$(( ${attempts} + 1 )) +done +if [ ${attempts} = 5 ]; then + echo "failed to unmount EFI partitions." + exit +fi + +if [ "$( fstyp ${bootdev} | grep hfs )" ]; then + echo "${bootdev} is a currently formatted as HFS" + efiformat="hfs" +fi +if [ "$( fstyp ${bootdev} | grep msdos )" ]; then + echo "${bootdev} is currently formatted as msdos" + efiformat="msdos" +fi +echo "-----------------------------------------------" +echo "" +echo "" + + +diskupdate=false + + +checkdisksignature +checkdiskmicrocodetype +checkdiskmicrocode set +checkpartitionbootcode set +#checkpartitionactive + + +echo "===============================================" +echo "Can we install the Chameleon bootloader files?:" +echo "**********************************************" + +if ${diskupdate}; then + echo "Diskupdate = true, so yes" + #--------------------------------------------------------------------- + # Check bytes 438-446 of the GPTdiskProtectiveMBR for a Windows Disk Signature + # If thereÕs no Windows disk signature then we can write boot0 + #--------------------------------------------------------------------- + + if [ ${disksignature} == "00000000" ]; then + echo "Executing command: fdisk -u -f ${diskloader} -y ${bootdisk}" + fdisk -u -f "${osxvolume}/${diskloader}" -y ${bootdisk} + else + #--------------------------------------------------------------------- + # If it exists then Windows is also installed on the HDD and we need to write boot0hfs + #--------------------------------------------------------------------- + + echo "Executing command: fdisk -u -f ${diskloader} -y ${bootdisk}" + fdisk -u -f "${osxvolume}/${diskloader}" -y ${bootdisk} + fi +else + echo "Diskupdate is false, so no stage 0 file was written" +fi + + +#echo "Executing command: dd if=${partitionloader} of=${bootrdev}" +#dd if="${osxvolume}/${partitionloader}" of=${bootrdev} + +echo "Prepare Stage 1 loader" + +echo "Executing command: dd if=${bootrdev} count=1 bs=512 of=/tmp/origbs" +dd if=${bootrdev} count=1 bs=512 of=/tmp/origbs + +if [ ${efiformat} = "hfs" ]; then + echo "Executing command: cp ${osxvolume}/${partitionloaderhfs} /tmp/newbs" + cp "${osxvolume}/${partitionloaderhfs}" /tmp/newbs +fi + +if [ ${efiformat} = "msdos" ]; then + echo "Executing command: cp ${osxvolume}/${partitionloaderfat} /tmp/newbs" + cp "${osxvolume}/${partitionloaderfat}" /tmp/newbs +fi + +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 "Write Stage 1 loader" + +echo "Executing command: dd of=${bootrdev} count=1 bs=512 if=/tmp/newbs" +dd if=/tmp/newbs of=${bootrdev} count=1 bs=512 + +echo "-----------------------------------------------" +echo "" +echo "" + + +echo "===============================================" +echo "Set Active Partition ONLY if Windows is not installed:" +echo "*****************************************************" + +# 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 + +if [ ${disksignature} == "00000000" ]; then + # echo "Windows is not installed so let's change the active partition" + + partitionactive=$( fdisk -d ${bootrdisk} | grep -n "*" | awk -F: '{print $1}') + echo "Current Active Partition: ${partitionactive}" + + if [ "${partitionactive}" = "${bootslice}" ]; then + echo "${bootvolume} is already flagged as active" + else + echo "${bootvolume} is not flagged as active, so let's do it." + # BadAxe requires EFI partition to be flagged active. + # but it doesn't' hurt to do it for any non-windows partition. + + fdisk -e ${bootrdisk} <<-MAKEACTIVE + print + flag ${bootslice} + write + y + quit + MAKEACTIVE + fi +else + echo "Windows is installed so we let that remain the active partition" +fi +echo "-----------------------------------------------" +echo "" +echo "" + + +#checkdiskmicrocode check +#checkdisksignature +#checkpartitionbootcode check +#checkpartitionactive + + +echo "===============================================" +echo "Mount EFI partition:" +echo "********************" +if [ ${efiformat} = "hfs" ]; then + [ -d "${bootvolume}" ] || mkdir -p "${bootvolume}" + echo "Executing command: mount_hfs -u 0 -g 0 ${bootdev} ${bootvolume}" + mount_hfs -u 0 -g 0 "${bootdev}" "${bootvolume}" +else + [ -d "${bootvolume}" ] || mkdir -p "${bootvolume}" + echo "Executing command: mount_msdos -u 0 -g 0 ${bootdev} ${bootvolume}" + mount_msdos -u 0 -g 0 "${bootdev}" "${bootvolume}" +fi +echo "-----------------------------------------------" +echo "" +echo "" + + +echo "===============================================" +echo "Write Stage 2 loader" +echo "********************" + +echo "Executing command: cp ${osxvolume}${filesystemloader} ${bootvolume}/boot" +cp "${osxvolume}${filesystemloader}" "${bootvolume}/boot" +echo "boot written" + +echo "-----------------------------------------------" +echo "" +echo "" + +# setup link for extras +#echo "Executing command: ln -s /Volumes/${bootervolumename} ${2}/.Chameleon" +#ln -s "/Volumes/${bootervolumename}" "${2}/.Chameleon" +# setup link for extras + +exit Property changes on: branches/ErmaC/package/Scripts/EFI/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/ForceHPET/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/ForceHPET/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/ForceHPET/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add ForceHPET for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if ForceHPET has been written or not +ForceHPETCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written ForceHPET Yet + if "" in line and ForceHPETCheck == False: + line = " ForceHPET\n" + line += " Yes\n" + line += "\n" + ForceHPETCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/ForceHPET/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/EHCIacquire/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/EHCIacquire/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/EHCIacquire/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add EHCIacquire for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if EHCIacquire has been written or not +EHCIacquireCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written EHCIacquire Yet + if "" in line and EHCIacquireCheck == False: + line = " EHCIacquire\n" + line += " Yes\n" + line += "\n" + EHCIacquireCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/EHCIacquire/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/VBIOS/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/VBIOS/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/VBIOS/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add VBIOS for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if VBIOS has been written or not +VBIOSCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written VBIOS Yet + if "" in line and VBIOSCheck == False: + line = " VBIOS\n" + line += " Yes\n" + line += "\n" + VBIOSCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/VBIOS/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/GUI/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/GUI/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/GUI/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add GUI for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if GUI has been written or not +GUICheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written GUI Yet + if "" in line and GUICheck == False: + line = " GUI\n" + line += " No\n" + line += "\n" + GUICheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() \ No newline at end of file Property changes on: branches/ErmaC/package/Scripts/Advanced/GUI/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/SMBIOSdefaults/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/SMBIOSdefaults/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/SMBIOSdefaults/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add SMBIOSdefault for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if SMBIOSdefault has been written or not +SMBIOSdefaultCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written SMBIOSdefault Yet + if "" in line and SMBIOSdefaultCheck == False: + line = " SMBIOSdefault\n" + line += " Yes\n" + line += "\n" + SMBIOSdefaultCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/SMBIOSdefaults/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/UseMemDetect/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/UseMemDetect/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/UseMemDetect/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add UseMemDetect for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if UseMemDetect has been written or not +UseMemDetectCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written UseMemDetect Yet + if "" in line and UseMemDetectCheck == False: + line = " UseMemDetect\n" + line += " No\n" + line += "\n" + UseMemDetectCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/UseMemDetect/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/LegacyLogo/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/LegacyLogo/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/LegacyLogo/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add LegacyLogo for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if LegacyLogo has been written or not +LegacyLogoCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written LegacyLogo Yet + if "" in line and LegacyLogoCheck == False: + line = " LegacyLogo\n" + line += " Yes\n" + line += "\n" + LegacyLogoCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/LegacyLogo/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/Wake/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/Wake/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/Wake/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add Wake for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if Wake has been written or not +WakeCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written Wake Yet + if "" in line and WakeCheck == False: + line = " Wake\n" + line += " Yes\n" + line += "\n" + WakeCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/Wake/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/BootBanner/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/BootBanner/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/BootBanner/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add BootBanner for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if BootBanner has been written or not +BootBannerCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written BootBanner Yet + if "" in line and BootBannerCheck == False: + line = " BootBanner\n" + line += " No\n" + line += "\n" + BootBannerCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/BootBanner/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/UHCIreset/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/UHCIreset/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/UHCIreset/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add UHCIreset for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if UHCIreset has been written or not +UHCIresetCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written UHCIreset Yet + if "" in line and UHCIresetCheck == False: + line = " UHCIreset\n" + line += " Yes\n" + line += "\n" + UHCIresetCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/UHCIreset/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/ShowInfo/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/ShowInfo/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/ShowInfo/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add ShowInfo for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if ShowInfo has been written or not +ShowInfoCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written ShowInfo Yet + if "" in line and ShowInfoCheck == False: + line = " ShowInfo\n" + line += " No\n" + line += "\n" + ShowInfoCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() \ No newline at end of file Property changes on: branches/ErmaC/package/Scripts/Advanced/ShowInfo/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/Wait/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/Wait/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/Wait/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add Wait for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if Wait has been written or not +WaitCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written Wait Yet + if "" in line and WaitCheck == False: + line = " Wait\n" + line += " Yes\n" + line += "\n" + WaitCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/Wait/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/UseNvidiaROM/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/UseNvidiaROM/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/UseNvidiaROM/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add UseNvidiaROM for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if UseNvidiaROM has been written or not +UseNvidiaROMCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written UseNvidiaROM Yet + if "" in line and UseNvidiaROMCheck == False: + line = " UseNvidiaROM\n" + line += " Yes\n" + line += "\n" + UseNvidiaROMCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/UseNvidiaROM/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/ForceWake/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/ForceWake/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/ForceWake/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add ForceWake for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if ForceWake has been written or not +ForceWakeCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written ForceWake Yet + if "" in line and ForceWakeCheck == False: + line = " ForceWake\n" + line += " Yes\n" + line += "\n" + ForceWakeCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/ForceWake/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/UseAtiROM/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/UseAtiROM/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/UseAtiROM/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add UseAtiROM for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if UseAtiROM has been written or not +UseAtiROMCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written UseAtiROM Yet + if "" in line and UseAtiROMCheck == False: + line = " UseAtiROM\n" + line += " Yes\n" + line += "\n" + UseAtiROMCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/UseAtiROM/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Advanced/QuietBoot/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Advanced/QuietBoot/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Advanced/QuietBoot/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add QuietBoot for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if QuietBoot has been written or not +QuietBootCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written QuietBoot Yet + if "" in line and QuietBootCheck == False: + line = " QuietBoot\n" + line += " Yes\n" + line += "\n" + QuietBootCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Advanced/QuietBoot/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Post/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Post/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Post/postinstall (revision 1346) @@ -0,0 +1,40 @@ +#!/bin/sh +# +# $1: the full path to the installation package; for example: +# /Volumes/Projects/Testing/Simple_Carbon_App.pkg +# +# $2: the full path to the installation destination; for example: +# /Applications +# +# $3: the mountpoint of the destination volume; for example: +# / or /Volumes/External_Drive +# +# $4: the root directory for the current System folder: +# / + +echo "preinstall: Path to installer....... $1" +echo "preinstall: Path to destination..... $2" +echo "preinstall: Path to dest volume..... $3" +echo "preinstall: Root of system folder... $4" + +set -x + +if [ ! -e "$3" ] +then + echo "destination volume does not exist!" + exit 1 +fi + +# clean up what would otherwise turn into "//" paths +if [ "$3" == "/" ] +then + dest_vol="" +else + dest_vol="$3" +fi + +# delee the temporary Chameleon folder + +rm -rf "$dest_vol/tmpcham" + +echo "Done..." \ No newline at end of file Property changes on: branches/ErmaC/package/Scripts/Post/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/BaseOptions/GenerateCStates/postinstall =================================================================== --- branches/ErmaC/package/Scripts/BaseOptions/GenerateCStates/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/BaseOptions/GenerateCStates/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add GenerateCStates for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if GenerateCStates has been written or not +GenerateCStatesCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written GenerateCStates Yet + if "" in line and GenerateCStatesCheck == False: + line = " GenerateCStates\n" + line += " Yes\n" + line += "\n" + GenerateCStatesCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/BaseOptions/GenerateCStates/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/BaseOptions/DropSSDT/postinstall =================================================================== --- branches/ErmaC/package/Scripts/BaseOptions/DropSSDT/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/BaseOptions/DropSSDT/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add DropSSDT for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if DropSSDT has been written or not +DropSSDTCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written DropSSDT Yet + if "" in line and DropSSDTCheck == False: + line = " DropSSDT\n" + line += " Yes\n" + line += "\n" + DropSSDTCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/BaseOptions/DropSSDT/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/BaseOptions/EthernetBuiltIn/postinstall =================================================================== --- branches/ErmaC/package/Scripts/BaseOptions/EthernetBuiltIn/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/BaseOptions/EthernetBuiltIn/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add EthernetBuiltIn for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if EthernetBuiltIn has been written or not +EthernetBuiltInCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written DropSSDT Yet + if "" in line and EthernetBuiltInCheck == False: + line = " EthernetBuiltIn\n" + line += " Yes\n" + line += "\n" + EthernetBuiltInCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/BaseOptions/EthernetBuiltIn/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/BaseOptions/InstantMenu/postinstall =================================================================== --- branches/ErmaC/package/Scripts/BaseOptions/InstantMenu/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/BaseOptions/InstantMenu/postinstall (revision 1346) @@ -0,0 +1,40 @@ +#!/usr/bin/python +# Script to add Instant Menu for Chameleon boot loaders +# Copyright (C) tonymacx86 LLC + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if Instant Menu has been written or not +InstantMenuCheck = False + +body = "" + +for line in infile: + # if Timeout is there, advance the next line to + # read past it, and then change the lines to read + # "Instant Menu<\key>" and "Yes" + if "Timeout" in line: + line = infile.next() + line = " Instant Menu\n" + line += " Yes\n" + InstantMenuCheck = True + + # if we finish the tags and haven't written Instant Menu Yet + if "" in line and InstantMenuCheck == False: + line = " Instant Menu\n" + line += " Yes\n" + line += "\n" + InstantMenuCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/BaseOptions/InstantMenu/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/BaseOptions/GraphicsEnabler/postinstall =================================================================== --- branches/ErmaC/package/Scripts/BaseOptions/GraphicsEnabler/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/BaseOptions/GraphicsEnabler/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add GraphicsEnabler for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if GraphicsEnabler has been written or not +GraphicsEnablerCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written GraphicsEnabler Yet + if "" in line and GraphicsEnablerCheck == False: + line = " GraphicsEnabler\n" + line += " Yes\n" + line += "\n" + GraphicsEnablerCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/BaseOptions/GraphicsEnabler/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/BaseOptions/RestartFix/postinstall =================================================================== --- branches/ErmaC/package/Scripts/BaseOptions/RestartFix/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/BaseOptions/RestartFix/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add RestartFix for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if RestartFix has been written or not +RestartFixCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written RestartFix Yet + if "" in line and RestartFixCheck == False: + line = " RestartFix\n" + line += " No\n" + line += "\n" + RestartFixCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/BaseOptions/RestartFix/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/BaseOptions/CSTUsingSystemIO/postinstall =================================================================== --- branches/ErmaC/package/Scripts/BaseOptions/CSTUsingSystemIO/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/BaseOptions/CSTUsingSystemIO/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add CSTUsingSystemIO for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if CSTUsingSystemIO has been written or not +CSTUsingSystemIOCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written CSTUsingSystemIO Yet + if "" in line and CSTUsingSystemIOCheck == False: + line = " CSTUsingSystemIO\n" + line += " Yes\n" + line += "\n" + CSTUsingSystemIOCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/BaseOptions/CSTUsingSystemIO/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/BaseOptions/arch/postinstall =================================================================== --- branches/ErmaC/package/Scripts/BaseOptions/arch/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/BaseOptions/arch/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add arch for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if arch has been written or not +archCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written arch Yet + if "" in line and archCheck == False: + line = " arch\n" + line += " i386\n" + line += "\n" + archCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/BaseOptions/arch/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/BaseOptions/GeneratePStates/postinstall =================================================================== --- branches/ErmaC/package/Scripts/BaseOptions/GeneratePStates/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/BaseOptions/GeneratePStates/postinstall (revision 1346) @@ -0,0 +1,30 @@ +#!/usr/bin/python +# Script to add GeneratePStates for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if GeneratePStates has been written or not +GeneratePStatesCheck = False + +body = "" + +for line in infile: + # if we finish the tags and haven't written GeneratePStates Yet + if "" in line and GeneratePStatesCheck == False: + line = " GeneratePStates\n" + line += " Yes\n" + line += "\n" + DropSSDTCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/BaseOptions/GeneratePStates/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Resolutions/1024x768x32/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Resolutions/1024x768x32/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Resolutions/1024x768x32/postinstall (revision 1346) @@ -0,0 +1,39 @@ +#!/usr/bin/python +# Script to add Graphics_Mode for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if Graphics_Mode has been written or not +Graphics_ModeCheck = False + +body = "" + +for line in infile: + # if GraphicsEnabler is there, advance the next line to + # read past it, and then change the lines to read + # "GraphicsEnabler<\key>" and "Yes" + if "GraphicsEnabler" in line: + line = infile.next() + line = " Graphics_Mode\n" + line += " 1024x768x32\n" + InstantMenuCheck = True + + # if we finish the tags and haven't written Graphics_Mode Yet + if "" in line and Graphics_ModeCheck == False: + line = " Graphics_Mode\n" + line += " 1024x768x32\n" + line += "\n" + Graphics_ModeCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Resolutions/1024x768x32/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Resolutions/1920x1200x32/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Resolutions/1920x1200x32/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Resolutions/1920x1200x32/postinstall (revision 1346) @@ -0,0 +1,39 @@ +#!/usr/bin/python +# Script to add Graphics_Mode for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if Graphics_Mode has been written or not +Graphics_ModeCheck = False + +body = "" + +for line in infile: + # if GraphicsEnabler is there, advance the next line to + # read past it, and then change the lines to read + # "GraphicsEnabler<\key>" and "Yes" + if "GraphicsEnabler" in line: + line = infile.next() + line = " Graphics_Mode\n" + line += " 1920x1200x32\n" + InstantMenuCheck = True + + # if we finish the tags and haven't written Graphics_Mode Yet + if "" in line and Graphics_ModeCheck == False: + line = " Graphics_Mode\n" + line += " 1920x1200x32\n" + line += "\n" + Graphics_ModeCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Resolutions/1920x1200x32/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Resolutions/1600x900x32/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Resolutions/1600x900x32/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Resolutions/1600x900x32/postinstall (revision 1346) @@ -0,0 +1,39 @@ +#!/usr/bin/python +# Script to add Graphics_Mode for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if Graphics_Mode has been written or not +Graphics_ModeCheck = False + +body = "" + +for line in infile: + # if GraphicsEnabler is there, advance the next line to + # read past it, and then change the lines to read + # "GraphicsEnabler<\key>" and "Yes" + if "GraphicsEnabler" in line: + line = infile.next() + line = " Graphics_Mode\n" + line += " 1600x900x32\n" + InstantMenuCheck = True + + # if we finish the tags and haven't written Graphics_Mode Yet + if "" in line and Graphics_ModeCheck == False: + line = " Graphics_Mode\n" + line += " 1600x900x32\n" + line += "\n" + Graphics_ModeCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Resolutions/1600x900x32/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Resolutions/1280x1024x32/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Resolutions/1280x1024x32/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Resolutions/1280x1024x32/postinstall (revision 1346) @@ -0,0 +1,39 @@ +#!/usr/bin/python +# Script to add Graphics_Mode for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if Graphics_Mode has been written or not +Graphics_ModeCheck = False + +body = "" + +for line in infile: + # if GraphicsEnabler is there, advance the next line to + # read past it, and then change the lines to read + # "GraphicsEnabler<\key>" and "Yes" + if "GraphicsEnabler" in line: + line = infile.next() + line = " Graphics_Mode\n" + line += " 1280x1024x32\n" + InstantMenuCheck = True + + # if we finish the tags and haven't written Graphics_Mode Yet + if "" in line and Graphics_ModeCheck == False: + line = " Graphics_Mode\n" + line += " 1280x1024x32\n" + line += "\n" + Graphics_ModeCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Resolutions/1280x1024x32/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Resolutions/1680x1050x32/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Resolutions/1680x1050x32/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Resolutions/1680x1050x32/postinstall (revision 1346) @@ -0,0 +1,39 @@ +#!/usr/bin/python +# Script to add Graphics_Mode for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if Graphics_Mode has been written or not +Graphics_ModeCheck = False + +body = "" + +for line in infile: + # if GraphicsEnabler is there, advance the next line to + # read past it, and then change the lines to read + # "GraphicsEnabler<\key>" and "Yes" + if "GraphicsEnabler" in line: + line = infile.next() + line = " Graphics_Mode\n" + line += " 1680x1050x32\n" + InstantMenuCheck = True + + # if we finish the tags and haven't written Graphics_Mode Yet + if "" in line and Graphics_ModeCheck == False: + line = " Graphics_Mode\n" + line += " 1680x1050x32\n" + line += "\n" + Graphics_ModeCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Resolutions/1680x1050x32/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Resolutions/1920x1080x32/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Resolutions/1920x1080x32/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Resolutions/1920x1080x32/postinstall (revision 1346) @@ -0,0 +1,39 @@ +#!/usr/bin/python +# Script to add Graphics_Mode for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if Graphics_Mode has been written or not +Graphics_ModeCheck = False + +body = "" + +for line in infile: + # if GraphicsEnabler is there, advance the next line to + # read past it, and then change the lines to read + # "GraphicsEnabler<\key>" and "Yes" + if "GraphicsEnabler" in line: + line = infile.next() + line = " Graphics_Mode\n" + line += " 1920x1080x32\n" + InstantMenuCheck = True + + # if we finish the tags and haven't written Graphics_Mode Yet + if "" in line and Graphics_ModeCheck == False: + line = " Graphics_Mode\n" + line += " 1920x1080x32\n" + line += "\n" + Graphics_ModeCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Resolutions/1920x1080x32/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Scripts/Resolutions/1280x960x32/postinstall =================================================================== --- branches/ErmaC/package/Scripts/Resolutions/1280x960x32/postinstall (revision 0) +++ branches/ErmaC/package/Scripts/Resolutions/1280x960x32/postinstall (revision 1346) @@ -0,0 +1,39 @@ +#!/usr/bin/python +# Script to add Graphics_Mode for Chameleon boot loaders + +import sys +import os + +vol = str(sys.argv[3]) +boot = "/Extra/org.chameleon.Boot.plist" +plist = vol + boot +infile = open(plist, "r") +# check if Graphics_Mode has been written or not +Graphics_ModeCheck = False + +body = "" + +for line in infile: + # if GraphicsEnabler is there, advance the next line to + # read past it, and then change the lines to read + # "GraphicsEnabler<\key>" and "Yes" + if "GraphicsEnabler" in line: + line = infile.next() + line = " Graphics_Mode\n" + line += " 1280x960x32\n" + InstantMenuCheck = True + + # if we finish the tags and haven't written Graphics_Mode Yet + if "" in line and Graphics_ModeCheck == False: + line = " Graphics_Mode\n" + line += " 1280x960x32\n" + line += "\n" + Graphics_ModeCheck = True + + body += line + +infile.close() + +outfile = open(plist, "w") +outfile.write(body) +outfile.close() Property changes on: branches/ErmaC/package/Scripts/Resolutions/1280x960x32/postinstall ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/dmg/ro.dmg =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/dmg/ro.dmg ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/dmg/SLAResources =================================================================== Index: branches/ErmaC/package/Resources/English.lproj/Localizable.strings =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: branches/ErmaC/package/buildpkg.sh =================================================================== --- branches/ErmaC/package/buildpkg.sh (revision 0) +++ branches/ErmaC/package/buildpkg.sh (revision 1346) @@ -0,0 +1,525 @@ +#!/bin/bash + +# $1 Path to store built package + +packagesidentity="org.chameleon" + +packagename="Chameleon" + +pkgroot="${0%/*}" + +COL_BLACK="\x1b[30;01m" +COL_RED="\x1b[31;01m" +COL_GREEN="\x1b[32;01m" +COL_YELLOW="\x1b[33;01m" +COL_MAGENTA="\x1b[35;01m" +COL_CYAN="\x1b[36;01m" +COL_WHITE="\x1b[37;01m" +COL_BLUE="\x1b[34;01m" +COL_RESET="\x1b[39;49;00m" + +#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" ) + +# ================= + +develop=" Crazor, Dense, fassl, fxtentacle, iNDi, JrCs, Kabyl, kaitek, mackerintel, mercurysquad, munky, Slice, meklort, mozodojo, rekursor, Turbo, cparm, valv & zef " + +credits=" andyvand, asereBLN, Azimut, bumby, cosmo1t, dfe, Galaxy, kalyway, Krazubu, MasterChief, netkas, sckevyn, smith@@, THeKiNG, DutchHockeyPro & Andy" + +pkgdev=" blackosx, ErmaC , scrax" + +# ================= + +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 "" +echo -e $COL_BLACK" ----------------------------------"$COL_RESET +echo -e $COL_BLACK" Building $packagename Install Package"$COL_RESET +echo -e $COL_BLACK" ----------------------------------"$COL_RESET +echo "" + +outline[$((outlinecount++))]="${indent[$xmlindent]}" + +# build core package + echo "================= Core =================" + ((xmlindent++)) + packagesidentity="org.chameleon.core" + mkdir -p ${1}/Core/Root/usr/sbin + mkdir -p ${1}/Core/Root/usr/local/bin + mkdir -p ${1}/Core/Root/usr/standalone/i386 +# if [ "$(ls -A "${1%/*}/i386/modules")" ]; then +# echo "Modules found." +# mkdir -p ${1}/Core/Root/usr/standalone/i386/modules +# cp -R ${1%/*}/i386/modules ${1}/Core/Root/usr/standalone/i386 +# else +# echo "No found modules into dir module" +# fi + ditto --noextattr --noqtn ${1%/*}/i386/boot ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/boot0 ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/boot0md ${1}/Core/Root/usr/standalone/i386 +# ditto --noextattr --noqtn ${1%/*}/i386/boot0hf ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/boot1f32 ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/boot1h ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/boot1he ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/boot1hp ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/cdboot ${1}/Core/Root/usr/standalone/i386 + ditto --noextattr --noqtn ${1%/*}/i386/chain0 ${1}/Core/Root/usr/standalone/i386 +# fixperms "${1}/Core/Root/" + ditto --noextattr --noqtn ${1%/*}/i386/fdisk440 ${1}/Core/Root/usr/sbin + ditto --noextattr --noqtn ${1%/*}/i386/bdmesg ${1}/Core/Root/usr/sbin + local coresize=$( du -hkc "${1}/Core/Root" | tail -n1 | awk {'print $1'} ) + echo " [BUILD] i386 " + buildpackage "${1}/Core" "/" "0" "start_visible=\"false\" start_selected=\"true\"" >/dev/null 2>&1 + +# build Chameleon package + echo "================= Chameleon =================" + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + choices[$((choicescount++))]="\n\n" + + # 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 + echo " [BUILD] Standard " + buildpackage "${1}/Standard" "/" "${coresize}" "start_enabled=\"true\" start_selected=\"upgrade_allowed()\" selected=\"exclusive(choices['EFI']) && exclusive(choices['noboot'])\"" >/dev/null 2>&1 + # End build standard package + + # build efi package + mkdir -p ${1}/EFI/Root + mkdir -p ${1}/EFI/Scripts/Tools + cp -f ${pkgroot}/Scripts/EFI/* ${1}/EFI/Scripts + # ditto --arch i386 `which SetFile` ${1}/EFI/Scripts/Tools/SetFile + echo " [BUILD] EFI " + buildpackage "${1}/EFI" "/" "${coresize}" "start_visible=\"systemHasGPT()\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['noboot'])\"" >/dev/null 2>&1 + # End build efi package + + # build reset choice package + mkdir -p ${1}/noboot/Root + echo " [BUILD] Reset choice " + buildpackage "${1}/noboot" "/tmpcham" "" "start_visible=\"true\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['EFI'])\"" >/dev/null 2>&1 + # End build reset choice package + + # build Modules package + echo "================= Modules =================" + ############################### + # AMDGraphicsEnabler.dylib # + # ATiGraphicsEnabler.dylib # + # IntelGraphicsEnabler.dylib # + # klibc.dylib # + # NVIDIAGraphicsEnabler.dylib # + # Resolution.dylib # + # uClibcxx.dylib # + ############################### + if [ "$(ls -A "${1%/*}/i386/modules")" ]; then + { + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + choices[$((choicescount++))]="\n\n" + ((xmlindent++)) + packagesidentity="org.chameleon.module" +# - + if [ -e ${1%/*}/i386/modules/AMDGraphicsEnabler.dylib ]; then + { + mkdir -p ${1}/AMDGraphicsEnabler/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/AMDGraphicsEnabler.dylib ${1}/AMDGraphicsEnabler/Root + echo " [BUILD] AMDGraphicsEnabler " + buildpackage "${1}/AMDGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi +# - + if [ -e ${1%/*}/i386/modules/ATiGraphicsEnabler.dylib ]; then + { + mkdir -p ${1}/ATiGraphicsEnabler/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/ATiGraphicsEnabler.dylib ${1}/ATiGraphicsEnabler/Root + echo " [BUILD] ATiGraphicsEnabler " + buildpackage "${1}/ATiGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi +# - + if [ -e ${1%/*}/i386/modules/IntelGraphicsEnabler.dylib ]; then + { + mkdir -p ${1}/IntelGraphicsEnabler/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/IntelGraphicsEnabler.dylib ${1}/IntelGraphicsEnabler/Root + echo " [BUILD] IntelGraphicsEnabler " + buildpackage "${1}/IntelGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi +# - + if [ -e ${1%/*}/i386/modules/klibc.dylib ]; then + { + mkdir -p ${1}/klibc/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/klibc.dylib ${1}/klibc/Root + echo " [BUILD] klibc " + buildpackage "${1}/klibc" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi +# - + if [ -e ${1%/*}/i386/modules/NVIDIAGraphicsEnabler.dylib ]; then + { + mkdir -p ${1}/NVIDIAGraphicsEnabler/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/NVIDIAGraphicsEnabler.dylib ${1}/NVIDIAGraphicsEnabler/Root + echo " [BUILD] NVIDIAGraphicsEnabler " + buildpackage "${1}/NVIDIAGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi +# - + if [ -e ${1%/*}/i386/modules/Resolution.dylib ]; then + { + mkdir -p ${1}/AutoReso/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/Resolution.dylib ${1}/AutoReso/Root + echo " [BUILD] Resolution " + buildpackage "${1}/AutoReso" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi +# - + if [ -e ${1%/*}/i386/modules/uClibcxx.dylib ]; then + { + mkdir -p ${1}/uClibc/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/uClibcxx.dylib ${1}/uClibc/Root + ditto --noextattr --noqtn ${1%/*}/i386/modules/klibc.dylib ${1}/uClibc/Root + echo " [BUILD] uClibc++ " + buildpackage "${1}/uClibc" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1 + } + fi + ((xmlindent--)) + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + } + else + { + echo " -= no modules to include =-" + } + fi + # End build Modules packages + ((xmlindent--)) + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" +# End build Chameleon package + +# build Extras package + echo "================= Extras =================" + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + choices[$((choicescount++))]="\n\n" + ((xmlindent++)) + packagesidentity="org.chameleon.extras.com" + + # build utility package + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + choices[$((choicescount++))]="\n\n" + ((xmlindent++)) + packagesidentity="org.chameleon.utility.com" + + # build package for Chameleon PrefPanel + mkdir -p "${1}/PrefPanel/Root" + ditto --noextattr --noqtn "${pkgroot}/Configuration/PrefPanel/Chameleon.prefPane" "${1}/PrefPanel/Root" + echo " [BUILD] Chameleon Preference Panel " + buildpackage "${1}/PrefPanel" "/Library/PreferencePanes/Chameleon.prefPane" "" "start_selected=\"false\"" >/dev/null 2>&1 + # End build package for Chameleon PrefPanel + + # build package for SMBIOSDefault + mkdir -p "${1}/SMBIOSDefault/Root" + ditto --noextattr --noqtn "${pkgroot}/Configuration/SMBIOSDefault/smbios.plist" "${1}/SMBIOSDefault/Root" + echo " [BUILD] SMBIOSDefault " + buildpackage "${1}/SMBIOSDefault" "/Extra/Example" "" "start_selected=\"false\"" >/dev/null 2>&1 + # End build package for SMBIOSDefault + + # build package for Documentation + mkdir -p "${1}/Documentation/Root" + cp -f ${pkgroot}/doc/BootHelp.txt ${1}/Documentation/Root + cp -f ${pkgroot}/doc/README ${1}/Documentation/Root + cp -f ${pkgroot}/doc/Users_Guide0.5.pdf ${1}/Documentation/Root + echo " [BUILD] Documentation " + buildpackage "${1}/Documentation" "/Library/Documentation/Chameleon2RC5" "" "start_selected=\"false\"" >/dev/null 2>&1 + # End build package for Documentation + + ((xmlindent--)) + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + # End utility package + + # build options packages + echo "================= Options =================" + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + choices[$((choicescount++))]="\n\n" + ((xmlindent++)) + + # build base options packages + packagesidentity="org.chameleon.options.com" + + options=($( find "${pkgroot}/Scripts/BaseOptions" -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" + echo " [BUILD] ${options[$i]##*/} " + buildpackage "${1}/${options[$i]##*/}" "/" "" "start_selected=\"false\"" >/dev/null 2>&1 + done + # End build base options packages + + # build resolution packages + echo "================= Res. Options =================" + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + choices[$((choicescount++))]="\n\n" + ((xmlindent++)) + packagesidentity="org.chameleon.resolution" + resolutions=($( find "${pkgroot}/Scripts/Resolutions" -type d -depth 1 -not -name '.svn' )) + for (( i = 0 ; i < ${#resolutions[@]} ; i++ )) + do + mkdir -p "${1}/${resolutions[$i]##*/}/Root/" + mkdir -p "${1}/${resolutions[$i]##*/}/Scripts/" + ditto --noextattr --noqtn "${resolutions[$i]}/postinstall" "${1}/${resolutions[$i]##*/}/Scripts/postinstall" + echo " [BUILD] ${resolutions[$i]##*/} " + buildpackage "${1}/${resolutions[$i]##*/}" "/tmpcham" "" "start_selected=\"false\"" >/dev/null 2>&1 + done + + ((xmlindent--)) + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + # End build resolution packages + + # build Advanced packages + echo "================= Adv. Options =================" + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + choices[$((choicescount++))]="\n\n" + ((xmlindent++)) + + packagesidentity="org.chameleon.advanced.options.pkg" + optionsadv=($( find "${pkgroot}/Scripts/Advanced" -type d -depth 1 -not -name '.svn' )) + for (( i = 0 ; i < ${#optionsadv[@]} ; i++ )) + do + mkdir -p "${1}/${optionsadv[$i]##*/}/Root" + mkdir -p "${1}/${optionsadv[$i]##*/}/Scripts" + ditto --noextattr --noqtn "${optionsadv[$i]}/postinstall" "${1}/${optionsadv[$i]##*/}/Scripts/postinstall" + echo " [BUILD] ${optionsadv[$i]##*/} " + buildpackage "${1}/${optionsadv[$i]##*/}" "/" "" "start_selected=\"false\"" >/dev/null 2>&1 + done + + ((xmlindent--)) + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + # End build Advanced packages + + ((xmlindent--)) + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + + # End build options packages + + # build theme packages + echo "================= Themes =================" + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + choices[$((choicescount++))]="\n\n" + ((xmlindent++)) + packagesidentity="org.chameleon.theme.pkg" + 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/" + rsync -r --exclude=.svn "${themes[$i]}" "${1}/${themes[$i]##*/}/Root/${theme}" + # #### Comment out thx meklort + # 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 {} \+ + echo " [BUILD] ${themes[$i]##*/} " + buildpackage "${1}/${theme}" "/Extra/Themes" "" "start_selected=\"false\"" >/dev/null 2>&1 + rm -R -f "${1}/${i##*/}" + done + + ((xmlindent--)) + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" + # End build theme packages + + ((xmlindent--)) + outline[$((outlinecount++))]="${indent[$xmlindent]}\t" +# End build Extras package + +# build post install package + echo "================= Post =================" + mkdir -p ${1}/Post/Root + mkdir -p ${1}/Post/Scripts + cp -f ${pkgroot}/Scripts/Post/* ${1}/Post/Scripts + echo " [BUILD] Post " + buildpackage "${1}/Post" "/" "" "start_visible=\"false\" start_selected=\"true\"" >/dev/null 2>&1 + 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` + +# Adding Developer and credits + perl -i -p -e "s/%DEVELOP%/${develop}/g" `find "${1}/${packagename}/Resources" -type f` + perl -i -p -e "s/%CREDITS%/${credits}/g" `find "${1}/${packagename}/Resources" -type f` + perl -i -p -e "s/%PKGDEV%/${pkgdev}/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 + +# Here is the place for assign a Icon to the pkg +# command use to generate the file: +# ditto -c -k --sequesterRsrc --keepParent Icon.icns Icon.zip +# ---- +# ditto -xk "${pkgroot}/Icons/pkg.zip" "${pkgroot}/Icons/" +# DeRez -only icns "${pkgroot}/Icons/Icons/pkg.icns" > tempicns.rsrc +# Rez -append tempicns.rsrc -o "${1%/*}/${packagename// /}-${version}-r${revision}.pkg" +# SetFile -a C "${1%/*}/${packagename// /}-${version}-r${revision}.pkg" +# rm -f tempicns.rsrc +# rm -rf "${pkgroot}/Icons/Icons" +# End + + 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" + echo "" + + echo -e $COL_BLACK" --------------------------"$COL_RESET + echo -e $COL_BLACK" Building process complete!"$COL_RESET + echo -e $COL_BLACK" --------------------------"$COL_RESET + echo "" + echo -e $COL_BLACK" Build info." + echo -e $COL_BLACK" ===========" + echo -e $COL_BLUE" Package name: "$COL_BLACK"$packagename-${version}-r$revision.pkg"$COL_RESET + echo -e $COL_BLUE" MD5: "$COL_BLACK"$md5"$COL_RESET + echo -e $COL_BLUE" Version: "$COL_BLACK"$version"$COL_RESET + echo -e $COL_BLUE" Stage: "$COL_BLACK"$stage"$COL_RESET + echo -e $COL_BLUE" Date/Time: "$COL_BLACK"$builddate"$COL_RESET + echo "" + +} + +main "${1}" "${2}" "${3}" "${4}" "${5}" + Property changes on: branches/ErmaC/package/buildpkg.sh ___________________________________________________________________ Added: svn:executable + * Index: branches/ErmaC/package/Icons/pan.zip =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Icons/pan.zip ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Icons/tm.zip =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Icons/tm.zip ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Icons/pkg.zip =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Icons/pkg.zip ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Icons/doc.zip =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Icons/doc.zip ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Icons/dmg.zip =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Icons/dmg.zip ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Icons/Icon.zip =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Icons/Icon.zip ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/package/Icons/i386.zip =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/ErmaC/package/Icons/i386.zip ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: branches/ErmaC/CHANGES =================================================================== --- branches/ErmaC/CHANGES (revision 1345) +++ branches/ErmaC/CHANGES (revision 1346) @@ -1,6 +1,7 @@ - Added AtiPorts option to GraphicsEnabler, so users can override the default number of ports. It proved to be useful when used to limit the number of ports that a framebuffer registers, which seems to be a - requirement on laptops that can only use 2 ports at the same time. Thanks to AniV for the tip: + requirement on laptops that can only use 2 ports at the same time. + Thanks to Akbar for testing and AniV also for the tip: http://forum.voodooprojects.org/index.php/topic,1959.msg10402.html#msg10402 - Added NVidia ION AHCI controllers dev id to AHCIPortInjector kext. Forgot to mention source on the commit: http://forum.voodooprojects.org/index.php/topic,1170.0.html